鱼C论坛

 找回密码
 立即注册
查看: 3056|回复: 3

求助小甲鱼!!!实验2问题

 关闭 [复制链接]
发表于 2011-9-13 15:42:41 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 loop 于 2011-9-13 18:18 编辑

今天在做实验2的实验任务(2),其中第二题纠结了,因为我以前学过微机原理,所能能够理解,那个中断将flag,cs和ip入栈后来我把这个题的源代码修改一下,如下:
mov ax,2000
mov ss,ax
mov sp,10
mov ax,3123
push ax
mov ax,3366
push ax
push ax
push ax
push ax
push ax
push ax
push ax
然后用t命令执行,结果运行第7个push语句是,出现了问题,如图所示,不知道是怎么回事
file:///C:/Users/duqian/AppData/Local/Temp/msohtml1/01/clip_image002.jpg



1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-13 16:35:45 | 显示全部楼层
根据单步调试的结果,是程序的大串push使得SP出现了小於6的状况,
SP小於6似乎就会导致崩溃,我在做些练习时也遇到过,
具体原因我只听说跟中断,系统保护有关系

参考:
百度的baitang36网友:
硬件中断发生时,需要压入堆栈6个字节,因此,
你的sp任何时候都不能小於6,否则後果不可预料。

汇编语言论坛的mess网友:
在虚拟dos下,当sp过小,比如4,在执行t命令时会发生程序错误,
这个涉及到後面学习的中断和系统保护,把sp设置大些就行了。  

评分

参与人数 1荣誉 +2 鱼币 +2 收起 理由
loop + 2 + 2 赞一个!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-13 16:51:19 | 显示全部楼层
楼上好强大
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-9-13 16:53:35 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 04:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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