新增個手寫GNU語法arm的方法,之後能夠狂逆狂寫linux
hello.S文件android
.data msg: .ascii "Hello, ARM!\n" len = . - msg .text .globl _start _start: /* syscall write(int fd, const void *buf, size_t count) */ mov %r0, $1 /* fd -> stdout */ ldr %r1, =msg /* buf -> msg */ ldr %r2, =len /* count -> len(msg) */ mov %r7, $4 /* write is syscall #4 */ swi $0 /* invoke syscall */ /* syscall exit(int status) */ mov %r0, $0 /* status -> 0 */ mov %r7, $1 /* exit is syscall #1 */ swi $0 /* invoke syscall */
記得最後加個空格或者回車,否則會報hello.S:21: Warning: partial line at end of file ignoredide
arm-linux-androideabi-as -o hello.o hello.S
arm-linux-androideabi-ld -s -o hello hello.opost
也是個學習ARM彙編的方法
參考:
http://peterdn.com/post/e28098Hello-World!e28099-in-ARM-assembly.aspx
http://www.amccormack.net/getting-started-arm-assembly-for-android/學習