鱼C论坛

 找回密码
 立即注册
查看: 2189|回复: 4

这样的push越界会发送什么呢?

[复制链接]
发表于 2013-6-20 14:33:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
假设寄存器 SS=1001H  SP=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:


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-20 17:02:00 | 显示全部楼层

回帖奖励 +2 鱼币

10010;fffe
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-20 21:59:00 | 显示全部楼层
看上去不错,谢谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-21 00:20:09 | 显示全部楼层
不会吧,好像SS段寄存器不会改变,所以就算你一直不停PUSH的话,也就1000h个字节的空间,到0的时候-2就成FFFd了,
寄存器是无符号的.-2也就是Fffd
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-21 10:46:15 | 显示全部楼层
谢谢大家的帮助,我已经知道了,正如4楼说的,SS寄存器不会变,SP的值会从0变成FFFE.
换句话说栈是个逻辑上首位相连的64K内存。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 07:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表