问题 3.7
将 10000H~1000FH 这段空间当作栈,初始状态为空,要把 AX、BX、DS 中的数据入栈,应该怎样编写程序指令?
由于栈空间范围是 10000H~1000FH 且初始状态为空,这时 SS:SP 指向的地址为 1000FH + 1 = 10010H(参考“问题 3.6”),设置 SS=1000H,则 SP=0010H。由于 SS 是段寄存器,因此使用下面的指令来实现该设置:
mov ax, 1000H
mov SS, ax
mov SP, 0010H
注意,不能将常量数据直接通过 mov 指令传送给段寄存器,即下面的指令是非法的:
mov SS, 1000H
把 AX、BX、DS 中的数据入栈,其指令为:
push ax
push bx
push ds