几个2410引导程序里面的 汇编语法问题

初学Arm2410引导程序的几个问题,请大家帮我解答一下下面的几个问题,十分感谢!
有的问题可能说的不是很清楚,也可能比较幼稚,请大家指正,我再重新发上来!


1、BIT_SELFREFRESH EQU (1<<22)
  请问其中BIT_SELFREFRESH定义的是什么常量? (1<<22)是什么意思?

2、IMPOR |Image$$RO$$Base|
IMPOR 是引用外部的标号  |Image$$RO$$Base| 什么意思呢?


3、 ASSERT  :DEF:ENTRY_BUS_WIDTH
ASSERT 是报告错误,可这句话这么写什么意思呢?

4、ChangeBigEndian
;@0x24
    [ ENTRY_BUS_WIDTH=32
        DCD    0xee110f10    ;0xee110f10 => mrc p15,0,r0,c1,c0,0
        DCD    0xe3800080    ;0xe3800080 => orr r0,r0,#0x80;  //Big-endian
        DCD    0xee010f10    ;0xee010f10 => mcr p15,0,r0,c1,c0,0
    ]
我看书上说 DCD 的语法格式为
标号  DCD 表达式   可上面一段程序是什么意思呢?


5、ORR R0,R0,#(7<<17)
请问上面 什么意思呢? 尤其是#(7<<17)

6、SBUS R1,R1,#1
   BNE %B0

上面一段程序是判别 运算结果 等于零 就跳转到  %B0  ?这样理解对么? %B0 是什么意思?%是分配一

段连续的地址,B0是什么呢??

万分感谢!
1:
自己顶下别沉了 ,麻烦大家帮我看看!
2:
请指点一下,谢谢各位大虾 麻烦帮忙指点一下 十分感谢
3:
抛砖引玉我来回答几个简单的,抛砖引玉
1<<22 是一个常数, 是不是学C语言的时候最后几章没学好?"<<"是左移运算符,所以 1<<22 == 10000000000000000000000b
7<<17 == 0111b 左移17位,自己移动吧,呵呵

DCD :我的理解是类似51汇编里的 DB 和 DW ,在代码段里定义一些常量表什么的

其他就不会了
呵呵
4:
我也来答两个问题|Image$$RO$$Base|:RO段起始地址,这个值是通过编译器的设定来确定的 RO-Base

BNE %B0:跳转到向后的0标识位置处


5:
to liyuanhua跳转到向后的0标识位置处?可否详细点,谢谢
6:
re:icyacht在你的汇编程序里,是不是有0,1(这里的0,1是代表程序地址的一个标识符,跟我们自己给子程序起的名字一样的作用) 这些标识符存在? 在这里%B 代表向后查找,%F代表向前查找的意思。
7:
回复主题:请教几个2410引导程序里面的 汇编语法问题ASSERT  :DEF:ENTRY_BUS_WIDTH
确认是否有定义ENTRY_BUS_WIDTH

        DCD    0xee110f10    ;0xee110f10 => mrc p15,0,r0,c1,c0,0
        DCD    0xe3800080    ;0xe3800080 => orr r0,r0,#0x80;  //Big-endian
        DCD    0xee010f10    ;0xee010f10 => mcr p15,0,r0,c1,c0,0

这个我也有疑问,有问过。DCD后的数据应该是程序的指令代码。

BIT_SELFREFRESH

呵~~,这个可以看看2410的PDF,这是关于SDRAM的。
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值