汇编 jz 使用方法

2025-05-19 12:41:53
推荐回答(4个)
回答1:

先要理解这个逻辑语句执行会影响标志位,jcc指令是根据标志位工作的。jcc的具体行为在于它前面一条或者多条指令具体怎么影响标志位的。这里test cl, cl在cl是0的时候会置Z,否则清Z jz也就是根据这个跳转的。

累加器A为零时,跳转到到标号为:DELAY处。

只是判断用CMP,TEST之类的指令,只是比较,建议认真揣摩指令。

CMP EAX,EBX

JZ Y

JNZ N

不过一般情况不会这么写,N或者是Y的时候是可以不跳转的,如下:

CMP EAX,EBX

JZ Y

N:

扩展资料:

ZF汇编语言中的PSW标志寄存器中的一位,而JZ则是根据ZF决定是否跳转。若ZF=1(表示本次运算结果为0,不为0则ZF=0),则跳转,否则,不跳转ZF的状态根据其他指令的执行结果设置。

jz=jump if zero,即零标志为1就跳转,一般与cmp连用,用以判断两数是否相等

jz的另一种写法就是je,je=jump if equal,jz和je的作用是完全一样的

JZ是累加器A判零条件转移指令.

JZ rel ;若A=0,则PC+2+rel--->PC;否则,PC+2--->PC(rel : 以补码形式表示的8位地址偏移量,其值为-128~+127)

参考资料来源:百度百科-jz

回答2:

JZ根据ZF决定是否跳转,若ZF=1,则跳转,否则,不跳转
ZF的状态根据其他指令的执行结果设置,
在这里,由TEST cl,cl设置的

回答3:

很正常的 code
CPU没有判断条件,它只是傻傻的根据 flag 工作
test 正好是给它提供可靠 flag
而且test 和 CPU 一起工作的很好

回答4:

你先要理解这个逻辑 语句执行会影响标志位,jcc指令是根据标志位工作的。jcc的具体行为在于它前面一条或者多条指令具体怎么影响标志位的。

这里test cl, cl在cl是0的时候会置Z,否则清Z jz也就是根据这个跳转的。