[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
};

上のプログラムでは、アキュムレータに即値 0 をロードしたあと、一回インクリメントしてから一回デクリメントしたときの値の変化が追えるようになっています。実行結果は次のようになることを想定しています。

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;

インクリメントとデクリメントは簡単ですが、一応これで加減算を行うこともできるようになったわけです。本格的な加減算命令については、のちほど解説することにします。

この記事のトラックバックURL:

http://www.kijineko.co.jp/trackback/526
このエントリーを含むはてなブックマーク