In hack assembly language in the CPU simulator Add4.asm, the test keeps failing at line 2. I have tried various forms to fix it but can't figure it out. How can I set it to 0 or if that's not the issue, how else could I fix my code? ADD4 Hack Assembly Language Help
Whenever I run my .asm file, I get a comparison failure at line 2. Please help me resolve this issue. Here is my .asm code, followed by ADD4.tst. The line numbers for Add4.asm are clearly annotated.
Add4 adds four numbers (found in RAM[0], …, RAM[3] or R0, …, R3 equivalently) and stores result in RAM[0] (a.k.a. R0). Your program must finish in 30 cycles or fewer
Add4.asm:
1. @1
2. D=M
3. @2
4. D=D+M
5. @3
6. D=D+M
7. @4
8. D=D+M
9. @5
10. D=D+M
11. @0
12. M=D
Add4.tst:
load Add4.asm,
output-file Add4.out,
compare-to Add4.cmp,
output-list RAM[0]%D2.6.2;
set RAM[0] 1,
set RAM[1] 2,
set RAM[2] 3,
set RAM[3] 4,
repeat 30
{ ticktock; }
output;
set PC 0,
set RAM[0] 0,
set RAM[1] 0,
set RAM[2] 0,
set RAM[3] 0,
repeat 30
{ ticktock; }
output;
set PC 0,
set RAM[0] -10,
set RAM[1] 5,
set RAM[2] 100,
set RAM[3] 9,
repeat 30
{ ticktock; }
output;
add4.cmp:
1.| RAM[0] |
2.| 10 |
3.| 0 |
4.| 104 |