ARM 汇编语言中地址问题
本帖最后由 扫帚菜~~ 于 2012-10-24 22:35 编辑最近在学、ARM的汇编,有很多问题想不明白比如以下几个
ARM 中什么是相对地址,什么是绝对地址?
启动代码中:
AREA Init,CODE,READONLY
ENTRY
ResetEntry ;在nandfalsh中和norflash中启动,此ResetHandler的地址分别是什么?
;怎么算的?
b ResetHandler
b HandlerUndef ;handler for Undefined mode
.
.
.
.
.
ResetHandler ; 在nandfalsh中和norflash中启动,此ResetHandler的地址分别是什么?
;怎么算的?
ldr r0,=WTCON ;watch dog disable
ldr r1,=0x0
str r1,
..........
bl InitStacks
;===========================================================
ldr r0, =BWSCON
ldr r0,
ands r0, r0, #6 ;OM != 0, NOR FLash boot
bne copy_proc_beg ;do not read nand flash
adr r0, ResetEntry ;这个ResetEntry的地址是什么 cmp r0, #0 ;if use Multi-ice,
bne copy_proc_beg ;do not read nand flash for boot
;nop
;===========================================================
nand_boot_beg
bl RdNF2SDRAM
ldr pc, =copy_proc_beg;
;===========================================================
copy_proc_beg
adr r0, ResetEntry ;;在nandfalsh中和norflash中启动,此时这个地址分别是什么?
ldr r2, BaseOfROM
cmp r0, r2
ldreq r0, TopOfROM
beq InitRam
ldr r3, TopOfROM
另外加载域和运行域是什么?是相对址还是绝对地址,有什么资料是讲解这些东西的吗?ADS1.2编程给程序又是分配这个加载域又是分配那个地址的,我很想搞明白这些东西,在此先谢过了。
ResetEntry就是程序运行的第一行代码所在的位置,0x0这个地址。
ResetHandler的地址就是前面的b xxx运行完之后的地址。
至于相对地址和绝对地址的概念:绝对地址就是在任何时候都能够通过他放到到对应地址的数据;相对地址就是它是相对于绝对地址的一个地址值,在特定条件下能够访问对应地址的数据。 亚瑟王 发表于 2012-10-27 10:04 static/image/common/back.gif
ResetEntry就是程序运行的第一行代码所在的位置,0x0这个地址。
ResetHandler的地址就是前面的b xxx运行完 ...
麻烦给我看一下这个问题,谢谢http://www.armbbs.net/forum.php?mod=viewthread&tid=15587. 扫帚菜~~ 发表于 2013-3-26 12:30 static/image/common/back.gif
麻烦给我看一下这个问题,谢谢http://www.armbbs.net/forum.php?mod=viewthread&tid=15587.
那个帖子已经回复了。如果本帖子如果问题已经解决了,请将帖子类型修改为”已解决“(请参考:http://www.armbbs.net/forum.php?mod=viewthread&tid=15200)。
页:
[1]