几个有关ARM汇编的小问题

    一次在开发中遇到了问题,在百度上查资料,看到了百度提问中的一篇提问,内容如下:

==================================================================

 有几个问题,请大家指教一下:

1。    LDR r0, =|Image$$RO$$Limit|            LDR r1, =|Image$$RW$$Base|            LDR r3, =|Image$$ZI$$Base| 这是什么意思啊,请具体讲解一下 2。  [ PLLONSTART     ldr    r0,=PLLCON            ;temporary setting of PLL     ldr    r1,=((M_DIV<<12)+(P_DIV<<4)+S_DIV)    ;Fin=10MHz,Fout=40MHz     str    r1,][r0]     ]

中的[ ]是什么意思,我翻遍了买的书都没找到。 3。    [ {CONFIG} = 16     THUMBCODE SETL    {TRUE}     CODE32     |    THUMBCODE SETL    {FALSE}     ]

中的|是什么意思? 4。beq    %F2     b    %B0 是什么意思? 

    觉得初学者实在不晚,忍不住,便将答案写到下面: =================================================

1     一个arm程序由RO,RW,ZI三个断组成 其中RO为代码段,RW是已经初始化的全局变量,ZI是未初始化的全局变量(对于GNU工具 对应的概念是TEXT ,DATA,BSS)     bootloader要将RW段复制到ram中并将ZI段清零 编译器使用下列段来记录各段的起始和结束地址 ; |Image$$RO$$Base| ; RO段起始地址 ; |Image$$RO$$Limit| ; RO段结束地址加1 ; |Image$$RW$$Base| ; RW段起始地址 ; |Image$$RW$$Limit| ; RW段结束地址加1 ; |Image$$ZI$$Base| ; ZI段起始地址 ; |Image$$ZI$$Limit| ; ZI段结束地址加1

2 符号“[”和“] ”翻译为C语言意为   “[” =if    “]” = endif 3   “|" = else 4    标号地址跳转,F是向后寻找,B是向前 ===================================================

其实这些都是重要的小常识,为什么这么多的ARM开发书籍不集中讲解一下呢!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值