area init,code,readonly
entry
code32
mov r0,#12
mov r1,#23
ldr r5,=doAdd+1
blx r5
mov r4,r0
b .
code16
doAdd
add r0,r0,r1
bx lr
end
ldr r5,=doAdd+1 ;这里的doAdd+1是什么意思?
blx r5 ;这句什么意思
b .
code16 ;这两句呢?
bx lr ;这句呢?
看书也真的看不懂啊,真的晕死咯·~~~~!
ldr r5,=doAdd+1 ;这里的doAdd+1是什么意思?//将doAdd+1的地址存放到r5
blx r5 ;这句什么意思//相对跳转
b .
code16 ;这两句呢?//16位指令
bx lr ;这句呢?//跳转到lr
area init,code,readonly //代码段的开始 段名为init,代码段,只读
entry //入口
code32 //ARM指令
mov r0,#12 //r0=12
mov r1,#23 //r1=23
ldr r5,=doAdd+1 //取thumb指令的地址放到R5中
blx r5 //跳转到Thumb指令doAdd处
mov r4,r0 //r4=r0
b .
code16 //thumb指令开始
doAdd //程序标号
add r0,r0,r1 r0=r0+r1
bx lr // 跳转到ARM指令
end //结束
推荐看一下杜春雷的 ARM体系结构与编程 相信你会对ARM汇编指令有一个深入的理解
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息