我正在尝试确定如何使用LC-3指令集将16位(两个字节)字的最后8位(即字节)向左移动。
例如,0000 0000 1111 1111 -> 1111 1111 0000 0000
要做左移,你所要做的就是将值添加到自身。创建一个简单的循环,重复执行8次。
之类的LD R1, count
loop
LD R0, word
ADD R0, R0, R0 ;Left Shift
ADD R1, R1, -1 ;Decrement shift counter
BRp loop ;We still have shifts, go back to loop
HALT
count .fill #8
现在明白你说的是LC-3,我找到了LC-3b微架构和这个关于指令集的演讲参考。
您需要实现逻辑转换。具体来说,这是一个合乎逻辑的左移。有许多方法可以做到这一点。
如果你懂二进制算术,你就能用一种简单的方法来做。