请教下汇编的cmp指令的意思
cmp[eax],0//eax里面的值是0jneend//end是子程序请问这二句是什么意思呢jne是[eax],0相等则跳吗初学汇编麻烦老手指示下表示感谢...
cmp [eax],0 //eax里面的值是0
jne end //end是子程序
请问这二句是什么意思呢 jne 是[eax] ,0相等则跳吗
初学汇编 麻烦老手指示下 表示感谢 展开
jne end //end是子程序
请问这二句是什么意思呢 jne 是[eax] ,0相等则跳吗
初学汇编 麻烦老手指示下 表示感谢 展开
6个回答
展开全部
意思是cmp [eax],0结果如果不相等即标志位ZF=0,则执行jne end语句。
jne是一个条件转移指令。当ZF=0,转至标号处执行。
cmp [eax],0 的逻辑含义是比较[eax],0。如果执行后:
ZF=1则[eax]=0
ZF=0则[eax]!=0
SF=1则[eax]<0
SF=0则[eax]>=0
SF=0并ZF=0则[eax]>0
SF=1或ZF=1则[eax]<=0
扩展资料:
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。
参考资料:百度百科-CMP指令
展开全部
比效指令 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均为一条指令的两种助记符表示方法
格式: 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均为一条指令的两种助记符表示方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cmp是compare的意思 比较
jne是jump not equal不相等就跳至
就是说比较[eax]和0 如果不相等就跳至end执行
jne是jump not equal不相等就跳至
就是说比较[eax]和0 如果不相等就跳至end执行
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比较的意思,大小或相等。下面是条件。jne 两者不相等的情况下跳转
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询