Emerald@ ウィキ
フラグレジスタと条件分岐
最終更新:
Bot(ページ名リンク)
-
view
2つ目のレジスタ、フラグレジスタの登場です。
名称 | 意味 | ON / OFF |
OF(オーバーフローフラグ) | 符号付演算の桁上がりが起こるとセット | OV / NV |
ZF(ゼロフラグ) | 演算結果が0であればセット | NR / NZ |
CF(キャリーフラグ) | 演算結果の桁上がりが起こるとセット | CY / NC |
フラグレジスタの数は全部で8つだが、これらはもっとも利用される3つです。
オーバーフローフラグ(OF) キャリーフラグ(CF)

フラグレジスタは右下のOV~CYという部分。
オーバーフローフラグは OV キャリーフラグは CY と二つとも有効なっています。
※説明は省略
オーバーフローフラグは OV キャリーフラグは CY と二つとも有効なっています。
※説明は省略
ゼロフラグ(ZF)
「cmp」命令はデータの比較し、その結果をフラグレジスタに反映させます。
同値ならば ZFフラグが1(ZR)、CFフラグが0(NC)になる。
al の方が大きい場合、両フラグともに0になる。
bl の方が大きい場合、ZFフラグが0(NZ)、CFフラグが1(CY)となります。
al の方が大きい場合、両フラグともに0になる。
bl の方が大きい場合、ZFフラグが0(NZ)、CFフラグが1(CY)となります。
上記の場合は同値となるのでZFフラグが1(ZR)、CFフラグが0(NC)となる。
次の「je」命令はZFフラグが1(ZR)ならば指定されたアドレスにジャンプする命令。
1でなければスルー
今回は1(ZR)になっているのでアドレス0120に飛ぶ。
1でなければスルー
今回は1(ZR)になっているのでアドレス0120に飛ぶ。
フラグレジスタとジャンプ命令を使って乗算を行う。
※文章が消えたので省略。
※文章が消えたので省略。