所以我们正在使用pdp 11模拟器,我试图以这种方式从另一个寄存器中减去一个寄存器:
sub r2,r4
我想要的是r4将包含r2和r4中保存的值之间的差异,而不是我得到一个巨大的,无关的数字。我试过sub 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
编辑:这不是完整的代码,代码的其余部分不相关,即使代码的其余部分被标记为注释,也会出现问题。
答案 0 :(得分:4)
自从我使用PDP 11汇编程序以来已经有几十年了;但sub r2, r4
从r2中减去r4。您应该使用sub r4, r2
并相应地更改其余代码。