3

我有这个非常简单的汇编代码:

start:
add ax, 100    
; if ax overflow add to bx 1
jmp start

但我不知道如何检测 ax 寄存器溢出,有人可以帮我吗?

4

2 回答 2

9

ADD指令集适当FLAGS反映溢出情况。溢出有两种:有符号和无符号。您必须决定什么是合适的,并jc/jnc用于未签名和jo/jno已签名。

add ax, 100
jnc noUnsignedOverflow
...
noUnsignedOverflow:

add ax, 100
jno noSignedOverflow
...
noSignedOverflow:
于 2013-01-25T14:15:36.110 回答
4

使用jo(jump if overflow) 或jno(jump if no overflow)

查看Intel x86 JUMP 快速参考

于 2013-01-25T14:14:15.000 回答