汇编中的堆栈如何使用

学习了一段时间汇编语言了。对里面的堆栈段还是不太明白。而且那个堆栈段(即stack segment ;插入相关代码 stack ends) 从来没用过。 在编程时,完全可以不用这个堆栈段也可以使用PUSH和POP指令。哪位高手能介绍一个这个堆栈段的作用,和它的使用方法。

第1个回答  推荐于2017-12-15
堆栈的定义是这样的:
dssg segment stack
aa dw 512dup(?)
dssg ends
一般的说,当PUSH/POP指令不频繁时用系统堆栈就可以了,但是当需要堆栈存储大量数据,如作为子程序传替参数时就要定义一个堆栈,而且一般来说一个段的内容不能超过64K,因为偏移地址最大只能表示64K,所以定义的堆栈也不能是无限大,如果超过了64K,就定义两个吧!
堆栈在汇编中对于初学者用的很少,一般小程序都不需要用的!用起来也不是很难,就是注意下,在子程序调用时,什么时候是返回地址,什么时候是寄存器值!总之,记住先进后出,再做题时画个堆栈图,应该不会很难的!本回答被网友采纳