ARM汇编器与GCC汇编器支持的汇编语言差别
- 格式:doc
- 大小:39.00 KB
- 文档页数:5
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, READONL Y => .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”
宏及条件编译控制伪操作
将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”。