ARM核的行为取决于代码的文件格式,ELF和二进制文件格式对ARM处理器都有不同的影响。具体而言,如果使用了汇编器为ARM处理器编写了ELF格式的代码,那么ARM处理器将正常地进行解释和执行。然而,如果将同一个代码编译成二进制文件格式,ARM处理器可能会出现异常,因为二进制文件格式不包含任何头信息和符号表。
以下是一个使用汇编器编写的ELF文件格式的示例代码:
.global _start
_start:
MOV R0, #5
MOV R1, #10
ADD R2, R0, R1
MOV R7, #1
SWI 0
使用以下命令将此代码编译为ELF格式文件:
$ arm-linux-gnueabi-as -o example.elf example.s
编译为ELF格式的代码可以直接在ARM处理器上执行。
以下是一个使用gcc编译器编译的示例代码,它将生成一个二进制文件格式:
#include
int main()
{
printf("Hello World!\n");
return 0;
}
使用以下命令将此代码编译为二进制文件格式:
$ arm-linux-gnueabi-gcc -o example example.c
这个二进制文件格式代码可能会出现异常,因为二进制文件格式不包含任何头信息和符号表。