触点比较指令应用实例
    触点比较指令应用实例
    一、触点比较指令(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小时内删除。