私はこの非常に単純なアセンブリコードを持っています:
start:
add ax, 100
; if ax overflow add to bx 1
jmp start
しかし、axレジスタのオーバーフローを検出する方法がわかりません。誰か助けてもらえますか?
ADD
FLAGS
オーバーフロー状態を反映する適切な命令セット。オーバーフローには、符号付きと符号なしの 2 種類があります。何が適切かを判断しjc/jnc
、未署名と署名に使用する必要がありますjo/jno
。
add ax, 100
jnc noUnsignedOverflow
...
noUnsignedOverflow:
add ax, 100
jno noSignedOverflow
...
noSignedOverflow:
jo
(オーバーフローの場合はジャンプ)またはjno
(オーバーフローがない場合はジャンプ)を使用します
Intelx86JUMPクイックリファレンスを確認してください