计算机基础原理深度剖析
1. 逻辑左移操作
逻辑左移(Shift Logical Left,SHL)是计算机中一种重要的位操作。以 16 位操作数为例,进行一位 SHL 操作时,所有位向左移动一位,最低有效位(LSB)补零,符号位则移入进位标志 C。一次左移操作相当于将有符号整数乘以 2。但如果操作后符号位发生变化(从 0 变为 1 或从 1 变为 0),则表示发生了溢出,这意味着由于编程错误,结果不再正确,这也是不实现算术左移(SAL)操作码的原因。
IV 会生成多种控制信号:
- NS:不进行移位
- SHL:左移
- SHR:右移(逻辑或算术)
- ARI:算术类型
当操作数为 32 位时,移位器输出的逻辑方程如下:
- Sh0 = S0 NS + S1 SHR
- Shi = Si NS + Si - 1 SHL + Si + 1 SHR (i = 1, 2, … 30)
- Sh31 = S31 NS + S30 SHL + S31 ARI
其中,Shi 是第 i 位的移位器输出,Si 是加法器第 i 位的和。图 3.8 展示了用于生成 Shi 的与 - 或门实现。对于非移位操作,只有 NS 为 1,加法器的和位直接连接到总线而不发生偏移;对于左移操作,只有 SHL 为 1,加法器的和位向左偏移一位;对于右移操作,SHR 始终为 1,ARI 位决定是否保留符号位,1 表示保留,0 表示不保留。
2. 状态寄存器
在第三代计算机中,状态寄存器(SR)被用于记录当前正在执行的程序的部分运行环境。SR 也被称为标志(F)寄存器或程序状态字(PS
计算机基础原理深度解析
超级会员免费看
订阅专栏 解锁全文

16万+

被折叠的 条评论
为什么被折叠?



