生成ARM汇编
Posted Bingghost
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成ARM汇编相关的知识,希望对你有一定的参考价值。
使用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汇编的文档
以上是关于生成ARM汇编的主要内容,如果未能解决你的问题,请参考以下文章