生成ARM彙編

2022-07-31 14:18:17 字數 3727 閱讀 7083

使用ndk即可生成arm彙編

1.首先寫好hello.c

2.編寫makefile

#ndk根目錄ndk_root=e:\android\android

-ndk

-r10b

#編譯器根目錄

toolchains_root=$

(ndk_root

)/toolchains

/arm

-linux

-androideabi

-4.6

/prebuilt

/windows

-x86_64

#編譯器目錄

toolchains_prefix=$

(toolchains_root

)/bin

/arm

-linux

-androideabi

#標頭檔案搜尋路徑

toolchains_include=$

(toolchains_root

)/lib

/gcc

/arm

-linux

-androideabi

/4.6

/include

-fixed

#sdk根目錄

platfrom_root=$

(ndk_root

)/platforms

/android-14

/arch

-arm

#sdk標頭檔案搜尋路徑

platfrom_include=$

(platfrom_root

)/usr

/include

#sdk庫檔案搜尋路徑

platfrom_lib=$

(platfrom_root

)/usr

/lib

#檔名稱

modale_name

=hello

#刪除

rm

=del

#編譯選項

flags

=-i$

(toolchains_include

)\-i$

(platfrom_include

)\-l$

(platfrom_lib

)\

-nostdlib \

-lgcc \

-bdynamic

\

-lc#所有obj檔案

objs=$

(modale_name

).o \

$

(platfrom_lib

)/crtbegin_dynamic

.o \

$

(platfrom_lib

)/crtend_android

.o#編譯器鏈結

all

:$

(toolchains_prefix

)-gcc $

(flags)-

c $(

modale_name

).s

-o $

(modale_name

).o$

(toolchains_prefix

)-gcc $

(flags)$

(objs)-

o $(

modale_name

)old

:$

(toolchains_prefix

)-gcc $

(flags)-

e $(

modale_name

).c

-o $

(modale_name

).i$

(toolchains_prefix

)-gcc $

(flags)-

s $(

modale_name

).i

-marm

-o $

(modale_name

).s$

(toolchains_prefix

)-gcc $

(flags)-

c $(

modale_name

).s

-o $

(modale_name

).o$

(toolchains_prefix

)-gcc $

(flags)$

(objs)-

o $(

modale_name

)#刪除所有.o檔案

clean

:$(rm

)*.o

#安裝程式到手機

install

:adb push $

(modale_name)/

data

/local

/tmp

adb shell chmod

755/

data

/local

/tmp/$

(modale_name

)adb shell

/data

/local

/tmp/$

(modale_name

)#執行程式

run

:adb shell

/data

/local

/tmp/$

(modale_name

)

make old即可通過c來生成彙編檔案

make即可編譯arm彙編

using as--the gnu assembler 乙份gnu arm彙編的文件

來自為知筆記(wiz)

ARM彙編和內嵌彙編

彙編指令 跳轉指令 b bl blxbx 資料處理指令 mov mvnadd adcsub rsbrsc andor eorbic cmncmp tstteq 狀態暫存器指令 mrs msrldr strldm stmmcr arm和協處理器之間資料交換 mrccond 可選的條件 rd 存放返回狀...

arm彙編相關

cmp rn rm operand tst logical and ldr用法 摘自arm嵌入式系統開發一書 資料 基址暫存器 示例 mem base offset 基址暫存器加上偏移 ldr r0,r1,offset mem base offset 不變 ldr r0,r1,offset mem ...

arm 彙編學習

一 暫存器和定址 arm有16個暫存器,r0 r15 pc r15 lr r14 sp r13 ip r12 push sp減少,pop sp增加 1.定址方式 從操作位址尋找運算元的方式 2.arm的定址方式 a 暫存器定址,運算元在暫存器中 b 立即定址,運算元就在指令中 subs r0,r0,...