所以我们正在使用PDP 11模拟器,我正试图从另一个寄存器中减去一个寄存器:
sub r2, r4
我想要的是r4将包含保存在r2和r4中的值之间的差,而不是我得到一个巨大的,不相关的数字。我试过r2 r5,还是一样的问题
我错在哪里?代码如下:(该行位于标志"kaka"之后)
.=torg+1000
main:
mov n_cols, r0
mul n_rows, r0
mov r1, r0; r0 is now the length of the array of the maze
mov #Board, r2
mov #Path,r3;
loop:
cmpb (r2),#'S
beq loop2
tst (r2)+
sob r0, loop ;Go to next iteration
loop2:
cmpb (r2), #1
beq illegal
mov #Board,r4
kaka:
sub r2, r4
waka:
bmi illegal
编辑:这不是完整的代码,其余的代码是不相关的,即使其余的代码被标记为注释,问题仍然发生。
我玩PDP 11汇编已经有几十年了;但是sub r2, r4
从r2减去r4。您应该使用sub r4, r2
并相应地更改其余代码。