. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->汇编语言学习交流区
主题 : :  [讨论]第四章就开始接触的“中断”问题  [待解决] 回复[ 3次 ]   点击[ 1000次 ]  
mess
[帖 主] [ 发表时间:2008-03-26 10:09 ] 
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48
下面是一个博客的帖子,说的是在做实验5.6的时候碰到的中断问题。其实关于中断问题从第四章第一个程序就开始了(虽然第一个程序实dos下运行没有问题)。根据汇编书前言提到的“知识屏蔽”,我们没必要深入了解中断问题,但是简单了解还是很有必要的:-)
http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=8327&kindLevel=1&kindId=9631&postId=13172

下面是这篇博文主人的疑惑,大家讨论啊~~
(我觉得这三个问题感觉很绕口,不过根据经验越是绕口的问题解决后越能把知识理解清晰。:)
由此我产生疑问: 
1>是不是在DEBUG 中 -G 也是中断指令啊,会用到堆栈段. 
如果-G 不算中断指令,那么SS段的数据被改写了,像是运行了-T指令后的效果.为什么? 
2>若程序中只设置SS段地址而不初始SP的值,SS段能做为一个数据段来使用,即:DEBUG中-T指令运行的数据不保存在堆栈SS段中.为什么? 
3>若程序中只设置SS段地址而不初始SP的值,那么DEBUG 中T 指令运行后,保存的数据在哪个存储空间?是堆栈SS吗?
mess
[第2楼] [ 回复时间:2008-03-26 16:42 ] 
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48
对于楼上说的第一个关于G命令的,我觉得G命令也有保存现场的操作。

当敲入G命令,程序会一直运行,当遇到MOV AX,4C00H INT 21H,这两条指令时候结束程序。
这两条指令是调用的21中断,功能如下
----
(5)、功能4CH 
功能描述:终止程序的执行,并可返回一个代码 
入口参数:AH=4CH 
AL=返回的代码 
出口参数:无 
---
在dos下,运行一个正确的程序会返回dos。在debug先用g命令运行程序,也会返回debug。下面是一个程序g命令的实例:
-t

AX=0000  BX=0000  CX=002F  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=0C48  ES=0C48  SS=0C58  CS=0C58  IP=001D   NV UP EI PL NZ NA PO NC
0C58:001D B8580C        MOV     AX,0C58
-t

AX=0C58  BX=0000  CX=002F  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=0C48  ES=0C48  SS=0C58  CS=0C58  IP=0020   NV UP EI PL NZ NA PO NC
0C58:0020 8ED8          MOV     DS,AX
-g
good student:class2 jack

Program terminated normally
-r
AX=0C58  BX=0000  CX=002F  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=0C48  ES=0C48  SS=0C58  CS=0C58  IP=0020   NV UP EI PL NZ NA PO NC
0C58:0020 8ED8          MOV     DS,AX
-t

AX=0C58  BX=0000  CX=002F  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=0C58  ES=0C48  SS=0C58  CS=0C58  IP=0022   NV UP EI PL NZ NA PO NC
0C58:0022 8D160200      LEA     DX,[0002]                          DS:0002=6F67
-
我们可以看到g命令前后cs和ip的值没有变化,标志寄存器的值都没有变化。如果g命令没有中断的保护现场操作,这点应该很难解释啊。虽然g命令最后执行了int 21h中断,执行21h中断前保护的现场不可能满足示例中的前后寄存器数据不变的需要。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved