x86汇编_JE、JNE、JCXZ 和 JECXZ 指令_笔记_34

基于左右操作数或寄存器值的跳转
助记符英文翻译说明
JEJump if left Equals right相等跳转 (左操作数=右操作数)
JNEJump if left Not Equals right不相等跳转 (左操作数≠右操作数)
JCXZJump if CX equals ZeroCX=0 跳转
JECXZJump if ECX equals ZeroECX=0 跳转
JRCXZJump if RCX equals ZeroRCX=0 跳转(64 位模式)

下述示例使用了 JE、JNE、JCXZ 和 JECXZ 指令。仔细阅读注释,以保证理解为什么条件跳转得以实现(或不实现)。

以下例子用0A523h减去0A523h,如果等于0,则ZF=1,jne和je则根据ZF标志位判断。

mov edx, 0A523h
cmp edx, 0A523h
jne L5                       ;不发生跳转
je L1                         ;跳转

以下例子没有使用cmp指令,但是实际上只要是能修改标志位值的指令,都可以做为jne、je的依据。 sub和cmp指令的区别是,sub会修改寄存器和标志位的值,而cmp只是修改标志位的值

mov bx,1234h
sub bx,1234h
jne L5                       ;不发生跳转
je L1                         ;跳转

以下注意,当CX的值为0FFFFh时,再加1,只会回滚到0而不会等于10000h,不会进位到上一级寄存器ECX。就像时钟那样周而复始。

mov cx, 0FFFFh
inc cx
jcxz L2          ;跳转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值