关于ARMv7A指令ldrh r0, [r1], r2的存储器传输字节数问询
关于ARMv7A指令
ldrh r0, [r1], r2的存储器传输字节数问题 结论
ISA规定的微处理器与存储器之间的传输字节数是2字节,并非你猜测的6字节。
具体解释
ldrh是ARMv7A的无符号半字加载指令,采用后变址寻址:从r1指向的存储器地址读取2字节半字数据,加载到寄存器r0,之后再用r2的值更新r1。- 你提到的“向寄存器写入4字节字”是误解:
ldrh加载半字后,会在处理器内部将半字零扩展为32位(适配ARM的32位通用寄存器),这个扩展操作完全在CPU内部完成,不涉及与存储器的额外数据交互。 - 整个指令周期里,处理器和存储器之间仅发生一次数据传输:读取2字节的半字,没有其他与存储器相关的读写操作。
内容的提问来源于stack exchange,提问作者Angela
相关产品推荐
相关产品推荐

