装配,检测溢出寄存器

时间:2013-01-25 14:10:27

标签: assembly overflow

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

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

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

2 个答案:

答案 0 :(得分:7)

ADD指令设置适当的FLAGS反映溢出条件。溢出有两种:有符号和无符号。您必须确定哪些是合适的,并使用jc/jnc表示未签名,jo/jno表示签名。

add ax, 100
jnc noUnsignedOverflow
...
noUnsignedOverflow:

add ax, 100
jno noSignedOverflow
...
noSignedOverflow:

答案 1 :(得分:4)

使用jo(如果溢出则跳转)或jno(如果没有溢出则跳转)

查看Intel x86 JUMP quick reference