回 帖 发 新 帖 刷新版面

主题:关于堆栈问题!

push ds
就是将ds的内容压入ss(堆栈段寄存器)
然后sp(堆栈的栈顶指针)指向内存区域!
指向内存区域是不是指ss?
请问ss与sp的关系?

回复列表 (共3个回复)

沙发

push ds
是直接压入内存(也被称为栈内存),sp的值自动更新后 再次指向栈顶

板凳

ds的值被保存在 [sp]
压栈时的方向,是内存地址减小的方向,

3 楼

请问ss与sp的关系? 
-------- 
它们是两个寄存器,是没有什么直接关系的,不会由于sp的变化而导致ss的变化。 
但是在实现"栈"机制的时候,我们用ss和sp联合寻址确定当前栈的位置,所以它们也就有了点联系;-) 

栈有入栈和出栈的操作,这个像楼上说的,可以在书上看看。 

push ds  
-------- 
首先是栈是对"字"操作的,ds寄存器是16位寄存器,正好是一个字,所以这条指令是能执行的。 
然后就是push指令的执行过程了~

-------------------------------------------------------       
汇编语言学习支持网 www.asmedu.net

我来回复

您尚未登录,请登录后再回复。点此登录或注册