Ошибка сравнения отрицательных чисел - PullRequest
0 голосов
/ 25 марта 2019

Мне нужно ответить на вопрос: почему в строке 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  |
...