共2条
1/1 1 跳转至页
IAR,10 IAR 2.10版本的编译器对汇编编译产生头代码的问题

问
?cstart_begin:
00E000 31400003 mov.w #0x300,SP
?cstart_call_main:
00E004 B01212E0 call #RESET
00E008 B0129CE9 call #exit
_exit:
00E00C 304010E0 br #0xE010
?C_EXIT:
?cstart_end:
__exit:
00E010 FF3F jmp ?C_EXIT
RESET MOV #300H,SP
RESET:
main:
00E012 31400003 mov.w #0x300,SP
可以看出CODE开始处被加入了一定量的代码,而这些代码没有实际作用。不仅浪费空间而且在某些应用中,如果此部分空间用作数据区,会造成意想不到的问题。
另外编译器加入上述代码后,对直接地址的指令操作,会产生寻址位置的偏移。
这是BUG吗?画蛇添足,看起来更象恶意的代码!不知有何办法解决?
使代码正常从CODE处开始。
00E000 31400003 mov.w #0x300,SP
?cstart_call_main:
00E004 B01212E0 call #RESET
00E008 B0129CE9 call #exit
_exit:
00E00C 304010E0 br #0xE010
?C_EXIT:
?cstart_end:
__exit:
00E010 FF3F jmp ?C_EXIT
RESET MOV #300H,SP
RESET:
main:
00E012 31400003 mov.w #0x300,SP
可以看出CODE开始处被加入了一定量的代码,而这些代码没有实际作用。不仅浪费空间而且在某些应用中,如果此部分空间用作数据区,会造成意想不到的问题。
另外编译器加入上述代码后,对直接地址的指令操作,会产生寻址位置的偏移。
这是BUG吗?画蛇添足,看起来更象恶意的代码!不知有何办法解决?
使代码正常从CODE处开始。
共2条
1/1 1 跳转至页