Chinaunix首页 | 论坛 | 博客
  • 博客访问: 863138
  • 博文数量: 581
  • 博客积分: 7803
  • 博客等级: 少将
  • 技术积分: 3653
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-27 08:21
文章分类

全部博文(581)

文章存档

2013年(7)

2012年(414)

2011年(159)

2009年(1)

分类: LINUX

2009-06-15 22:23:57

1.Hello World
PowerPC体系是由Freescale(以前的Motorola),IBM和Apple共同合作的结晶。在这里就不叙述它的历史了,直接看看经典的Hello World。
 
引用了(http://www.ibm.com/developerworks/cn/linux/hardware/ppc/assembly/index.html)"PowerPC汇编-PowerPC汇编简介,Hollis Blanchard"

.data #数据段
msg:
    .string "Hello, world!\n"
    len = . - msg #字符串的长度

.text #代码段
    .global _start
_start:
    li   0,4            # 系统调用号 (sys_write)
    li   3,1            # 第一个参数: 文件描述符 (stdout)
                        # 第二个参数: 指向字符串的指针
    lis  4,msg@ha       # 加载&msg的低16位
    addi 4,4,msg@l      # 加载&msg的高16位
    li   5,len          # 第三个参数: 字符串长度
    sc                  # 执行系统调用

    li   0,1            # 系统调用号 (sys_exit)
    li   3,1            # 第一个参数: 返回值
    sc                  # 执行系统调用


2
.读TB
VEA中定义了Time Base(TB),一个64位寄存器,由两个32位寄存器-TBU和TBL组成,对于user-level App来说,TB寄存器是只读的,每次递增1(加1到TBL上),TB的频率是与实现独立的。

unsigned long long get_tb(void)
{
    unsigned long long tb;
    __asm__ __volatile(
    "loop:              \
         mftbu %0;      \
         mftb  %0+1;    \
         mftbu 5;       \
         cmpw  5,%0;    \
         bne   loop;"

    : "=r"(tb)
    :
    : "memory", "r5");

    return tb;
}


阅读(1872) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:ext234 on-disk layout

给主人留下些什么吧!~~