Ch10 指令集:特征和功能¶
机器指令的要素¶
- 操作码
- 源操作数引用
- 结果操作数引用
- 下一条指令引用
操作数个数¶
- 三地址:操作数 1,操作数 2,结果,\(c=a+b\)
- 双地址:其中一个地址既是操作数也存储结果,\(a=a+b\)
- 单地址:寄存器操作
- 零地址:pop,push 等
- 更多的地址:更复杂强大的指令,更复杂的 CPU,更少的程序指令数
- 更少的地址:更简单的指令和 CPU,更多的程序指令数
移位操作¶
- 逻辑移位
- 逻辑右移 1 位相当于:无符号整数除以 2
- 逻辑左移 1 位相当于:无符号整数乘以 2

- 算数移位
- 算术右移 1 位相当于:带符号整数除以 2
- 算术左移 1 位相当于:带符号整数乘以 2

- 循环移位:
- 保留所有被处理的位,检查某一位的状态,高低位交换
- 循环右移 & 循环左移

数端¶
- 大数端(big-endian ordering):最高有效字节存放在最低的地址上
- 小数端(little-endian ordering):最高有效字节存放在最高的地址上
内存对齐¶
- 内存对齐是指数据在内存中存放时,地址必须是某个特定值的倍数,以提高访问效率。
- 例如,32 位数据要求在 4 字节对齐的地址上存放,64 位数据要求在 8 字节对齐的地址上存放。