Emerald@ ウィキ
フラグ操作
最終更新:
emerald-device
-
view
フラグレジスタは一般的に条件分岐に使われます。
CFフラグは「キャリーフラグ」と呼ばれており、演算結果の桁上がりが
起こると1(CY)となり、桁上がりが起こらなければ0(NC)となります。
CFフラグは「キャリーフラグ」と呼ばれており、演算結果の桁上がりが
起こると1(CY)となり、桁上がりが起こらなければ0(NC)となります。
ALレジスタに FF を格納して、さらに1を加算することでALレジスタは桁上がりが発生します。
ALレジスタは1バイトなので当然、桁上がりが発生したら0になります。
ALレジスタは1バイトなので当然、桁上がりが発生したら0になります。
また桁上がりが発生したのでCFフラグが1(CY)になっているのが結果からわかります。
このプログラムではadd命令によってCFフラグを変化させましたが、フラグレジスタを変化させるだけの命令が存在します。
このプログラムではadd命令によってCFフラグを変化させましたが、フラグレジスタを変化させるだけの命令が存在します。
「clc」命令はCFフラグを0(NC)にする命令です。
プログラムではadd命令によってCFフラグは1(CY)になるはずですが
次のclcl命令によって再び0(NC)に戻っています。
プログラムではadd命令によってCFフラグは1(CY)になるはずですが
次のclcl命令によって再び0(NC)に戻っています。
clc | CFフラグを0(NC)にする |
stc | CFフラグを1(CY)にする |
cmc | CFフラグを反転させる |
添付ファイル