arm彙編學習(五)

新增個手寫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/學習

相關文章
相關標籤/搜索