在MASM中,有时候会手动定义堆栈段,有时候不用;自定义的SS: _code,那岂不是堆栈段用了代码段的空间?

来源:百度知道 编辑:UC知道 时间:2024/05/17 20:34:20
如果不自定SS, 那么运行时SS与SP的值是多少?

一般把SP的值传给BP(堆栈校准指针),然后直接用BP来访问堆栈中的数据,因为BP默认是和SS配合使用.SS: _code这种格式也不是用了代码段的空间,还是堆栈段的空间.CS:_code才是用了代码段的空间.不是根据名字来判断到底是属于哪一个段的,是根据前面的段寄存器来判断的
如果不自定SS,那么SS和SP的值是DOS操作系统给出的,要想知道的话,编写一个程序把SS和SP的值显示在屏幕上,不就知道了吗?
一般情况下,设置和不设置堆栈段都无所谓,不设置的话,操作系统会自动给出,只有在你的程序需要很大的堆栈空间时才需要自己设置,或者需要多个堆栈时才需要.