触点比较指令应用实例
触点比较指令应用实例
一、触点比较指令(CMP)
1、CMP的功能
CMP指令的功能是比较目的操作数与源操作数的大小,它会把比较的结果存入标志寄存器中,因此仅需要查看标志寄存器的值就能够得到比较结果。它有以下功能:
(1)CMP指令可以用来比较两个数的大小,如果两个操作数相等,比较结果为零;
(2)CMP指令可以比较两个数的符号,如果源操作数的符号比目的操作数大,比较结果为正;
(3)CMP指令可以检测两个操作数的值是否越界,如果越界,比较结果为负;
(4)CMP指令可以检测两个操作数的位数是否相等,如果不等,比较结果为负。
2、CMP指令的应用实例
(1)比较寄存器和立即数的大小:CMP DX,#0x0004
此指令比较的是DX寄存器与立即数0x0004,DX寄存器的值大于0x0004时,CF=0,ZF=0,SF=0;DX寄存器的值小于0x0004时,CF=1,ZF=0,SF=1;DX寄存器的值等于0x0004时,CF=0,ZF=1,SF=0。
(2)比较内存单元和寄存器的大小:CMP AX,[DI]
此指令比较的是AX寄存器和DI指针指向的内存单元的大小,当AX值大于内存单元的值时,CF=0,ZF=0,SF=0;当AX值小于内存单元的值时,CF=1,ZF=0,SF=1;当AX值等于内存单元的值时,CF=0,ZF=1,SF=0。
(3)比较两个内存单元的大小:CMP [SI],[DI]
此指令比较的是SI指针指向的内存单元和DI指针指向的内存单元的大小,当SI指针指向的内存单元的值大于DI指针指向的内存单元的值时,CF=0,ZF=0,SF=0;当SI指针指向
的内存单元的值小于DI指针指向的内存单元的值时,CF=1,ZF=0,SF=1;当SI指针指向的内存单元的值等于DI指针指向的内存单元的值时,CF=0,ZF=1,SF=0。
二、跳转指令(JMP)
1、JMP指令用来改变程序流程,它可以用来实现程序的条件转移,无条件转移,循环等操作。
2、JMP指令的应用实例
比较指令cmp怎么用 (1)条件转移:如果AL寄存器中的数据等于0,则转移到指定的位置:
CMP AL,#0
JE LABEL
(2)无条件转移:将程序的执行流程跳转到指定的位置:
JMP LABEL
(3)循环:重复执行一个操作:
LOOP:MOV AL,[SI]
tINC SI
tDEC CX
tJNZ LOOP
此指令可以实现从SI指针指向的内存单元处读取数据,直到CX寄存器中的数据为零为止。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论