汇编关于堆栈的几个问题,请教了,俺是新手没弄明白
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啊。
俺刚来学习,请各位高手帮帮哦,谢谢!!!!!!!!!!!
我是新手不知道啊
:'{:1_1:} 本帖最后由 chao_prince 于 2011-7-29 14:51 编辑
首先,第一个..我也搞不明白..
其次,第二个..这个涉及到后面的知识,是有关中断的内容..用来保护现场,暂时存放寄存器里面的内容的.
第三个问题..如果你没有显式定义栈空间..系统会自己给你分配一个空间用作栈..
{:5_95:}以上,,希望对你有帮助.. 1、对no stack segment你无视它就行了,反正能通过编译,还有可能你没写assume ss:stack
2、你只是对指针进行赋值,没有对栈段写数据,栈段里当然保留了原先的数据
3、一般来讲,没有堆栈段定义的程序,DOS回自动给你分配一小块的 死亡请帖 发表于 2011-7-29 16:07 static/image/common/back.gif
1、对no stack segment你无视它就行了,反正能通过编译,还有可能你没写assume ss:stack
2、你只是对指针 ...
谢谢了有点明白了
chao_prince 发表于 2011-7-29 14:51 static/image/common/back.gif
首先,第一个..我也搞不明白..
其次,第二个..这个涉及到后面的知识,是有关中断的内容..用来保护 ...
谢谢各位的帮助有启示
chao_prince 发表于 2011-7-29 14:51 static/image/common/back.gif
首先,第一个..我也搞不明白..
其次,第二个..这个涉及到后面的知识,是有关中断的内容..用来保护 ...
谢谢哦!!!!!!
页:
[1]