fisher60 发表于 2011-7-29 11:07:34

汇编关于堆栈的几个问题,请教了,俺是新手没弄明白

1、源程序中设了stack segment 段,ss:sp也赋值了,可link目标文件时,最后总有一句:no stack segment ,这是什么意思。

2、源程序中定义了stack segment
                                              db 16 dup(0)
                              stack end
       但debug 该程序时,单步执行,当执行完
                                                    mov ax,stack
                                                    mov ss,ax
                                                    mov sp,16
       d ss:0段,内容并不一定是00,00,00,00,00,00,00,00-00,00,00,00,00,00,00,00。有时会有非0值
       为什么?

3、子程序中如果有push,pop命令,调用时,其堆栈地址是怎么来的,有的源程序中并没有定义ss啊。

俺刚来学习,请各位高手帮帮哦,谢谢!!!!!!!!!!!

yulin3192 发表于 2011-7-29 13:28:26

我是新手不知道啊
:'{:1_1:}

chao_prince 发表于 2011-7-29 14:51:37

本帖最后由 chao_prince 于 2011-7-29 14:51 编辑

首先,第一个..我也搞不明白..
其次,第二个..这个涉及到后面的知识,是有关中断的内容..用来保护现场,暂时存放寄存器里面的内容的.
第三个问题..如果你没有显式定义栈空间..系统会自己给你分配一个空间用作栈..
{:5_95:}以上,,希望对你有帮助..

死亡请帖 发表于 2011-7-29 16:07:59

1、对no stack segment你无视它就行了,反正能通过编译,还有可能你没写assume ss:stack

2、你只是对指针进行赋值,没有对栈段写数据,栈段里当然保留了原先的数据

3、一般来讲,没有堆栈段定义的程序,DOS回自动给你分配一小块的

fisher60 发表于 2011-7-29 22:36:12

死亡请帖 发表于 2011-7-29 16:07 static/image/common/back.gif
1、对no stack segment你无视它就行了,反正能通过编译,还有可能你没写assume ss:stack

2、你只是对指针 ...

谢谢了有点明白了

fisher60 发表于 2011-7-29 22:37:09

chao_prince 发表于 2011-7-29 14:51 static/image/common/back.gif
首先,第一个..我也搞不明白..
其次,第二个..这个涉及到后面的知识,是有关中断的内容..用来保护 ...

谢谢各位的帮助有启示

fisher60 发表于 2011-7-29 22:37:46

chao_prince 发表于 2011-7-29 14:51 static/image/common/back.gif
首先,第一个..我也搞不明白..
其次,第二个..这个涉及到后面的知识,是有关中断的内容..用来保护 ...

谢谢哦!!!!!!
页: [1]
查看完整版本: 汇编关于堆栈的几个问题,请教了,俺是新手没弄明白