这样的push越界会发送什么呢?
假设寄存器 SS=1001HSP=0010H那么栈空间为 10010H ~ 1001FH
栈顶指针指向 10020H . 寄存器 SS=1001H SP=0010H
mov bx,1234
push bx
这样执行8次后,每次sp 都会减去 2,栈顶指针的位置向上移动2个字节
栈顶指针指向 10010H,寄存器 SS=1001H SP=0000H
问题就这么来了!!!!
再次执行
push bx
栈顶指针向上移动2个字节,指针位置为 1000EH,这没问题
但是SP=0000H,他现在的值是多少???总不能为 -0002H吧??
SP会向SS借值吗??
我测试过了,每次总是会出问题,测试不成功,有谁了解过这个问题,麻烦给解答下,非常感谢:victory:
10010;fffe 看上去不错,谢谢分享 不会吧,好像SS段寄存器不会改变,所以就算你一直不停PUSH的话,也就1000h个字节的空间,到0的时候-2就成FFFd了,
寄存器是无符号的.-2也就是Fffd 谢谢大家的帮助,我已经知道了,正如4楼说的,SS寄存器不会变,SP的值会从0变成FFFE.
换句话说栈是个逻辑上首位相连的64K内存。
页:
[1]