首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

linux上怎么定义堆栈

2013-01-02 
linux下如何定义堆栈在masm下可以定义,可是在linux下如何定义堆栈?[解决办法]lz的问题理解的不确定如果是

linux下如何定义堆栈
在masm下可以定义,可是在linux下如何定义堆栈?
[解决办法]
lz的问题理解的不确定

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

如果指运行时指定栈,可以如下:
留出一片可读写的ram空间,然后让esp ebp指向它,不需要特殊的指令吧
[解决办法]

引用:
因为在使用masm编译器的环境中,可以使用assume定义堆栈,可是在
linux下的as环境中,没有发现定义堆栈,只有数据段、文本段等,
所以想问问在linux下是否可以定义堆栈?


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

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

热点排行