请教下汇编的cmp指令的意思

如题所述

第1个回答  2011-08-01
比效指令 CMP(CoMPare)

格式: CMP OPRD1,OPRD2
----

功能: 对两数进行相减,进行比较.
说明: 1. OPRD1为任意通用寄存器或存储器操作数.
---- OPRD2为任意通用寄存器或存储器操作数,立即数也可用作源操作数OPRD2.

2. 对标志位的影响同SUB指令,完成的操作与SUB指令类似,唯一的区别是不将OPRD1-OPRD2的结果送回OPRD1,而 只是比较.因而不改变OPRD1和OPRD2的内容,该指令用于改变标志位.

3. 在8088/8086指令系统中,专门提供了一组根据带符号数比较大小后,实现条件转移的指令.

4. 示例: CMP AL,20
CMP DX,CX
CMP AX,DATA1[BX]
CMP BATE[DI],BX

5. 以CMP DX,CX为例,对标志位的影响如下:
(1) (DX)=(CX)时,则ZF=1;

(2) 两相无符号数比较:
若(DX)>=(CX)时,则CF=0,即无借位.
若(DX)<(CX)时,则CF=1.

(3) 两个带符号数比较
对带符号数判断大小可通过溢出标志OF及符号标志SF共同判断.
当 OF=0,即无溢出时,若SF=0,则(DX)>(CX)
若SF=1,则(DX)<(CX)
当 OF=1,即有溢出时,若SF=1,则(DX)>(CX)
若SF=0,则(DX)<(CX)

条件转移指令JNE/JNZ

格式: JNE/JNZ 标号
----

功能: ZF=0,转至标号处执行

说明: 1. 指令JNE与JNZ等价,它们是根据标志位ZF进行转移的指令
----
2. JNE,JNZ均为一条指令的两种助记符表示方法
相似回答