天天看點

ARM的ADS彙編器和GCC彙編器

一:ads下的一段彙程式設計式:

__main 

EXPORT BootReset 

BootReset 

               B resetvec_reqset 

               IMPORT  BootEntry 

               IMPORT  |Image$$RO$$Limit|

         AREA  BOOTROM, CODE, READONLY 

              LDR  r0, =|Image$$RO$$Limit| 

              BEQ  %1 

              ldr  pc, [pc,#-&F20]

轉換到gcc下的彙程式設計式為:

.global BootReset 

BootReset: 

            B resetvec_reqset 

           .extern  BootEntry 

           .extern  Image_RO_Limit 

#  AREA  BOOTROM, CODE, READONLY 

           LDR  r0, =Image_RO_Limit 

           BEQ  FUNC1 

           ldr  pc, [pc,#-0xF20]

二:将ARM SDT下的彙編碼移植到GCC for ARM編譯器時,經常要做如下修改:

1、注釋行以“@”或""代替“;”

2、僞操作符替換:

INCLUDE 替換成 .INCLUDE

TCLK2 EQU PB25 替換成 .equ TCLK2, PB25

EXPORT 替換成 .global

IMPORT 替換成 .extern

DCD 替換成 .long

IF :DEF: 替換成 .IFDEF

ELSE 替換成 .ELSE

ENDIF 替換成 .ENDIF

:OR: 替換成 |

:SHL: 替換成 <<

END 替換成 .end

繼續閱讀