注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Code@Pig Home

喜欢背着一袋Code傻笑的Pig .. 忧美.欢笑.记忆.忘却 .之. 角落

 
 
 

日志

 
 

[mips] Simple Architecture  

2010-09-18 09:15:22|  分类: 魅族_龙芯 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
mips构架的简化版,其中 Register File 就是一堆 registers。
5-bit Rs, Rt,用来指定使用 Register File 中的哪个 register。因为只有 32 个 registers,所以 5-bit 足已。
[mips] Simple Architecture - kasicass - Code@Pig Home

Register File 都有哪些呢?自然,不同的 register 功用不同。习惯性用法:
$t0 - $t7, caller-saved register, f() { $t0 = 2; g(); $t0 = $t0 + 2; },f() 在调用 g() 之后,还需要使用 $t,则需要在调用 g() 之前将 $t0 的值保存到 stack 中,因为 g() 有可能用到 $t0 且不会为其恢复值。
$s0 - $s7, callee-saved register, f() { $s0 = 2; g(); $s0 = $s0 + 2; },同理,这次 f() 调用 g() 之前,不需要保存 $s0 的值,因为 g() 要负责恢复 $s0。
caller-saved, callee-saved 并存两种用法,主要是为了给 compiler 做程序优化的。
$a0 - $a3, used to pass arguments to functions
$v0 - $v1, used to return values from functions
[mips] Simple Architecture - kasicass - Code@Pig Home
 
相比 x86,mips is goddam simple.
  评论这张
 
阅读(665)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017