linux下如何定义堆栈

leetow2003 2012-11-24 06:17:22
在masm下可以定义,可是在linux下如何定义堆栈?
...全文
100 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
HMGuardian 2012-11-25
  • 打赏
  • 举报
回复
引用 2 楼 leetow2003 的回复:
因为在使用masm编译器的环境中,可以使用assume定义堆栈,可是在 linux下的as环境中,没有发现定义堆栈,只有数据段、文本段等, 所以想问问在linux下是否可以定义堆栈?
如果是运行在操作系统上的代码,操作系统创建任务时会为其准备堆栈。 如果是裸机程序,那可以在程序中保留一段内存,然后根据栈的增长方向把首地址或尾地址直接写入到sp寄存器就可以了!不过这样做要注意栈的平衡,不然可能溢出而影响程序的执行。 如何保留一段内存,看自己了!给你个方法,可以定义一个指定大小的数据段。
leetow2003 2012-11-25
  • 打赏
  • 举报
回复
因为在使用masm编译器的环境中,可以使用assume定义堆栈,可是在 linux下的as环境中,没有发现定义堆栈,只有数据段、文本段等, 所以想问问在linux下是否可以定义堆栈?
子善旬 2012-11-24
  • 打赏
  • 举报
回复
lz的问题理解的不确定 如果是指gcc/gas的编译时指定,这个man下能找到的吧。 如果指运行时指定栈,可以如下: 留出一片可读写的ram空间,然后让esp ebp指向它,不需要特殊的指令吧

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧