將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”