3.10 栈段
我们可以将长度为N(N <= 64k)的一组地址连续、起始地址为16的倍数的内存单元,当作栈来用,从而定义了一个栈段。
问题:3.11
如果我们将10000H~1FFFFH这段空间当做栈段,初始状态是空的,此时,SS=1000H,SP=?
换位思考:
栈为空,相当于栈中唯一的元素出栈,出栈后,SP=SP+2。
- SP原来为FFFEH,加2后SP=0,所以,当栈为空的时候,SS=1000H,SP=0。
问题:3.12
一个栈段最大可以设为多少?
所以栈顶的变化范围是0~FFFFH,所以一个栈段的容量最大是64KB
(0
1H,容量为2, 0FFFF,容量为10000H,即64KB = 2^16)
- 数据段:段地址放在DS中
- 代码段:段地址放在CS中,第一条指令的偏移地址放在IP中。
- 栈段:段地址放在SS中,栈顶单元的偏移地址放在SP中