计算机体系结构中的移位微操作是什么?


移位微操作用于数据的串行传输,并与算术、逻辑和几种数据处理操作结合使用。寄存器的内容可以向左或向右移位。

同时,位移位时,第一个触发器保持来自串行输入的二进制数据。在左移操作中,串行输入将一位传输到最右端位置。在右移操作中,串行输入将一位传输到最左端位置。由串行输入传输的数据决定移位的类型。

移位微操作的类型

移位微操作共有三种类型:

逻辑移位

它通过串行输入传输 0。符号 **"shl"** 可用于逻辑左移,**"shr"** 可用于逻辑右移。

R1 ←R1 shl R1

R2 ←R1 shr R2

寄存器符号应与箭头两侧的符号等效。

循环移位

这会将寄存器的位在两端循环或旋转,而不会出现数据或内容的问题。在循环移位中,移位寄存器的串行输出连接到其串行输入。**"cil"** 和 **"cir"** 分别用于循环左移和右移。移位微操作的符号表示在表中显示。

移位微操作

符号表示描述
R ←R1 shl R左移寄存器 R
R ←R1 shr R右移寄存器 R
R ←R1 cil R循环左移寄存器 R
R ←R1 cir R循环右移寄存器 R
R ←R1 ashl R算术左移 R
R ←R1 ashr R算术右移 R

算术移位

这会将带符号二进制数向左或向右移动。算术左移将带符号二进制数乘以 2,而左移则将该数除以 2。由于带符号数在乘以或除以 2 时保持相等,因此算术移位微操作使符号位保持不变。

Rn-1Rn-2RR1R0

符号位

算术右移

寄存器中最左边的位影响符号位,其余位影响数字。正数的符号位为 0,负数的符号位为 1。负数采用二进制补码形式。该图显示了一个 n 位的符号寄存器。

最左端位置的位 Rn-1 保持符号位。

Rn-2 是数字的最高有效位,并且

R0 是最低有效位。算术右移使符号位保持不变,并将数字(包括符号位)向右移动。因此

Rn-1 保持不变,

Rn-2 接收到来自

Rn-1 的位,以此类推,直至寄存器中的其他位。中的位

R0 将丢失。

更新于:2021年7月24日

11K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告