注册 登录
编程论坛 汇编论坛

刚学 80X86,条件跳转指令有疑惑

apiqqz 发布于 2011-11-12 16:39, 1236 次点击
例如:
    JB            低于转移
    JNAE          或者,不高于等于转移
    JC            或者,进位标志被置转移

这条指令有三个助记符,但是里面的 低于转移与不高于等于转移严格逻辑上说不等同的




还有:
   JLE            小于等于转移
   JNG            不大于转移
这两个指令的后面注释意思都一样为什么不写一条呢,还要加个不大于转移
5 回复
#2
chenwei4352011-11-12 18:51
其实很好记的
对于无符号数:
     高于 above     ja
     低于  below    jb
对于有符号数:
   高于  large     jg
   低于  low      jl
相等则用 equal     je
如果相反则加   not   即可
#3
zjsxwc2011-11-14 21:23
楼上 正解,

对于有符号数比较用 jg,jl等
对于无符号数比较用 ja,jb等

比如 二进制11111111B  表示有符号数为-1,表示无符号数为255
当 二进制11111111B 和二进制00000000B比较时,用ja,jb比较时11111111B 大,用jg,jl等比较时00000000B大
#4
zjsxwc2011-11-14 21:35
对正数来说这些指令确实没区别
#5
zaixuexi2011-11-15 10:34
http://www.
正确的做法是去看手册,比如
Opcode    Instruction    Op/En    64-BitMode    Compat/Leg Mode    Description
77 cb        JA rel8       D        Valid            Valid         Jump short if above(CF=0 and ZF=0)
7F cb        JG rel8       D        Valid            Valid         Jump short if greater(ZF=0 and SF=OF)
#6
apiqqz2011-11-29 11:44
懂了,谢谢各位不吝赐教
1