汇编中的堆栈如何使用
学习了一段时间汇编语言了。对里面的堆栈段还是不太明白。而且那个堆栈段(即stacksegment;插入相关代码stackends)从来没用过。在编程时,完全可以不用这个堆...
学习了一段时间汇编语言了。对里面的堆栈段还是不太明白。而且那个堆栈段(即stack segment ;插入相关代码 stack ends) 从来没用过。 在编程时,完全可以不用这个堆栈段也可以使用PUSH和POP指令。哪位高手能介绍一个这个堆栈段的作用,和它的使用方法。
展开
推荐于2017-12-15
展开全部
堆栈的定义是这样的:
dssg segment stack
aa dw 512dup(?)
dssg ends
一般的说,当PUSH/POP指令不频繁时用系统堆栈就可以了,但是当需要堆栈存储大量数据,如作为子程序传替参数时就要定义一个堆栈,而且一般来说一个段的内容不能超过64K,因为偏移地址最大只能表示64K,所以定义的堆栈也不能是无限大,如果超过了64K,就定义两个吧!
堆栈在汇编中对于初学者用的很少,一般小程序都不需要用的!用起来也不是很难,就是注意下,在子程序调用时,什么时候是返回地址,什么时候是寄存器值!总之,记住先进后出,再做题时画个堆栈图,应该不会很难的!
dssg segment stack
aa dw 512dup(?)
dssg ends
一般的说,当PUSH/POP指令不频繁时用系统堆栈就可以了,但是当需要堆栈存储大量数据,如作为子程序传替参数时就要定义一个堆栈,而且一般来说一个段的内容不能超过64K,因为偏移地址最大只能表示64K,所以定义的堆栈也不能是无限大,如果超过了64K,就定义两个吧!
堆栈在汇编中对于初学者用的很少,一般小程序都不需要用的!用起来也不是很难,就是注意下,在子程序调用时,什么时候是返回地址,什么时候是寄存器值!总之,记住先进后出,再做题时画个堆栈图,应该不会很难的!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询