求解ARM汇编DCD的使用
initmemldrr0,=0x48000000ldrr1,=0x48000034adrr2,memdatainitmemloopldrr3,[r2],#4strr3,[...
initmem
ldr r0, =0x48000000
ldr r1, =0x48000034
adr r2, memdata
initmemloop
ldr r3, [r2], #4
str r3, [r0], #4
teq r0, r1
bne initmemloop ;
mov pc,lr
memdata
DCD 0x22000000 ;BWSCON
DCD 0x00000700 ;BANKCON0
DCD 0x00000700 ;BANKCON1
DCD 0x00000700 ;BANKCON2
DCD 0x00000700 ;BANKCON3
DCD 0x00000700 ;BANKCON4
DCD 0x00000700 ;BANKCON5
DCD 0x00018005 ;BANKCON6
DCD 0x00018005 ;BANKCON7
DCD 0x008e07a3 ;REFRESH
DCD 0x000000b1 ;BANKSIZE
DCD 0x00000030 ;MRSRB6
DCD 0x00000030 ;MRSRB7
END
其中:ldr r3, [r2], #4不是很明白,这里意思是不是偏移4位就到下一个DCD的初始化,那我不明白为什么偏移4位就是下一个DCD的初始化,DCD与DCD之间好像没有说明是4位的。str r3, [r0], #4我却明白,求解说 展开
ldr r0, =0x48000000
ldr r1, =0x48000034
adr r2, memdata
initmemloop
ldr r3, [r2], #4
str r3, [r0], #4
teq r0, r1
bne initmemloop ;
mov pc,lr
memdata
DCD 0x22000000 ;BWSCON
DCD 0x00000700 ;BANKCON0
DCD 0x00000700 ;BANKCON1
DCD 0x00000700 ;BANKCON2
DCD 0x00000700 ;BANKCON3
DCD 0x00000700 ;BANKCON4
DCD 0x00000700 ;BANKCON5
DCD 0x00018005 ;BANKCON6
DCD 0x00018005 ;BANKCON7
DCD 0x008e07a3 ;REFRESH
DCD 0x000000b1 ;BANKSIZE
DCD 0x00000030 ;MRSRB6
DCD 0x00000030 ;MRSRB7
END
其中:ldr r3, [r2], #4不是很明白,这里意思是不是偏移4位就到下一个DCD的初始化,那我不明白为什么偏移4位就是下一个DCD的初始化,DCD与DCD之间好像没有说明是4位的。str r3, [r0], #4我却明白,求解说 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询