为什么我在 LC-3 模拟器中看到 R3 寄存器而不是 R1,就像我在 sample.bin 文件中写的那样?

Why do I see R3 register in the LC-3 simulator instead of R1, as I wrote in a sample.bin file?

程序代码如下:

1110 001 011111111 ; R1 <-- x3100 (PC+0xFF)
0101 011 011100000 ; R3 <-- 0
0101 010 010100000 ; R2 <-- 0
0001 010 010101100 ; R2 <-- 12
0000 010 000000101 ; if Z, goto x300A (PC+5)
0110 100 001000000 ; Load next value to R4
0001 011 011000100 ; Add to R3
0001 001 001100001 ; Increment R1 (pointer)
0001 010 010111111 ; Decrement R2 (counter)
0000 111 111111010 ; Goto x3004 (PC-6)

有一个屏幕截图显示了我遇到的问题。 enter image description here

如果您使用原始模式,使用 LC-3 模拟器,第一行会告诉它后续代码的位置。因此,您的 0xE2FF — 您打算作为一条指令 — 被视为 ORG 地址,并且放置在那里的第一条指令是第一条 AND 指令(您的第二条预期指令)。

尝试在第一行插入以下内容:

0000 000 000000000 ; ORG 0x0000

或使用

0011 000 000000000 ; ORG 0x3000