ARM汇编STR和LDR
1.使用单一数据传送指令(STR 和 LDR)来装载和存储单一字节或字的数据从/到内
存。
请问装载(LDR)和存储(STR)有什么区别?我个人理解没有区别.就是向指定的地址写数
据.是么?
LDR是内存数据放到寄存器,即装载,是读
STR是寄存器数据到内存,即存储,是写
2.ldr r0, PtEBIBase
对于这条指令中的PtEBIBase,它是一个地址么?可是它之前的定义是:
PtEBIBase:
.long EBI_BASE
PtEBIBase是一个标号,指向一个long型的数,这个数的值等于EBI_BASE,就是EBI的
基地址
3.ldr r1, [pc,#-(8+.-InitTableEBI)]
#-(8+.-InitTableEBI)这个东西如何计算?比如:
InitTableEBI是一个标号
8 + 当前地址 = 当前PC
8 + 当前地址 - InitTableEBI = 当前PC到InitTableEBI这个标号(即地址)的距
离。
pc - (8 + 当前地址 - InitTableEBI) = InitTableEBI这个标号的地址。
就是说,最后r1的值是InitTableEBI这个标号的地址。
存。
请问装载(LDR)和存储(STR)有什么区别?我个人理解没有区别.就是向指定的地址写数
据.是么?
LDR是内存数据放到寄存器,即装载,是读
STR是寄存器数据到内存,即存储,是写
2.ldr
对于这条指令中的PtEBIBase,它是一个地址么?可是它之前的定义是:
PtEBIBase:
PtEBIBase是一个标号,指向一个long型的数,这个数的值等于EBI_BASE,就是EBI的
基地址
3.ldr
#-(8+.-InitTableEBI)这个东西如何计算?比如:
InitTableEBI是一个标号
8
8
离。
pc
就是说,最后r1的值是InitTableEBI这个标号的地址。
关键词: ARM汇编STRLD

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码