计算机组成原理(4.3) |
您所在的位置:网站首页 › 指令译码器电路 › 计算机组成原理(4.3) |
程序可访问的寄存器组是所有过程共享的资源,给定时刻只能被一个过程使用 ,因此过程中使用的寄存器的值不能被另一个过程覆盖!(主调过程使用的寄存器,被调过程要么不用,要么用完之后返回前把值还回去) MIPS的寄存器使用约定 保存寄存器$s0 ~$s7的值在从被调用过程返回后还要被用,被调用者需要保留临时寄存器$t0 ~$t9的值在从被调用过程返回后不需要被用(需要的话,由调用者保存) ,被调用者可以随意使用参数寄存器$a0~$a3在从被调用过程返回后不需要被用(需要的话,由调用者保存在栈帧或其他寄存器中),被调用者可以随意使用全局指针寄存器$gp的值不变帧指针寄存器$fp用栈指针寄存器$sp-4来初始化需在被调用过程Q中入栈保存的寄存器(称为被调用者保存) 返回地址$ra (如果Q又调用R,则$ra内容会被破坏,故需保存)保存寄存器$s0 ~$s7(Q返后P可能还会用到,Q中用的话就被破坏,故需保存)除了上述寄存器以外,所有局部数组和结构体等复杂类型变量也要入栈保存如果局部变量和临时变量发生寄存器溢出(寄存器不够分配),则也要入栈各处理器对栈帧规定的 ”调用者保存” 和 ”被调用者保存” 的寄存器可能不同 过程调用时MIPS中栈和栈帧的变化 过程调用协议 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |