Tracing a simple MARIE program
Consider the following program:
| Address | Instruction | Contents of Memory |
|---|
| 100 | Load 104 | 0x1104 |
| 101 | Add 104 | 0x3105 |
| 102 | Store 104 | 0x2106 |
| 103 | Halt | 0x7000 |
| 104 | 0023 | 0x0023 |
| 105 | FFE9 | 0xFEE9 |
| 106 | 0000 | 0x0000 |
001. Load 104
| Step | RTL | PC | IR | MAR | MBR | AC |
|---|
| (initial values) | | 100 | - | - | - | - |
| Fetch | MAR ← PC | 100 | - | 100 | - | - |
| IR ←M[ MAR ] | 100 | 1104 | 100 | - | - |
| PC ← PC +1 | 101 | 1104 | 100 | - | - |
| Decode | MAR ← IR [11−0] | 101 | 1104 | 104 | - | - |
| (Decode IR [15−12]) | | | | | |
| Get operand | MBR ←M[ MAR ] | 101 | 1104 | 104 | 0023 | - |
| Execute | ACC ← MBR | 104 | 1104 | 104 | 0023 | 0023 |
002. Add 105
| Step | RTL | PC | IR | MAR | MBR | AC |
|---|
| (initial values) | | 101 | 1104 | 104 | 0023 | 0023 |
| Fetch | MAR ← PC | 101 | 1104 | 101 | 0023 | 0023 |
| IR ←M[ MAR ] | 101 | 3105 | 104 | 0023 | 0023 |
| PC ← PC +1 | 102 | 3105 | 104 | 0023 | 0023 |
| Decode | MAR ← IR [11−0] | 102 | 3105 | 105 | 0023 | 0023 |
| (Decode IR [15−12]) | | | | | |
| Get operand | MBR ←M[ MAR ] | 102 | 3105 | 105 | FFE9 | 0023 |
| Execute | ACC ← ACC + MBR | 102 | 3105 | 105 | FFE9 | 000C |