天嵌 ARM开发社区

 找回密码
 注册
查看: 2812|回复: 3

ARM 汇编语言中地址问题

[复制链接]
扫帚菜~~ 发表于 2012-10-24 22:33:33 | 显示全部楼层 |阅读模式
本帖最后由 扫帚菜~~ 于 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,[r0]


..........


bl        InitStacks

;===========================================================
        
        ldr        r0, =BWSCON
        ldr        r0, [r0]
        ands        r0, r0, #6                ;OM[1:0] != 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编程给程序又是分配这个加载域又是分配那个地址的,我很想搞明白这些东西,在此先谢过了。

亚瑟王 发表于 2012-10-27 10:04:55 | 显示全部楼层
ResetEntry就是程序运行的第一行代码所在的位置,0x0这个地址。
ResetHandler的地址就是前面的b xxx运行完之后的地址。
至于相对地址和绝对地址的概念:绝对地址就是在任何时候都能够通过他放到到对应地址的数据;相对地址就是它是相对于绝对地址的一个地址值,在特定条件下能够访问对应地址的数据。
 楼主| 扫帚菜~~ 发表于 2013-3-26 12:30:45 | 显示全部楼层
亚瑟王 发表于 2012-10-27 10:04
ResetEntry就是程序运行的第一行代码所在的位置,0x0这个地址。
ResetHandler的地址就是前面的b xxx运行完 ...

麻烦给我看一下这个问题,谢谢http://www.armbbs.net/forum.php?mod=viewthread&tid=15587.
亚瑟王 发表于 2013-3-26 14:36:16 | 显示全部楼层
扫帚菜~~ 发表于 2013-3-26 12:30
麻烦给我看一下这个问题,谢谢http://www.armbbs.net/forum.php?mod=viewthread&tid=15587.

那个帖子已经回复了。如果本帖子如果问题已经解决了,请将帖子类型修改为”已解决“(请参考:http://www.armbbs.net/forum.php?mod=viewthread&tid=15200)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-29 15:35 , Processed in 1.031244 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表