首先,我们构造一段简单的ARM汇编程序作为测试代码main.s。.globl _start_start:mov R0,#0swi0x00900001以上汇编指令完成了0号系统调用exit的调用。mov指令将系统调用号传入寄存器R0,然后使用0x00900001软中断陷入系统调用。为了运行ARM汇编代码,需要使用交叉编译器arm-linux-gcc对ARM汇编代码进行编译。下载交叉编译器安装完毕后,对ARM汇编代码进行编译。arm-linux-gcc main.s -o main -nostdlib编译选项“-nostdlib”表示不使用任何运行时库文件,编译生成的可执行文件main只能在ARM体系结构的系统上运行。
二、编译安装qemu模拟器
为了x86的Linux系统内运行ARM体系结构的可执行程序,需要安装qemu模拟器。首先下载qemu源码,然后保证系统已经安装了flex和bison。编译安装qemu。./configure --prefix=/usrsudo make && make install然后使用qemu的ARM模拟器执行ARM程序。qemu ./main
三、编译安装arm-gdb
为了调试ARM程序,需要使用gdb的源码编译生成arm-gdb。首先下载gdb源代码,编译安装。./configure --target=arm-linux --prefix=/usr/localsudo make && make install为了和系统的gdb避免冲突,我们将gdb的安装目录安装到/usr/local,然后建立软链接即可。ln -s /usr/bin/arm-gdb /usr/local/gdb/gdb之后便可以使用arm-gdb命令调试ARM程序了。