汇编的小问题 帮帮忙 解释一下就行

将10000H~1000FlH这段空间当作栈段,SS=1000H,栈空间大小为16字节,栈最底
部的字单元地址为1000:000E。任意时刻,SS:SP指向栈顶,当栈中只有一个元素的时
候,SS=1000H,SP=000EH。栈为空,就相当于栈中唯一的元素出栈,出栈后,
SP=SP+2,SP原来为000EH,加2后SP=lOH,所以,当栈为空的时候,SS=1000H,
SP=10H。
换一个角度看,任意时刻,SS:SP指向栈顶元素,当栈为空的时候,栈中没有元素,
也就不存在栈顶元素,当栈为空的时候,SS=1000H,
SP=10H。 我就想知道 栈为空的时候为什么SP=10H 告诉我怎么算的就行 先谢过了

一个空栈的SS:SP是指向栈最低层的下一单元,你前面已经说了栈的大小是16个字节,也就是从10000H~1000FH 栈的最底层应该是1000FH 那它的下一单元就应该是10010H,16字节的空栈栈顶指针应该指向物理地址10010H
物理地址=段地址*16+偏移地址,所以SP=10H

如果不明白的话换一个简单的角度考虑
一共有16个字节,那么就是从0~15,一个空栈的SS:SP是指向栈最低层的下一单元,所以第16字节就是所说的下一单元,这个16是十进制的,换算成十六进制也就是10H,所以SP=10H
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜