Мне нужно ответить на вопрос: почему в строке 9 произошла ошибка сравнения, а в строке 8 нет?
2-й вопрос:
Как можно исправить это, чтобы поддержать умножениеотрицательные значения?
Программа умножает R0 и R1 и сохраняет результат в R2.(R0, R1, R2 относятся к RAM [0], RAM [1] и RAM [2] соответственно.)
Mult.asm:
0 @R2
1 M=0
2 @R0
3 D=M
4 @STEP
5 D;JNE
6 @END
7 0;JMP
8 @R2
9 D=M
10 @R1
11 D=D+M
12 @R2
13 M=D
14 @R0
15 D=M-1
16 M=D
17 @STEP
18 D;JGT
19 @END
20 0;JMP
Mult.cmp:
| RAM[0] | RAM[1] | RAM[2] |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 0 | 2 | 0 |
| 3 | 1 | 3 |
| 2 | 4 | 8 |
| 6 | 7 | 42 |
| 6 | -7 | -42 |
| -6 | 7 | -42 |