主题:关于堆栈问题!
veng
[专家分:0] 发布于 2007-11-30 09:24:00
push ds
就是将ds的内容压入ss(堆栈段寄存器)
然后sp(堆栈的栈顶指针)指向内存区域!
指向内存区域是不是指ss?
请问ss与sp的关系?
回复列表 (共3个回复)
沙发
ccpp [专家分:9360] 发布于 2007-11-30 09:34:00
push ds
是直接压入内存(也被称为栈内存),sp的值自动更新后 再次指向栈顶
板凳
ccpp [专家分:9360] 发布于 2007-11-30 09:39:00
ds的值被保存在 [sp]
压栈时的方向,是内存地址减小的方向,
3 楼
asmseeker [专家分:10] 发布于 2007-12-05 10:24:00
请问ss与sp的关系?
--------
它们是两个寄存器,是没有什么直接关系的,不会由于sp的变化而导致ss的变化。
但是在实现"栈"机制的时候,我们用ss和sp联合寻址确定当前栈的位置,所以它们也就有了点联系;-)
栈有入栈和出栈的操作,这个像楼上说的,可以在书上看看。
push ds
--------
首先是栈是对"字"操作的,ds寄存器是16位寄存器,正好是一个字,所以这条指令是能执行的。
然后就是push指令的执行过程了~
-------------------------------------------------------
汇编语言学习支持网 www.asmedu.net
我来回复