1. 编译运行环境见
http://www.cnblogs.com/linucos/archive/2013/03/01/2938517.htm
2. 汇编例子
.data msg: .asciz "hello, world\n" .text .global main main: push {r0,r1,r2,lr} ldr r1, =msg @ address mov r0, #1 @ stdout mov r2, #13 @ length swi #0x900004 @ sys_write pop {r0,r1,r2,pc}
3. 编译运行
arm-linux-gnueabi-gcc asmhello.s -o asmhello
qemu上运行./asmhello 即可
4. C例子
#include <stdio.h> int main(void) { fprintf(stderr, "%s\n", __FILE__); return 0; }
5. 编译运行
arm-linux-gnueabi-gcc hello.c -o hello
6. C例子反汇编
arm-linux-gnueabi-objdump -d hello > hello.dis
发现:main函数返回用 pop {r7,pc}实际对应的是push {r7,lr}
转载于:https://www.cnblogs.com/linucos/archive/2013/03/16/2963311.html
