实例1中对于寄存器R0的使用没有特别的强调,但是考虑到arm汇编中R0的重要性,这里再通过一个hello world修改后的实例来进一步说明:

实例中把一个“hello world\n”字符串分三个printf函数调用进行打印输出,armcc生成的.o文件使用IDA打开后的结果如图一:

从图中可以看出printf函数的传入参数都是通过R0来完成的,而main函数的返回值0,也是通过给R0赋值来完成的,在arm的汇编中R0起到一个非常特殊的作用,在反编译过程中通过R0可以了解到我们一些需要的信息,简单的注释如图二:

值得一提的是,实例1中"hello world\n"为一个字符串使用一个符号地址来表示,而此例中则是通过三个地址符号来表示的。