我正在处理以下代码以左移 R0 中的值 - 我相信这会起作用。此外,由于 R0 是左移的,因此被移除的位的值应存储在 R2 中。我不确定我所做的是否正确。
此外, MASK .FILL x8000 似乎不起作用。我的 LC-3 模拟器返回错误。它指出“无效指令。RTI 以用户模式特权执行。”
.ORIG x3000
LD R0 X
AND R2 R2 0
LD R3 MASK
LD R1 N
BRZ done
loop
AND R2 R0 R3 ;store leftmost digit of R0 into R2
ADD R0 R0 R0 ;left shift R0
ADD R1 R1 -1
BRP loop
done .FILL x0000
MASK .FILL x8000
X .FILL xFFFF
N .FILL 5 ;amount of times of leftshifts
.END