主题:stack segment stack`stack是什么意思呀?
xit001
[专家分:20] 发布于 2007-03-23 19:30:00
stack segment stack`stack
回复列表 (共3个回复)
沙发
def [专家分:3380] 发布于 2007-03-23 20:42:00
这儿是一个名叫STACK的堆栈段
板凳
xit001 [专家分:20] 发布于 2007-03-23 21:14:00
stack`stack
这个怎么理解呀???
一般的格式不是这样的吗 STACK SEGMENT
3 楼
ccpp [专家分:9360] 发布于 2007-03-23 21:46:00
段定义的一般格式如下:
段名 SEGMENT [对齐类型] [组合类型] [类别]
…
段名 ENDS
组合类型(COMBINE)
组合类型是告诉连接程序如何把不同模块中段名相同的段合并在一起。具体的组合类型如下:
NONE 表示当前段在逻辑上独立于其它模块,并有其自己的基地址。NONE是缺省的组合类 型。
PUBLIC 表示当前段与其它模块中同段名的PUBLIC类型段组合成一个段。组合的先后次序取决于LINK程序中目标模块排列的次序。在组合时,后续段的起始地址要按其对齐类型进行定位,所以,同名段之间可能有间隔。
COMMON 表示当前段与其它模块中同名段重叠,也就是说,它们的起始地址相同。最终段的长度是同名段的最大长度。由于段覆盖,所以,前一同名段中的初始化数据被后续段的初始数据覆盖掉。
STACK 组合类型STACK表示当前段是堆栈栈,其组合情况与PUBLIC相同。
AT 数值表达式 该数值表达式是当前段所指定的绝对起始地址的段地址。
类别(CLASS)
类别是一个由程序员指定的用单引号括起来的字符串。如果一个段没有给出类别,那么,这个段的类别就为空。类别是用于段的分类,连接程序利用该类别来调整同名、同类别的段,并使它们相邻。典型的类别是"Data"和"Code"。如果指定某段的类别是"Code",那么,该段最好是代码段,这样,有的调试程序(如:CodeView)就可以顺序工作。
我来回复