ええっ⁈ 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の機能としては十分でしょう。

強いて言えば減算命令が欲しい事くらいでしょうか。