先要理解这个逻辑语句执行会影响标志位,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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)