| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4287 人关注过本帖
标题:关于int的理解,请高手请教。
只看楼主 加入收藏
随风的飞叶
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:90
专家分:158
注 册:2015-10-8
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:5 
关于int的理解,请高手请教。
第一部分11句是套路,定义要安装的程序的源地址,目标地址。中断的入口地址。
mov ax,cs

        mov ds,ax

        mov si,offset nr

        mov ax,0

        mov es,ax

        mov di,200h

        mov cx,offset *** -offset **

        cld

        rep movsb

        ;以上9句为安装中断例程

 

        mov word ptr es:[N*4],200h

        mov word ptr es:[N*4+2],0
        以上2句为中断的入口地址,***为标号。 N为第几号中断。

第二部分是中断的正文,是要实现的功能。
如果在一个程序中。
assume cs:codesg,ds:data,ss:stack
:
:
:
satck:
       第一部分11句套话
       第二部分,程序要实在的功能
       第三部分,int的程序。
这样理解对不对,请指救。
                              
2015-10-11 10:36
随风的飞叶
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:90
专家分:158
注 册:2015-10-8
收藏
得分:0 
在保护模式下,安装的中断例程,关了后就没有了。如果是在实模式下,关机后,已经安装的中断例程会消失吗。
2015-10-11 10:43
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:10 
你这样说我觉得不算理解。至少太机械、教条。
修改中断函数指针的方式很多。在DOS时代,通常会写内存驻留程序,该程序的第一步是保存自己要用到的中断指针,第二步是填充自己的处理函数指针,第三步是自己函数处理完成后不能ret,而是jmp到自己保存的原中断处理位置(根据需要做)以期恢复原处理。
保护模式下使用的int指令是通过虚拟86方式做到的,无论保护模式或实模式,停电后中断向量表中的数据均消失,每次机器重启后由rom中的代码建立基本的中断向量,操作系统又会修改部分中断向量,通常40H后的中断为用户自定义中断。
在实模式下,内存0000:0000-0000:03FF为中断向量表,每个中断使用4个字节,前2个字节为中断函数入口的基地址,后两个字节为中断函数入口的段地址。比如DOS中断21H函数入口存储的地址在0000:0084开始处的4个字节,如果使用call [0000:0084]指令,会得到int 21同样的效果。

能编个毛线衣吗?
2015-10-11 11:52
随风的飞叶
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:90
专家分:158
注 册:2015-10-8
收藏
得分:0 
"无论保护模式或实模式,停电后中断向量表中的数据均消失,每次机器重启后由rom中的代码建立基本的中断向量,操作系统又会修改部分中断向量,通常40H后的中断为用户自定义中断。"     这是不是说 要修改中断处理的程序,每次开机都要把该程序装载进去才行。也就是只有运行了自己写的加载程序后,才会把相应的中断处理加载进去。假如用的是实模式,如果破坏了原来的中断向量表,关机后再开就会恢复是吧。   我没有看到内存驻留程序怎么作。刚开始学习编程。
2015-10-11 12:15
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:10 
不能这样理解。
中断向量表是记录中断函数入口地址的,而中断函数是否开机装载取决于函数所处位置或操作系统是否改写中断,比如基础的显示中断int 10H,其处理函数位于ROM内存中,电脑即使断电,该函数信息仍能长久保存,开机自检时int 10H的处理程序无需装载,尽管此时操作系统未加载,但你仍然从屏幕上看的到自检信息。操作系统进驻内存后,可能改写显示函数,则可能加载系统自己的显示函数,改写10H的中断向量。

能编个毛线衣吗?
2015-10-11 12:32
随风的飞叶
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:90
专家分:158
注 册:2015-10-8
收藏
得分:0 
谢谢版主









2015-10-11 12:49
快速回复:关于int的理解,请高手请教。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016753 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved