求助小甲鱼!!!实验2问题
本帖最后由 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
根据单步调试的结果,是程序的大串push使得SP出现了小於6的状况,
SP小於6似乎就会导致崩溃,我在做些练习时也遇到过,
具体原因我只听说跟中断,系统保护有关系
参考:
百度的baitang36网友:
硬件中断发生时,需要压入堆栈6个字节,因此,
你的sp任何时候都不能小於6,否则後果不可预料。
汇编语言论坛的mess网友:
在虚拟dos下,当sp过小,比如4,在执行t命令时会发生程序错误,
这个涉及到後面学习的中断和系统保护,把sp设置大些就行了。 楼上好强大 ytrfamli 发表于 2011-9-13 16:35 static/image/common/back.gif
根据单步调试的结果,是程序的大串push使得SP出现了小於6的状况,
SP小於6似乎就会导致崩溃,我在做些练习时也 ...
谢谢哈~~~~~
页:
[1]