免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2333 | 回复: 3
打印 上一主题 下一主题

---------------> 重新开一个,讨论这个汇编。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-09 11:23 |只看该作者 |倒序浏览
实在是很菜,问的问题很初级,见笑拉 :)


///////////////////////////////////////////////////////////////

main()
{
    int x =100 ;
}

////////////////////////////////////////////////////////////////

反汇编后:

00000000 <main> :

0:             lui         gp , 0x0               //  发现一个问题,为什么每个汇编都有 0,4 ,8 这3段代码 ?
                                      //  t9 此时里面是什么数据 ? 就直接与gp相加,是什么目的呢 ?

4:             addiu    gp , gp, 0           

8:             addu     gp , gp , t9

c:              addiu    sp , sp  , -24

10:           sw         s8  , 16(sp)          // $16-----$23 对应 s0-----s7 ,     那么 s8  是什么 ?

14:           move     s8 ,sp                  

18:            li           v0  ,100

1c:             sw        v0  ,8( s8 )            //  s8 是一个寄存器的话,它偏移8字节是什么意思 ?

20:           move       sp  ,s8               

24:           lw           s8  , 16(sp)

28:           jr             ra

2c:           addiu       sp  ,sp  ,24

[ 本帖最后由 xpdsq 于 2008-1-9 11:25 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-01-09 18:21 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2008-01-09 21:01 |只看该作者
MIPS体系结构提供了32个GPR(GENERAL PURPOSE REGISTER)。这32个寄存器的用法大致如下:

REGISTER NAME USAGE
$0 $zero 常量0(constant value 0)
$1 编译器保留
$2-$3 $v0-$v1 函数调用返回值(values for results and expression evaluation)
$4-$7 $a0-$a3 函数调用参数(arguments)

$8-$15 $t0-$t7 暂时的(或随便用的)
$16-$23 $s0-$s7 保存的(或如果用,需要SAVE/RESTORE的)(saved)
$24-$25 $t8-$t9 暂时的(或随便用的)
$28 $gp 全局指针(Global Pointer)
$29 $sp 堆栈指针(Stack Pointer)
$30 $fp 帧指针(Frame Pointer)
(BNN:fp is stale acutally, and can be simply used as $t
$31 $ra 返回地址(return address)

对一个CPU的寄存器约定的正确用法是非常重要的。当然对C语言开发者不需要关心,因为COMPILER会TAKE CARE。但对于KERNEL的开发或DRIVER开发的人就**必须**清楚。
一般来讲,你通过objdump -d可以清醒的看到寄存器的用法。

论坛徽章:
0
4 [报告]
发表于 2008-01-09 21:03 |只看该作者
有一本书将mips,还不错> see mips run
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP