ARM PRE/POST address mode简析
第一篇blog,纯粹是因为实在是百度不到ARM ldr and str
关于PRE 和post两种地址模式的介绍,也有可能是自己关键词检索不对…
pre/post 地址模式
pre/post 是ARM独特的一种地址模式,专门使用在load
和store
指令上,解释如下(以ldr
为例):
PRE汇编格式:
LDR R0, [BASE, #IMM]!
意思是:R0的值等于内存地址中base+imm的地址中的值,同时将base+imm计算出来的结果,写进base
举个栗子:
LDR R0, [R1, #8]!, R0 = mem(R1+8), R1=R1+8
POST汇编格式:
LDR R0, [BASE], #IMM
意思是:R0的值是内存中base寄存器所指向的地址的值,同时将base+imm的值写进base
举个栗子:
LDR R0, [R1], #8, R0=mem(R1), R1=R1+8
STR指令也是这样的格式,就不再赘述了。