將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
符號定義加":"號
area word, code, readonly --> .text
area block, data, readwrite --> .data
code32 --> .arm
code16 --> .thumb
ltorg --> .ltorg
% --> .fill
3、運算元及運算符號替換
ldr pc, [pc, #&18] 替換成 ldr
「&」以「 0x」號替換
注:arm的編譯器裡[|
]表示if ... else ... end
ARM SDT下彙編到GNU彙編的轉換
將arm sdt下的彙編碼移植到gcc for arm編譯器時,經常要做如下修改 1 注釋行以 或 代替 2 偽操作符替換 include 替換成 include tclk2 equ pb25 替換成 equ tclk2,pb25 export 替換成 global import 替換成 exter...
GNU內聯彙編
組合語言 gcc內聯彙編 gcc支援在c c 中嵌入彙編 這些 被稱作是 gcc inline asm gcc內聯彙編 一 基本內聯彙編 gcc中基本的內聯彙編非常易懂,格式如下 asm volatile instruction list 其中,1.asm 它是gcc定義的關鍵字asm的巨集定義 d...
GNU 內聯彙編
gnu的c編譯器使用asm關鍵字 asm段格式如下 asm assembly code 一些彙編器使用製表符字元縮排指令以便區分和標籤。gnu編譯器不需要這樣做,單為保持一致使用這樣方式。asm mov 1,eax n tmov 0,ebx n tint 0x80 這樣格式有些混亂,下面這樣方式書寫...