计算机体系结构中的移位微操作是什么?
移位微操作用于数据的串行传输,并与算术、逻辑和几种数据处理操作结合使用。寄存器的内容可以向左或向右移位。
同时,位移位时,第一个触发器保持来自串行输入的二进制数据。在左移操作中,串行输入将一位传输到最右端位置。在右移操作中,串行输入将一位传输到最左端位置。由串行输入传输的数据决定移位的类型。
移位微操作的类型
移位微操作共有三种类型:
逻辑移位
它通过串行输入传输 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-1 | Rn-2 | R→ | R1 | R0 |
符号位
算术右移
寄存器中最左边的位影响符号位,其余位影响数字。正数的符号位为 0,负数的符号位为 1。负数采用二进制补码形式。该图显示了一个 n 位的符号寄存器。
最左端位置的位 Rn-1 保持符号位。
Rn-2 是数字的最高有效位,并且
R0 是最低有效位。算术右移使符号位保持不变,并将数字(包括符号位)向右移动。因此
Rn-1 保持不变,
Rn-2 接收到来自
Rn-1 的位,以此类推,直至寄存器中的其他位。中的位
R0 将丢失。
广告