shuidiyu 发表于 2013-9-25 11:42:54

KEIL软件 编译汇编的问题(问题已解决)

本帖最后由 shuidiyu 于 2013-9-25 14:11 编辑

0x08002042 250F      MOVS          r5,#0x0F
0x08002044 E04C      B             0x080020E0
   158:                                                
y0= (u8*)(DMA_BUFFER)+80*2+1;   j=15

0x08002046 EB0500C5ADD         r0,r5,r5,LSL #3
0x0800204A EB001005ADD         r0,r0,r5,LSL #4
0x0800204E 492D      LDR         r1,; @0x08002104
0x08002050 EB011080ADD         r0,r1,r0,LSL #6
0x08002054 F10006A1ADD         r6,r0,#0xA1

DMA_SRAM[]地址改变,为什么汇编代码一点都不变呢!程序出错了再这个地方了。地址对应不上!

shuidiyu 发表于 2013-9-25 14:15:47

extern的问题,例如我在这个文件中定义的数组DMA_BUFFER,后来改成了DMA_BUFFER在main中用的时候要extern ,但main中extern int DMA_BUFFER没有更改,所以在main中使用的时候,编译器会按照当前文件编译数组大小,而不提醒冲突!以后要注意了!

shuidiyu 发表于 2013-9-25 13:36:58

keil编译器的问题吗?为什么地址变了,汇编代码一点都没有变,仿真的时候,选中等号右边是正确的值,选中等号左边是另一个值!
页: [1]
查看完整版本: KEIL软件 编译汇编的问题(问题已解决)