更新日: 2023 年 7 月 6 日
DBcc
DBcc
デクリメント条件付き相対分岐 (でぃーびーしーしー)
条件
条件コード | DBcc | DBNcc※ | 式 | 説明 | |||
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | DBT | DBNF | 1 | 常に通過 |
1 | DBF | DBNT | 0 | 常にデクリメント | |||
DBRA | |||||||
1 | 0 | DBHI | DBNLS | ~C&~Z | 符号なし比較で大きいとき通過、さもなくばデクリメント | ||
1 | DBLS | DBNHI | C|Z | 符号なし比較で小さいか等しいとき通過、さもなくばデクリメント | |||
1 | 0 | 0 | DBCC | DBNCS | ~C | キャリーがないとき通過、さもなくばデクリメント | |
DBHS | DBNLO | 符号なし比較で大きいか等しいとき通過、さもなくばデクリメント | |||||
1 | DBCS | DBNCC | C | キャリーがあるとき通過、さもなくばデクリメント | |||
0 | DBLO | DBNHS | 符号なし比較で小さいとき通過、さもなくばデクリメント | ||||
1 | DBNE | DBNEQ | ~Z | 等しくないとき通過、さもなくばデクリメント | |||
0 | DBNZ | DBNZE | ゼロでないとき通過、さもなくばデクリメント | ||||
1 | 1 | DBEQ | DBNNE | Z | 等しいとき通過、さもなくばデクリメント | ||
0 | 0 | DBZE | DBNNZ | ゼロのとき通過、さもなくばデクリメント | |||
1 | 0 | DBVC | DBNVS | ~V | オーバーフローがないとき通過、さもなくばデクリメント | ||
1 | DBVS | DBNVC | V | オーバーフローがあるとき通過、さもなくばデクリメント | |||
1 | 0 | DBPL | DBNMI | ~N | 正のとき通過、さもなくばデクリメント | ||
1 | DBMI | DBNPL | N | 負のとき通過、さもなくばデクリメント | |||
1 | 0 | 0 | DBGE | DBNLT | (N&V)|(~N&~V) | 符号あり比較で大きいか等しいとき通過、さもなくばデクリメント | |
1 | DBLT | DBNGE | (N&~V)|(~N&V) | 符号あり比較で小さいとき通過、さもなくばデクリメント | |||
1 | 0 | DBGT | DBNLE | (N&V&~Z)|(~N&~V&~Z) | 符号あり比較で大きいとき通過、さもなくばデクリメント | ||
1 | DBLE | DBNGT | Z|(N&~V)|(~N&V) | 符号あり比較で小さいか等しいとき通過、さもなくばデクリメント |
※ DBNcc は HAS060.X で拡張された書き方です。
DBcc.W Dr,<label>
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 | 1 | 条件コード | 1 | 1 | 0 | 0 | 1 | レジスタr | |||||
+2 | ワードオフセット |
実行時間
68000 | 68010 | 68020 | 68030 | 68040 | 68060 |
---|---|---|---|---|---|
分岐10 条件成立通過12 条件不成立通過14 (2/0) | 分岐10 条件成立通過12 条件不成立通過14 (2/0) | 🚧 | 🚧 | 🚧 | 予測通り分岐1 予測通り通過1 予測なし分岐3 予測なし通過7 予測外れ7 (2/0) |
コンディションコード
フラグ | 入力 | 出力 |
---|---|---|
X | 使用しない | 変化しない |
N | 使用する※ | |
Z | ||
V | ||
C |
※条件の式にあるフラグを使用します。
解説
- 相対分岐のベースアドレスは命令の先頭アドレス +2 です。
- 分岐先のアドレスはベースアドレスにワードオフセットをロングワードに符号拡張した値を加えたアドレスです。
- 条件が成立しているとき通過します。
- 条件が成立していないとき
- Dr の下位ワードから 1 を引きます。
- Dr の下位ワードが $FFFF にならなかったとき分岐先のアドレスへ分岐します。
Dr の上位ワードは変化しません。