第1节 堆栈的实现
推荐给好友
打印
加入收藏
更新于2008-05-17 22:26:34

堆栈的实现

约定:

•专门将一个寄存器(R29)用于堆栈指针(SP)。

•执行PUSH操作时,指针上移(向较高地址方向移动)。

•SP指向第一个未使用的存储单元;低于SP的存储单元均已分配(受保护)。

•规则:可以在任何时间使用堆栈;创建以后,该存储空间就不能另作他用。

•在我们的程序及其数据之外保留一块存储器空间。

我们只是使用软件约定来实现我们的堆栈(许多体系结构采用硬件来实现)。

堆栈管理宏

PUSH(RX):将Reg[x]压入到堆栈中。Reg[SP] = Reg[SP] + 4;Mem[Reg[SP]-4] = Reg[x]

 

POP(RX):弹出栈顶的值,并且存放到Reg[x]中。Reg[x] = Mem[Reg[SP]-4]Reg[SP] = Reg[SP] -4;

 

ALLOCATE(k):保留k个字的堆栈空间。Reg[SP] = Reg[SP] + 4*k

 

DEALLOCATE(k):释放k个字的堆栈空间。Reg[SP] = Reg[SP] -4*k

<<上一节   下一节 >>




 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.