ARM彙編器與GCC彙編器支持的彙編語言差別

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

 

1、[註釋]

 

;  =>  /* */ 或者 //

 

2、[僞操作符替換]

 

JUMPADDR  =>  JUMPADDR:   -- 符號定義加:號

 

INCLUDE  =>  .INCLUDE

 

EQU  =>  .equ

 

TCLK2  EQU  PB25 =>  .equ  TCLK2, PB25

 

TCLK2  EQU  PB25 =>  .equ  TCLK2, PB25

 

DCD  =>  .long .word

 

IF :DEF:  =>   #if defined(MACRO_SAMPLE)

 

ELSE =>  #else

 

ENDIF =>  #endif

 

:OR: =>  |

 

:SHL:  =>  <<

 

Entry  =>  Entry:

 

END  =>  .end

 

AREA Word, CODE, READONLY =>  .text

 

AREA Block, DATA, READWRITE =>  .data

 

CODE32  =>  .arm

 

CODE16  =>  .thumb

 

LTORG  =>  .ltorg

 

%  =>  .fill

 

MACRO  =>  .macro

 

MEND =>  .endm

 

EXPORT =>  .global

 

IMPORT =>  .extern

 

GBLL GBLA =>  .global

 

SETL SETA  =>  #define 或者.equ

 

EQU  =>  #define

 

GET option.a  =>  #include "option.a"

 

??  =>  .align

 

3、[操作數及運算符號替換]

 

ldr pc, [pc, #&18]  替換成   ldr pc, [pc, #+0x18] 

 

“&”  =>  “+0x”

 

ldr pc, [pc, #-&20]  替換成   ldr pc, [pc, #-0x20]

 

“-&”  =>  “-0x”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章