ARM汇编代码内存访问次数为5次的原因咨询
ARM汇编内存访问次数拆解
首先明确:ARM属于冯·诺依曼架构,指令与数据共享内存空间,每条指令执行前的取指操作也属于内存访问,这是你漏算的核心点。
5次内存访问的具体构成:
- 3次指令取指:三条汇编指令各需要从内存读取一次指令本身:
MOV R1, R0取指STR R4,[R1,#4]!取指LDR R3,[R1]取指
- 1次数据写访问:
STR R4,[R1,#4]!将R4的32位数据写入R1+4指向的内存地址,这是1次内存写操作(注意指令中的!是更新寄存器R1的值,属于寄存器内部操作,不涉及内存访问) - 1次数据读访问:
LDR R3,[R1]从更新后的R1指向的内存地址读取32位数据到R3,这是1次内存读操作
以上3+1+1=5次,完全匹配题目给出的内存访问次数。
内容的提问来源于stack exchange,提问作者Nicho Roi
相关产品推荐
相关产品推荐

