ええっ⁈ CPU創ったの⁈ すっごーい! 第2章 第7節
~あんたCPUなんか創ってどうするのよ?! Vol.2~
2017/8/11
コミックマーケット C92 1日目 東7そ11b
第2章 第7節 サンプルプログラム
せっかくアキュムレータ間加算が出来るようになったので、何か気の利いたサンプルプログラムを提示すべきだとは思いますが、時間切れのためラーメンタイマーをTD4EX1ように再アセンブルしたものを掲載します。
アドレス | 命令コード | 命令 | 説明 |
---|---|---|---|
0000: | 11100111 | OUT 0111 | LEDを3つ点灯 |
0001: | 00100001 | ADD A, 0001 | 16回ループ |
0010: | 11010001 | JNC 0001 | |
0011: | 00100001 | ADD A, 0001 | 16回ループ |
0100: | 11010011 | JNC 0011 | |
0101: | 11100110 | OUT 0110 | LEDを2つ点灯 |
0110: | 00100001 | ADD A, 0001 | 16回ループ |
0111: | 11010110 | JNC 0110 | |
1000: | 00100001 | ADD A, 0001 | 16回ループ |
1001: | 11011000 | JNC 1000 | |
1010: | 11100000 | OUT 0000 | LEDを全部消灯 |
1011: | 11100001 | OUT 0100 | LEDを1つ点灯 |
1100: | 00100001 | ADD A, 0001 | 16回ループ |
1101: | 11011100 | JNC 1010 | |
1110: | 11101000 | OUT 1000 | 終了のLEDを点灯 |
1111: | 11111111 | JMP 1111 |
入力ポートにテンキーを接続し、出力ポートに7セグメントLEDを追加すれば、加算しか出来ない1桁電卓を作れると思います。キースキャンをソフトウエアで行うのは無理なので、テンキーのデコード回路や、入力時の一時停止回路などが必要になるとは思いますが、CPUの機能としては十分でしょう。
強いて言えば減算命令が欲しい事くらいでしょうか。