当前位置: 首页 > 工具软件 > JE > 使用案例 >

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

苏宜人
2023-12-01
基于左右操作数或寄存器值的跳转
助记符英文翻译说明
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          ;跳转

 类似资料: