基于Android的ARM匯編語言系列之三:ARM匯編語言程序結(jié)構(gòu)
之一:ARM匯編語言開篇
之二:C/C++程序生成ARM匯編程序的過程分析
之三:ARM匯編語言程序結(jié)構(gòu)
之四:ARM處理器的尋址方式
之五:ARM指令集與Thumb指令集
之六:NEON指令集與VFP指令集
Android平臺的ARM匯編是GNU ARM匯編格式,使用的匯編器是GAS(GNU Assembler),GAS有自己的一套語法結(jié)構(gòu)。詳細(xì)的內(nèi)容可以查閱GAS語法結(jié)構(gòu)官方手冊。
我們先來看一個完整的ARM匯編程序:
C代碼:
#includeint main(int argc, char* argv[]){printf("Hello ARM!n");return 0;}
對應(yīng)的匯編代碼:
.arch armv5te.fpu softvfp.eabi_attribute 20, 1.eabi_attribute 21, 1.eabi_attribute 23, 3.eabi_attribute 24, 1.eabi_attribute 25, 1.eabi_attribute 26, 2.eabi_attribute 30, 6.eabi_attribute 18, 4.file "hello.c".section .rodata.align 2.LC0:.ascii "Hello ARM!