作业帮 > 数学 > 作业

Jb 若小于则跳 jl 若小于则跳 有什么区别?

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/29 08:58:03
Jb 若小于则跳 jl 若小于则跳 有什么区别?
jne或jnz 若不相等则跳(机器码75或0F85)
jmp 无条件跳(机器码EB)
Jb 若小于则跳
ja 若大于则跳
jg 若大于则跳
jge 若大于等于则跳
jl 若小于则跳
jle 若小于等于则跳
pop 出栈
push 压栈
ja和jg都是大于则跳,他们又有什么区别呢?
请举例说明
首先你要明白数的正负表示方法:
对于一个8位无符号数,取值范围是0-255(00-FFH);
对于一个8位有符号数,取值范围虽然同样是00-FFH,但定义:高位为1是负数,高位为0是正数.因此,从00-7FH是0~+127,从80H-FFH是-128~-1.
同样一个数可视为正也可视为负,关键看比较数据的方法.
ja 若大于则跳
Jb 若小于则跳 此2指令用于无符号数的比较;
jg 若大于则跳
jl 若小于则跳 此2指令用于带符号数的比较;
看如下一段指令及执行结果你就应该明白了:
-U100
0B41:0100 B081 MOV AL,81
0B41:0102 3C01 CMP AL,01
0B41:0104 7F0A JG 0110
0B41:0106 3C01 CMP AL,01
0B41:0108 7716 JA 0120
-r
AX=0081 BX=0000 CX=002E DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000
DS=0B41 ES=0B41 SS=0B41 CS=0B41 IP=0100 NV UP EI NG NZ NA PO NC
0B41:0100 B081 MOV AL,81
-p
AX=0081 BX=0000 CX=002E DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000
DS=0B41 ES=0B41 SS=0B41 CS=0B41 IP=0102 NV UP EI NG NZ NA PO NC
0B41:0102 3C01 CMP AL,01
-p
AX=0081 BX=0000 CX=002E DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000
DS=0B41 ES=0B41 SS=0B41 CS=0B41 IP=0104 NV UP EI NG NZ NA PO NC
0B41:0104 7F0A JG 0110
-p
AX=0081 BX=0000 CX=002E DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000
DS=0B41 ES=0B41 SS=0B41 CS=0B41 IP=0106 NV UP EI NG NZ NA PO NC
0B41:0106 3C01 CMP AL,01
-p
AX=0081 BX=0000 CX=002E DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000
DS=0B41 ES=0B41 SS=0B41 CS=0B41 IP=0108 NV UP EI NG NZ NA PO NC
0B41:0108 7716 JA 0120
-p
AX=0081 BX=0000 CX=002E DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000
DS=0B41 ES=0B41 SS=0B41 CS=0B41 IP=0120 NV UP EI NG NZ NA PO NC
0B41:0120 50 PUSH AX
-