На хакерском языке ассемблера в симуляторе процессора Add4.asm тест не проходит в строке 2. Я пробовал разные формы, чтобы исправить это, но не могу понять. Как я могу установить его на 0 или, если это не проблема, как еще я могу исправить свой код?
Справка по языку ассемблера ADD4
Всякий раз, когда я запускаю свой файл .asm, в строке 2 я получаю ошибку сравнения. Пожалуйста, помогите мне решить эту проблему. Вот мой код .asm, за которым следует ADD4.tst. Номера строк для Add4.asm четко аннотированы.
Add4 добавляет четыре числа (найденные в RAM [0],…, RAM [3] или R0,…, R3 эквивалентно) и сохраняет результат в RAM [0] (a.k.a. R0). Ваша программа должна завершиться за 30 циклов или меньше
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 |