当前位置: 代码迷 >> 汇编语言 >> linux上怎么定义堆栈
  详细解决方案

linux上怎么定义堆栈

热度:466   发布时间:2013-02-26 00:00:00.0
linux下如何定义堆栈
在masm下可以定义,可是在linux下如何定义堆栈?
------解决方案--------------------------------------------------------
lz的问题理解的不确定

如果是指gcc/gas的编译时指定,这个man下能找到的吧。

如果指运行时指定栈,可以如下:
留出一片可读写的ram空间,然后让esp ebp指向它,不需要特殊的指令吧
------解决方案--------------------------------------------------------
引用:
因为在使用masm编译器的环境中,可以使用assume定义堆栈,可是在
linux下的as环境中,没有发现定义堆栈,只有数据段、文本段等,
所以想问问在linux下是否可以定义堆栈?


如果是运行在操作系统上的代码,操作系统创建任务时会为其准备堆栈。
如果是裸机程序,那可以在程序中保留一段内存,然后根据栈的增长方向把首地址或尾地址直接写入到sp寄存器就可以了!不过这样做要注意栈的平衡,不然可能溢出而影响程序的执行。

如何保留一段内存,看自己了!给你个方法,可以定义一个指定大小的数据段。