Emerald@ ウィキ

フラグレジスタと条件分岐


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

2つ目のレジスタ、 フラグレジスタ の登場です。

名称 意味 ON / OFF
OF(オーバーフローフラグ) 符号付演算の桁上がりが起こるとセット OV / NV
ZF(ゼロフラグ) 演算結果が0であればセット NR / NZ
CF(キャリーフラグ) 演算結果の桁上がりが起こるとセット CY / NC

フラグレジスタの数は全部で8つだが、これらはもっとも利用される3つです。

オーバーフローフラグ(OF) キャリーフラグ(CF)


フラグレジスタは右下のOV~CYという部分。
オーバーフローフラグは OV キャリーフラグは CY と二つとも有効なっています。
※説明は省略



ゼロフラグ(ZF)


「cmp」 命令はデータの比較し、その結果をフラグレジスタに反映させます。

同値ならば ZFフラグが1(ZR)、CFフラグが0(NC)になる。
al の方が大きい場合、両フラグともに0になる。
bl の方が大きい場合、ZFフラグが0(NZ)、CFフラグが1(CY)となります。

上記の場合は同値となるのでZFフラグが1(ZR)、CFフラグが0(NC)となる。

次の 「je」 命令はZFフラグが1(ZR)ならば指定されたアドレスにジャンプする命令。
1でなければスルー
今回は1(ZR)になっているのでアドレス0120に飛ぶ。



フラグレジスタとジャンプ命令を使って乗算を行う。
※文章が消えたので省略。


取得中です。