触摸屏是什么意思 cmp是什么意思( 二 )


汇编语言中CMP是什么意思cmp是比较指令 ,  cmp的功能相当于减法指令 , 只是不保存结果 。cmp指令执行后 , 将对标志寄存器产生影响 。其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果 。
比如:
mov ax,8
mov bx,3
cmp ax,bx
执行后:ax=8,ZF=0,PF=1,SF=0,CF=0,OF=0.
通过cmp指令执行后 , 相关标志位的值就可以看出比较的结果 。
cmp ax,bx的逻辑含义是比较ax,bx中的值 。如果执行后:
ZF=1则AX=BX
ZF=0则AX!=BX
SF=1则AX<BX
SF=0则AX>=BX
SF=0并ZF=0则AX>BX
SF=1或ZF=1则AX<=BX
CPU在执行cmp指令的时候 , 也包含两种含义:进行无符号运算和进行有符号数运算 。
cmp ah,bh
如果ah=bh则ah-bh=0所以ZF=1
如果ah≠bh则ah-bh≠0所以ZF=0
所以我们根据cmp指令执行后ZF的值 , 就可以知道两个数据是否相等 。如果ah<bh则可能发生什么情况呢?
对于有符号数运算 , 在ah<bh情况下 , ah-bh显然可能引起SF=1既结果为负比如:
ah=1 , bh=2则ah-bh=0FFH , 0FFH为-1的补码 , 因为结果为负 , 所以SF=1 。
ah=0FEH , bx=OFFH;则ax-bx=-2-(-1)=OFFH,因为结果为负 , 所以SF=1 。
汇编语言的常用指令集如下:
数据传送指令集
MOV
功能: 把源操作数送给目的操作数
语法: MOV 目的操作数,源操作数
格式: MOV r1,r2
MOV r,m
MOV m,r
MOV r,data
XCHG
功能: 交换两个操作数的数据
语法: XCHG
格式: XCHG r1,r2 XCHG m,r XCHG r,m
PUSH,POP
功能: 把操作数压入或取出堆栈
语法: PUSH操作数POP 操作数
格式: PUSH r PUSH M PUSH data POP r POP m
PUSHF,POPF,PUSHA,POPA
功能:堆栈指令群
格式: PUSHF POPF PUSHA POPA
LEA,LDS,LES
功能: 取地址至寄存器
语法: LEA r,m LDS r,m LES r,m
XLAT(XLATB)
功能:查表指令
【触摸屏是什么意思 cmp是什么意思】语法: XLAT XLAT m
算术运算指令
ADD,ADC
功能: 加法指令
语法: ADD OP1,OP2 ADC OP1,OP2
格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data
影响标志: C,P,A,Z,S,O
SUB,SBB
功能:减法指令
语法: SUB OP1,OP2 SBB OP1,OP2
格式: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data
影响标志: C,P,A,Z,S,O
INC,DEC
功能: 把OP的值加一或减一
语法: INC OP DEC OP
格式: INC r/m DEC r/m
影响标志: P,A,Z,S,O
NEG
功能: 将OP的符号反相(取二进制补码)
语法: NEG OP
格式: NEG r/m
影响标志: C,P,A,Z,S,O
MUL,IMUL
功能: 乘法指令
语法: MUL OP IMUL OP
格式: MUL r/m IMUL r/m
影响标志: C,P,A,Z,S,O(仅IMUL会影响S标志)
DIV,IDIV
功能:除法指令
语法: DIV OP IDIV OP
格式: DIV r/m IDIV r/m
CBW,CWD
功能:有符号数扩展指令
语法: CBW CWD
AAA,AAS,AAM,AAD
功能: 非压BCD码运算调整指令
语法: AAA AAS AAM AAD
影响标志: A,C(AAA,AAS) S,Z,P(AAM,AAD)
来源:-CMP指令

推荐阅读