【问题标题】:LC-3 left-shift and store left-shifted bitsLC-3 左移并存储左移位
【发布时间】:2013-11-10 02:12:07
【问题描述】:

我正在编写以下代码来左移 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

【问题讨论】:

  • 这听起来像是家庭作业。
  • 我仍然不明白为什么 MASK .FILL x8000 不起作用。

标签: lc3


【解决方案1】:

如果您查看 RTI 的操作码: 1000 0000 0000 0000

它与“MASK .FILL X8000”存储的值相同: 1000 0000 0000 0000

您没有在 MASK 之前的任何地方放置 HALT 指令,因此程序将继续运行 MASK、X 和 N。当它运行 MASK 时,它认为您正在尝试使用 RTI 指令,因为它们具有等效价值观。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多