課題1:例5のヒント
プログラム(マイクロプログラム)
| | | |
1 | | .TITLE EX5 | |
2 | *EX5: | 100 | ; CMAR 0x100番地から開始 |
3 | | IRA RA00 | ; Raの値により4方向分岐する |
4 | *RA00: | 101 | ; |
5 | | PC := PC + 1 | ; |
6 | | SET HLT | ; 停止 |
7 | *RA01: | 105 | ; |
8 | | PC := PC + 2 | ; |
9 | | SET HLT | ; 停止 |
10 | *RA02: | 109 | ; |
11 | | PC := PC + 4 | ; |
12 | | SET HLT | ; 停止 |
13 | *RA03: | 10D | ; |
14 | | PC := PC + 8 | ; |
15 | | SET HLT | ; 停止 |
8 | | .END | ; |
ヒント
- 3行目は、IR(命令レジスタ)のRaフィールドの2ビットの値により4方向に分岐する操作である。
- このため、このマイクロプログラムだけでは、実行時にどのレジスタが使われるか(事前には)確定しない。
- したがって、シミュレーション開始までにIRの値(正確にはRaフィールドの値)を設定しておく必要がある。
- 各分岐先でPCの値を変えている。
実行開始前に初期化が必要なものは?
実行中に表示させたいものは?
実行後に表示させたいものは?