[PP0906] 11. インクリメントとデクリメント
今回は、息抜きとして、簡単な命令を追加することにします。インクリメントは、1 増やすという意味であり、デクリメントは 1 減らすという意味です。
| 命令 | ニーモニック | 命令長 | 意味 |
|---|---|---|---|
| 19 | INC | 1 | アキュムレータをインクリメント |
| 20 | DEC | 1 | アキュムレータをデクリメント |
| 21 | INCX | 1 | インデックスレジスタをインクリメント |
| 22 | DECX | 1 | インデックスレジスタをデクリメント |
それでは例によって、インクリメントとデクリメントを使ったプログラムを作ってみましょう。
int program[] =
{
LI, 0,
OUT,
INC,
OUT,
DEC,
OUT,
-1
};
{
LI, 0,
OUT,
INC,
OUT,
DEC,
OUT,
-1
};
上のプログラムでは、アキュムレータに即値 0 をロードしたあと、一回インクリメントしてから一回デクリメントしたときの値の変化が追えるようになっています。実行結果は次のようになることを想定しています。
0x00000000(0)
0x00000001(1)
0x00000000(0)
0x00000001(1)
0x00000000(0)
それでは、実際に命令を追加していきましょう。
case INC:
a = a + 1;
break;
case DEC:
a = a - 1;
break;
case INCX:
x = x + 1;
break;
case DECX:
x = x - 1;
break;
a = a + 1;
break;
case DEC:
a = a - 1;
break;
case INCX:
x = x + 1;
break;
case DECX:
x = x - 1;
break;
インクリメントとデクリメントは簡単ですが、一応これで加減算を行うこともできるようになったわけです。本格的な加減算命令については、のちほど解説することにします。
この記事のトラックバックURL:
http://www.kijineko.co.jp/trackback/526
ブックナビゲーション
- 技術情報
- Boost C++ Libraries メモ
- C++と組込み環境
- C++サンプル集
- C++テンプレート集
- C++プログラマのためのC言語入門
- C/C++迷信集
- C99関数・マクロ・前処理スクリプト集
- C言語再入門
- C言語徹底入門
- Drupal メモ
- TOPPERS 情報
- ベターCとしてのC++
- マイコン メモ
- ライブラリ開発入門
- 分割コンパイルをきわめる
- 擬似プロセッサを作る
- PP0906 - 初級者向け擬似プロセッサ
- [PP0906] 00. 擬似プロセッサ PP0906 を作る
- [PP0906] 01. 擬似プロセッサ PP0906 の仕様
- [PP0906] 02. 主記憶と制御装置
- [PP0906] 03. 何もしないプログラム
- [PP0906] 04. 即値のロードと出力
- [PP0906] 05. レジスタ間の転送
- [PP0906] 06. ニーモニックを使う
- [PP0906] 07. ロードとストア
- [PP0906] 08. ジャンプ
- [PP0906] 09. スタック操作
- [PP0906] 10. コールとリターン
- [PP0906] 11. インクリメントとデクリメント
- [PP0906] 12. 条件分岐
- [PP0906] 13. 加算と減算
- [PP0906] 14. 不正命令例外
- [PP0906] 15. まとめ
- PP0906 - 初級者向け擬似プロセッサ
- 象の卵を探して...
- 車輪の再発明
- 過去の情報

