首页 > 编程知识 正文

sbb汇编指令,汇编语言中cmp是什么意思

时间:2023-05-04 17:55:17 阅读:173675 作者:4367

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

如果SF=0,则AX=BX

如果SF=0和ZF=0,则为AXBX

如果SF=1或ZF=1,则AX=BX

当执行cmp指令时,CPU还包括两种含义:进行无符号运算和有符号运算。

cmp ah,bh

如果ah=bh则ah-bh=0,所以ZF=1

如果ahbh的话ah-bh0,所以ZF=0

因此,根据执行cmp指令后ZF的值,可以知道两个数据是否相等。 如果ah

关于带符号数运算,为ah

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

将功能:操作数推入或取出堆栈

语法:推送操作数POP操作数

格式: pushrpushmpushdatapoprpopm

PUSHF,POPF,PUSHA,POPA

功能:堆栈指令组

格式: PUSHF POPF PUSHA POPA

LEA,LDS,LES

把功能:地址拿到寄存器

语法: LEA r,m LDS r,m LES r,m

xlat(xlatb )

功能:查找表指令

语法: 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的值加1或减1

语法: 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命令

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。