1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

自作CPUAdvent Calendar 2022

Day 8

Kageki (TD4互換機) でアップダウンカウンタ

Posted at

TD4の命令を実行できる自作CPU「Kageki」でアップダウンカウンタを作ってみた。

仕様

以下、ビットの表記は0-originである。

  • 現在のカウント値を出力ポートに出力する。
  • 入力ポートのビット2が0で、ビット3が0から1になったら、カウント値を1増やす。
  • 入力ポートのビット3が0で、ビット2が0から1になったら、カウント値を1減らす。

プログラム

位置 機械語    アセンブリ言語
---------------------------------
0    10010000  DISP:  OUT B
1    00100000  WAIT:  IN  A
2    00001100         ADD A, 1100
3    11100101         JNC CHECK
4    11110001         JMP WAIT
5    00100000  CHECK: IN  A
6    00001000         ADD A, 1000
7    11101010         JNC NOTUP
8    01010001         ADD B, 0001
9    11110000         JMP DISP
A    00000100  NOTUP: ADD A, 0100
B    11100101         JNC CHECK
C    01011111         ADD B, 1111
D    11110000         JMP DISP

0番地で、カウント値を出力ポートに出力する。
1番地~4番地で、入力ポートのビット2とビット3がともに0になるまで待機する。
5番地~7番地で、入力ポートのビット3が1かをチェックする。
8番地~9番地で、(入力ポートのビット3が1だったので)カウント値に1を加算し、表示処理に移る。
A番地~B番地で、入力ポートのビット2が1かをチェックする。(このとき、ビット3のチェック処理によりAレジスタのビット3は1になっている)
C番地~D番地で、(入力ポートのビット2が1だったので)カウント値から1を減算し、表示処理に移る。

実行結果

入力ポートに Pmod BTN モジュールを、出力ポートに 1-Digit 7seg Board を接続して実行した。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?