將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」
ARM的ADS彙編器與GCC彙編器
arm的ads彙編器與gcc彙編器 2009 10 14 10 06 彙編器與指令集,不同的cpu對應不同的指令集 不同的彙編器對應不同的語法和偽指令集。每種彙編器都可以有自己的偽指令集和自己的語法,但實際上,由於事實標準的原因,所有的cpu廠商會提供指令使用手冊,手冊中的指令書寫樣式,實際上就是事...
實現乙個彙編器
上文 彙編器原始碼剖析 中,我們對一彙編器進行了原始碼剖析,這裡我們仿照其實現乙個自己版本的彙編器,90 的東西都是借鑑於上文中的原始碼。實現乙個彙編器,首先需要定義乙個彙編指令集,這裡我們還是沿用上文中的彙編指令集。彙編指令與指令之間是一一對應的關係,也就是說是直譯的過程。我們的指令集是列舉型別,...
GNU彙編器 irp和 macro
最近從u boot中摘了一段 出來 源於kernel 這段 作用是用軟體 彙編 實現除法和取模運算,因為有些老的cpu是沒有相關的硬體指令的。在編譯的時候,彙編器報了一些錯誤,這些錯誤都是同一型別,這裡僅列出其中的乙個 error bad instruction reteq lr 錯誤本身還是比較好...