梁大洪 发表于 2020-3-25 21:01:48

请高手指导下面的LDR指令为何出错

各位大侠:      本人在arm汇编中有这么一条指令
      ldrr5, ict_base                   其中ict_baseQUE0xfff00400
      在ADS软件调试时,能看到r5=0xfff00400, 可是对生成的bin文件作为boot rom仿真时,执行到这一条指令r5=0x00000000,为什么?
      另如果采用mov指令给r5赋值为 0xfff00400,则r5= 0xfff00400   ADS中不能直接赋值,要采用以下步骤:
      mov r5, 0x000000ff    lsl 24         movr6,0x0000000flsl 20      orr r5, r5, r6
      movr6, 0x00000040, lsl 4          orr r5, r5, r6
      这么作,太麻烦。请高手指点一下   为什么会出现以上问题。   谢谢

HSL 发表于 2020-3-25 21:01:56

1# walliamaa
上面没写好,具体汇编程序如下
ict_baseQUE0xfff00400
    ldrr5, =ict_base   
      在ADS软件调试时,能看到r5=0xfff00400, 可是对生成的bin文件作为boot rom仿真时,执行到这一条指令r5=0x00000000,为什么?
      另如果采用mov指令给r5赋值为 0xfff00400,则r5= 0xfff00400   ADS中不能直接赋值,要采用以下步骤:
      movr5, 0x000000ff      
      mov r5, r5,lsl 24      
      movr6,0x0000000f      
      mov r6, r6,lsl 20      
      orr r5, r5, r6
      movr6, 0x00000040      
      mov r6, r6,lsl 4         
      orr r5, r5, r6
页: [1]
查看完整版本: 请高手指导下面的LDR指令为何出错