打印

[讨论] 来看看汇编语言指令的问题

来看看汇编语言指令的问题

汇编中的cmp指令可以令 zf 寄存器的值变为1,或0从而影响条件转移指令je的执行结果
例: (al=bl)
     cmp al,bl
     je s
     add al,bl
     mov ax,4c00h
     int 21h
  s:add al,al
其中当cmp 执行时,,zf 的值为1  从而使其执行标号s处的指令,,,
第一,,如果zf原先就是1再执行cmp al,bl时 是否会执行标号处的指令呢,,,
第二,在程序未开始前(也就是初始状态),,zf寄存器是否会先清零呢,,,是否特殊寄存器都会清零呢
第三,对于cmp执行时zf的值由1变成0,,,那么是不是就不执行je了呢,,,如果是这样,,那cmp和je,,等指令不就不能配合使用了吗

[ 本帖最后由 ~大盗| 于 2008-6-6 17:00 编辑 ]
 我一定把你灭了!

TOP

1   al=bl      cmp al,bl后ZF会为1,je会跳

2 只要没有用到的寄存器都不会清零,将保存原有值

3  cmp和跳转一般连用于分支之类的结构中

具体自己用DEBUG调调看了
基础!     基础!    勿在浮沙筑高台!

TOP

Processed in 0.116337 second(s), 5 queries, Gzip enabled.