下面是一些经常用到的打印方法.
一. 调用write写到终端
下面是一个helloworld程序,程序运行输出hello.
hello.S
-
.text
-
.global main
-
main:
-
push {r0,r1,r2,lr} @压栈,保存寄存器
-
mov r0, #1 @输出到终端,fd=1
-
adr r1, hello @字符串地址
-
mov r2, #7 @字符串长度
-
bl write @调用write
-
pop {r0,r1,r2,pc} @压栈,恢复寄存器
-
hello:
-
.asciz "hello \n"
Makefile
-
all:hello
-
hello:hello.S
-
arm-none-linux-gnueabi-gcc -o $@ $<
-
clean:
-
rm -rf hello hello.o
注意:
这个Makefile用的是gcc,没有用as与ld分开来写,这样比较简洁,测试程序嘛.
执行结果如下:
-
root@OK6410:/driver/asm# ./hello
-
hello
二. 调用printf写到终端
与write很类似,
-
.text
-
.global main
-
main:
-
push {r0,r1,r2,lr} @push
-
mov r1, #3
-
adr r0, hello
-
bl printf
-
pop {r0,r1,r2,pc}
-
hello:
-
.asciz "hello %d \n"
阅读(1902) | 评论(0) | 转发(0) |