栈的四种方式
2013-10-30 14:54
211 查看
按栈指针指向有满(Full)/空(Empty),
满 SP指向最后一个压入的数据 ,即先修改sp到指向下一目标位置,再存入相应的值
如:push Rx
[sp] == Rx
空 SP指向下一个空的位置,即先存入相应的值,再修改sp到指向下一目标位置
如: push Rx
pop Rx
[sp] == Rx
根据压栈向栈指针的变量 增/减
增(Ascending) : mov R8,sp; push R8;
R8<sp
减(Descending):
R8>sp
如上得出,有四种类型的栈分别是
FA FD EA ED
ARM中STM LDM +四种类型名即为相应指令
STMFA/LDMFA
STMFD/LDMFD
STMEA/LDMEA
STMED/LDMED
X86 是FD栈
满 SP指向最后一个压入的数据 ,即先修改sp到指向下一目标位置,再存入相应的值
如:push Rx
[sp] == Rx
空 SP指向下一个空的位置,即先存入相应的值,再修改sp到指向下一目标位置
如: push Rx
pop Rx
[sp] == Rx
根据压栈向栈指针的变量 增/减
增(Ascending) : mov R8,sp; push R8;
R8<sp
减(Descending):
R8>sp
如上得出,有四种类型的栈分别是
FA FD EA ED
ARM中STM LDM +四种类型名即为相应指令
STMFA/LDMFA
STMFD/LDMFD
STMEA/LDMEA
STMED/LDMED
X86 是FD栈
相关文章推荐
- OCP-1Z0-052-V8.02-179题
- 快速排序【模板】
- asp.net mvc Partial OutputCache 在SpaceBuilder中的应用实践
- DevExpress第三方控件使用实例之ASPxPopupControl弹出子窗体
- “/”和“\”
- C语言交换a和b的值
- cocos2d-x总结(五)CCSprite精灵的加载与常用操作
- thinkphp在nginx环境下URL模式为1时配置文件
- jbpm4.4整合spring2.5
- const char*, char const*, char*const的区别
- 互联网广告的RTB革命
- socket接收数据不全解决方案
- Google Chrome开发者工具-移动仿真:设备取向和CSS媒体类型
- sharepoint无法到搜索人员
- C++ STL中迭代器失效的问题
- Selenium+TestNG+Jenkins 框架图形化UML表示
- Android中的传感器
- 输入一个整数,使用递归方法实现反向输出
- VC打开制定文件夹
- 为什么我的VS2008不报错