更新日: 2023 年 3 月 18 日
NBCD
NBCD
2 進化 10 進符号反転 (えぬびーしーでぃー)
NBCD.B <ea>
68000/68010/68020/68030/68040/68060 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | モード | レジスタr |
アドレッシングモードと実行時間
モード | レジスタr | <ea> | 68000 | 68010 | 68020 | 68030 | 68040 | 68060 | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | r | Dr | 6(1/0) | 6(1/0) | 🚧 | 🚧 | 🚧 | 🚧 | ||
1 | (Ar) | |||||||||||
1 | (Ar)+ | |||||||||||
1 | 0 | 0 | -(Ar) | |||||||||
1 | (d16,Ar) | |||||||||||
1 | 0 | (d8,Ar,Xn) | - | - | - | - | ||||||
(d8,Ar,Xn*sf) | - | - | 🚧 | 🚧 | 🚧 | 🚧 | ||||||
(bd,Ar,Xn*sf) | ||||||||||||
([bd,Ar,Xn*sf],od) | ||||||||||||
([bd,Ar],Xn*sf,od) | ||||||||||||
1 | 0 | 0 | 0 | (xxx).W | 6(1/0) | 6(1/0) | ||||||
1 | (xxx).L |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
---|---|---|---|
X | 使用しない | 変化する | ボローがあるときセット、さもなくばクリア |
N | 未定義 | 68000/68030 は結果の最上位ビット 68060 は変化しない | |
Z | 変化する | 結果が 0 でないときクリア、さもなくば変化しない | |
V | 未定義 | 68000 は補正値の減算でオーバーフローしたときセット、さもなくばクリア 68030 は常にクリア 68060 は変化しない | |
C | 変化する | ボローがあるときセット、さもなくばクリア |
解説
- <ea> が指すバイト(Dr のとき最下位バイト)を読み出して Yb とします。
- 0 から Yb と X フラグを 2 進化 10 進数として引いた結果を Zb とします。
- 結果に応じてフラグを操作します。
- Zb を <ea> が指すバイト(Dr のとき最下位バイト)へ書き込みます。
<ea> が Dr のとき Dr の最下位バイト以外の部分は変化しません。