1. 程式人生 > >GNU風格 ARM彙編語法指南(非常詳細)1

GNU風格 ARM彙編語法指南(非常詳細)1

彙編源程式一般用於系統最基本的初始化:初始化堆疊指標、設定頁表、操作 ARM的協處理器等。這些初始化工作完成後就可以跳轉到C程式碼main函式中執行。

1、  GNU組合語言語句格式

    任何Linux彙編行都是如下結構:[<label>:][<instruction or directive or pseudo-instruction>} @comment

l         instruction為指令

l         directive為偽操作

l         pseudo-instruction為偽指令

l         <label>:

標號, GNU彙編中,任何以冒號結尾的識別符號都被認為是一個標號而不一定非要在一行的開始

l         comment為語句的註釋

下面定義一個"add"的函式,最終返回兩個引數的和:

.section .text, “x”

.global add      @ give the symbol “add” external linkage

add:

    ADD r0, r0, r1 @ add input arguments

    MOV pc, lr   @ return from subroutine

@ end of program

注意:

l          ARM指令,偽指令,偽操作,暫存器名可以全部為大寫字母,也可全部為小寫字母,但不可大小寫混用

l          如果語句太長,可以將一條語句分幾行來書寫,在行末用“\”表示換行(即下一行與本行為同一語句)。“\”後不能有任何字元,包含空格和製表符(Tab)。