分享

[转载]ARM汇编STR和LDR(转)

 豆芽爱尚阅 2014-05-22
    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这个标号的地址。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多