Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2112733
  • 博文数量: 438
  • 博客积分: 3871
  • 博客等级: 中校
  • 技术积分: 6075
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-10 00:11
个人简介

邮箱: wangcong02345@163.com

文章分类

全部博文(438)

文章存档

2017年(15)

2016年(119)

2015年(91)

2014年(62)

2013年(56)

2012年(79)

2011年(16)

分类: LINUX

2013-09-23 11:53:20

下面是一些经常用到的打印方法.
一. 调用write写到终端
下面是一个helloworld程序,程序运行输出hello.
hello.S
  1. .text
  2. .global main
  3. main:
  4.     push {r0,r1,r2,lr}   @压栈,保存寄存器
  5.     mov r0, #1           @输出到终端,fd=1
  6.     adr r1, hello        @字符串地址
  7.     mov r2, #7           @字符串长度
  8.     bl write             @调用write
  9.     pop {r0,r1,r2,pc}    @压栈,恢复寄存器
  10. hello:
  11.     .asciz "hello \n"
Makefile
  1. all:hello
  2. hello:hello.S
  3.     arm-none-linux-gnueabi-gcc -o $@ $<
  4. clean:
  5.     rm -rf hello hello.o
注意:
    这个Makefile用的是gcc,没有用as与ld分开来写,这样比较简洁,测试程序嘛.


执行结果如下:
  1. root@OK6410:/driver/asm# ./hello
  2. hello
二. 调用printf写到终端
与write很类似,
  1. .text
  2. .global main
  3. main:
  4.     push {r0,r1,r2,lr} @push
  5.     mov r1, #3
  6.     adr r0, hello
  7.     bl printf
  8.     pop {r0,r1,r2,pc}
  9. hello:
  10.     .asciz "hello %d \n"


阅读(1858) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~