我正在尝试仅通过使用LC-2K指令进行逻辑右移和逻辑移位!在ARM ISA,汇编语言中,有LSR和LSL用于在汇编语言中写入位移,但LC-2K没有这样的选项。
LC-2K中唯一可用的选项是: Lw,sw,beq,jalr,add,nor,noop,halt。
我似乎无法通过使用LC-2K汇编语言中的这些指令来找到一种方法来进行任何位移。
请给我一些建议。 先感谢您!
答案 0 :(得分:0)
您可以通过向自身添加寄存器来向左移1。您可以使用循环向左移动多个。
右移可以通过将除底部之外的所有位复制到临时寄存器的循环完成,然后将暂存寄存器复制回源。我不熟悉LC-2K,但是nor
应该足以让你屏蔽掉比特,beq
会让你测试屏蔽位是否设置,add
将允许您将该位复制到目标寄存器,以及在循环之前将工作位移位一位。我能想到的最简单的方法是使用两个计数器,一个从1开始(用于写入),另一个从2开始(用于读取)。可能有其他方法可以做到这一点,但那个问题发生在我身上。