SUBW 命令 (Subtract 16bit Memory from Accumulator) |
オペランドに指定された16ビット値をアキュムレータから減算し、結果をYAペアに返します。
SUBW オーバーロード
オペコード |
構文 |
アドレッシングモード |
バイト数 |
命令サイクル |
注 |
9A
|
SUBW YA, dp
|
Direct Page
|
2
|
5
|
|
フラグ変化
nv--h-zc
n: YAペアのMSBがセットされる
v: サインドオーバーフローがあった場合にセットされる
h: Aレジスタのbit4からbit3への繰り下がりが発生しなかった場合にセットされる
z: 演算結果が0の場合にセットされる
c: 算術オーバーフローがなかった場合にセットされる
解説
SUBW命令はオペランドで指定された16ビット値とYAペアの間で差を取り、YAペアに結果を返します。
演算の結果、ビット16への繰り下がり、すなわち算術オーバーフローがなかった場合はオーバーフローフラグはクリアされ、キャリーフラグがセットされます。
また、演算の結果、符号が意図しないものとなった場合、すなわちサインドオーバーフローがあった場合はオーバーフローフラグがセットされ、キャリーフラグはクリアされます。
なお、キャリーフラグの状態にかかわらず、SUBW命令は指定された値のみを引きます。
参照