ARM局部标号的跳转问题

kissmyarse 2013-11-14 11:23:42
添加RW数据初始化程序断后,完整的程序代码如下:
;正文段=========================================================================
AREA EXP6_1,CODE,READONLY
ENTRY
ARM
;数据区初始化代码段---------------------------------------------------------------
IMPORT|Image$$RO$$Limit|
IMPORT|Image$$RW$$Base|
IMPORT|Image$$ZI$$Base|
IMPORT|Image$$ZI$$Limit|
LDR RO,=|Image$$RO$$Limit| ;初始化数据首地址送RO
LDR R1,=|Image$$RW$$Base| ;RW区首地址送R1
LDR R3,=|Image$$ZI$$Base| ;ZI区首地址送R3

CMP RO,R1
BEQ %F1
0
CMP R1,R3
LDRCC R2,[R0],#4
STRCC R2,[R1],#4
BCC %B0
1
LDR R1,=|Image$$ZI$$Limit|
MOV R2,#0
2
CMP R3,R1
STRCC R2,[R3],#4
BCC %B2
;用户逻辑代码段---------------------------------------------------------------
LDR R0,=DATA1
LDR R1,[R0]
LDR R3,=0x55555555
HALT
B HALT
;静态数据区===================================================================
AREA EXP6_1DT,DATA,READWRITE
DATA1 DCD 0x88888888
DCD 0x99999999
END


问题:
程序运行到
CMP R0,R1
BEQ %F1
后如果R0=R1,跳转到局部标号1的段落后,执行完
LDR R1,=|Image$$ZI$$Limit|
MOV R2,#0
后,
是顺序执行标号2的语句
CMP R3,R1
STRCC R2,[R3],#4
BCC %B2
还是直接跳到 用户逻辑代码段
执行
LDR R0,=DATA1
LDR R1,[R0]
LDR R3,=0x55555555
HALT
B HALT
还有:
LDRCC R2,[R0],#4
STRCC R2,[R1],#4
是实现什么工能的
请高人指点!


...全文
103 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧