課題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の値を変えている。
実行開始前に初期化が必要なものは?
実行中に表示させたいものは?
実行後に表示させたいものは?