解答计算机组成原理一些问题
4
2
为什么间接寻址相对直接寻址可扩大寻址范围
假设:
计算机的 指令字长16位,其中 地址字段占8位(直接寻址时)。
存储器的 地址总线宽度为16位(即最大寻址范围是64KB)。
内存单元存储的数据宽度也是 16位(即每个单元能存一个地址)。
- 直接寻址的局限性
若采用直接寻址,地址字段仅8位,可直接寻址的范围是 2⁸ = 256个单元(如0x00~0xFF)。
这远小于存储器实际的64KB(16位地址)范围,造成了浪费。
- 间接寻址的解决方式
间接寻址的地址字段(8位)不直接表示操作数地址,而是指向一个内存单元,该单元中存储了 完整的16位操作数地址。
例如:
指令中的地址字段为 0x40(8位)。
CPU先访问内存单元 0x40,读取其中存储的 16位地址(如 0xA010)。
最终操作数位于 0xA010(16位地址,突破了8位限制)。
3
x86架构与ARM架构
特性 x86 ARM
指令集 CISC(复杂指令) RISC(精简指令)
功耗 较高(性能优先) 较低(能效优先)
主导领域 PC、服务器、高性能计算 移动设备、嵌入式、IoT
生态 Windows/Linux主流 Android/iOS主导
cmp v.s. test
CMP vs TEST 核心区别
指令 底层操作 主要用途 影响的关键标志位
CMP OP1 - OP2 比较数值大小 ZF, CF, SF, OF
TEST OP1 & OP2 检查位模式或判断零值 ZF, SF
- cmp
关键标志位:
ZF=1:两数相等(OP1 == OP2)。
CF=1:无符号数 OP1 < OP2。
SF≠OF:有符号数 OP1 < OP2。
- test
ZF=1:结果为零(所有位按位与后为0)。
SF=1:结果的最高位为1(负数)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 陈同学的桃花源!
评论