找回密码
 注册
搜索
查看: 605|回复: 1

[讨论] 关于使用ldr指令和adr指令的疑问!?急求!

[复制链接]
发表于 2007-5-4 21:06:24 | 显示全部楼层 |阅读模式
我在学习arm汇编的时候感觉很奇怪,为什么使用ldr指令取得的程序段语句标号的值和使用adr指令的值是不一样的?!
使用ldr始终不能取得正确的地址值!!!这是为什么?

源代码如下
N    equ    10

    area    example,code,readonly
    entry
    code32

START    ldr        sp,        =0x40003f00
此处--〉 ldr        r3,        =FUN
         mov        r0,        #N
         mov        r1,        r0
         add        r3,        r3,        #1
         stmfd    sp!,    {r1-r12,lr}
         bx        r3
STOP    ldmfd    sp!,    {r1-r12,lr}
          b        START
            
        
        
         code16
FUN       cmp        r0,        #0
          beq        RET
LOOP      sub        r1,        r1,        #1
          add        r0,        r1,        r0
          cmp        r1,        #0
          bne        LOOP
RET       ldr        r3,        =STOP
          ldr        r2,        =0x01
          bic        r3,        r2
          bx        r3
          end
发表于 2007-5-21 11:15:33 | 显示全部楼层
ldr和adr的可加载地址范围是不是不一样啊!后者加载的地址需要在当前指令附近的范围内,前者则大一些!个人的理解,很可能不对,同问!
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-10-7 02:20 , Processed in 0.045866 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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