Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

ARM ADS 與 GNU Asm 語法轉換對照表

編輯:Linux 教學

將 ARM ADS (ARM Developer Suite) 組合語言原始碼移植至 GCC (GNU As) 時的關鍵語法差異對照表,涵蓋註解、包含檔案、符號定義、條件組裝、區段宣告、巨集、導出導入等 9 類規則。

轉換規則對照

ADS 語法GNU As 語法範例/說明
註解@ 或 /* ... */; comment → @ comment 或 /* comment */
包含檔案.include "file"GET option.a / INCLUDE option.a → .include "option.a"
符號等值.equEQU, SETA, SETL → .equ SYM, VALUE
TCLK2 EQU PB25 → .equ TCLK2, PB25
BUSWIDTH SETA 16 → .equ BUSWIDTH, 16
導出/導入.global / .externEXPORT → .global、IMPORT → .extern
GBLL, GBLA → .global
資料定義.longDCD → .long
條件組裝.ifdef/.else/.endifIF :DEF: → .ifdef、ELSE → .else、ENDIF → .endif
:OR: → |、:SHL: → <<
程式結束.endEND → .end
注意:被 .include 的檔案**不可**有 .end,否則主程式會提前結束
標號定義標號後加冒號Entry → Entry:
AREA Word, CODE, READONLY → .text
AREA Block, DATA, READWRITE → .data
CODE32 → .arm
CODE16 → .thumb
巨集.macro/.endmMACRO → .macro、MEND → .endm

區段指令對照


ADS                    GNU As
AREA name, CODE, READONLY   →   .section .text (或 .text)
AREA name, DATA, READWRITE  →   .section .data (或 .data)
AREA name, DATA, READONLY   →   .section .rodata

常見陷阱

  • GNU As 區分大小寫,ADS 不區分;移植時統一大小寫。
  • GNU As 立即數預設十進制,加 0x 表十六進制,ADS 可用 & 或 0x。
  • 條件組裝運算子不同::OR:→|、:AND:→&、:SHL:→<<、:SHR:→>>。
  • .include 檔案中**絕不可**出現 .end。
Copyright © Windows教程網 All Rights Reserved