0

我正在尝试确定如何使用 LC-3 指令集将 16 位(两个字节)字的最后 8 位(即字节)左移。

例如,

0000 0000 1111 1111 -> 1111 1111 0000 0000
4

2 回答 2

1

要进行左移,您所要做的就是将值添加到自身。创建一个简单的循环来执行此操作 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
于 2013-04-19T23:57:01.220 回答
1

现在了解您在谈论 LC-3,我找到了LC-3b 微架构和这个关于指令集的演示文稿。

你需要实现一个逻辑转变。特别是逻辑左移。有多种方法可以做到这一点。

如果您了解二进制算术,您将能够以简单的方式做到这一点。

于 2013-03-27T00:11:50.930 回答