设置和获取中断向量,很清楚嗷
在系统程序或应用程序由于某种需要而提供新的中断处理程序时,就要设置对应的中断向量,使其指向新的中断处理程序。
1.设置中断向量
设置中断向量一般有两种方法:直接写入法和使用 DOS 调用法。
方法1:直接写入法用 MOV 指令将中断向量直接写入中断向量表,下面是一个直接写入法的例子。
例使用直接写入法设置中断向量
MOV AX ,0 MOV DS , AXMOV BX , n *4CLIMOV WORD PTR [ BX ], OFFSET INTHAND MOV WORD PTR [ BX +2], SEG INTHANDSTI
方法2:使用 DOS 功能调用法使用25H号 DOS 功能调用可以设置中断向量,出口参数如下:
预置: AH =25H
AL =中断类型号
DS : DX =中断向量
执行:INT 21H
功能:将指定的中断向量写入中断向量表。
例使用 DOS 功能调用设置中断向量。
INTHAND :MOV AX , SEG INTHAND MOV DS , AX MOV DX , OFFSET INTHAND MOV AH ,25HMOV AL , n INT 21H
2.获取中断向量
获取中断向量也有两种常用方法:
直接读取法和使用 DOS 功能调用法。
方法1:直接读取法利用 MOV 指令直接读取中断向量。
例利用直接读取法读取 n 号中断向量,并保存在双字变量 OLDVECTOR 中:
XOR AX , AX MOV ES , AXMOV AX , ES :[ n *4]MOV WORD PTR OLDVECTOR , AX MOV AX , ES :[ n *4+2]MOV WORD PTR OLDVECTOR +2, AX
方法2:使用 DOS 功能调用法利用35H号 DOS 功能调用可以取得指定中断号的中断向量,其出入口参数如下:
预置: AL 中断类型号
执行: INT 21H
功能:读取指定中断的中断向量,其中:
ES =中断处理程序的段地址
BX =中断处理程序的偏移地址
例7-4使用 DOS 功能调用取得 n 号中断的中断向量
MOV AH ,35H MOV AL , n INT 21HMOV WORD PTR OLDVECTOR , ESMOV WORD PTR OLDVECTOR , BX
设置中断向量举例
设置和获取中断向量,很清楚嗷相关推荐
- 【文件游标的设置、获取与恢复;其它文件库函数的使用】(学习笔记20--文件下)
目录 文件游标 文件游标的设置 文件游标的获取 文件游标的恢复 其它文件函数 文件检查函数 设置文件缓冲区 文件游标 在打开一个文件后,就会得到一个文件游标,而对文件的读写操作,都会从文件游标对应的文 ...
- border设置1px看起来很粗问题
border设置1px看起来很粗问题 这篇文章纯属是一个引导,是我自己遇到了类似的问题在网上找到了一些方案,在解决这个问题之前我们需要先理解一下'设备像素比'这个概念 描述:设备像素比(deviceP ...
- oracle对sga统计信息不对,关于oracle sga设置的总结,很经典--转
关于oracle sga设置的总结,很经典--转 说明: 本总结不针对特例,仅对服务器只存在OS + ORACLE 为例,如果存在其他应用请酌情考虑.写这个也是因为近来这种重复性的问题发生的太多所导致 ...
- 【Linux 内核】进程优先级与调度策略 ③ ( 设置、获取线程优先级的核心函数 | 修改线程调度策略函数 )
文章目录 一.设置.获取线程优先级的核心函数 二.修改线程调度策略函数 一.设置.获取线程优先级的核心函数 设置.获取 线程 优先级的 核心 函数 : ① 设置 " 创建线程 " ...
- 封装cookie设置和获取的简易方法
(function() {var tool = {expires: "expires", // 过期时间expirespath: "path", // 路径do ...
- 用多媒体库 Bass.dll 播放 mp3 [15] - 设置与获取播放速度
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- 通过反射突破private访问修饰符获取私有和公共的属性,设置和获取值
import operate425.demo.demo1.Student;import java.lang.reflect.Constructor; import java.lang.reflect. ...
- 进程的优先级设置与获取,进程时间
进程的优先级设置与获取:值越小优先级越高 #include <sys/time.h> #include <sys/resource.h> ...
- java里新建线程设置线程名字_多线程开发不得不掌握,设置和获取线程名称及JVM如何运行的...
原标题:多线程开发不得不掌握,设置和获取线程名称及JVM如何运行的 欲善编程,多看.多敲.多讨论:动眼.动手.动大脑. 1 如何设置和获取线程名称 多线程的运行状态是不确定的,在程序开发过程中,想要获 ...
最新文章
- 用python设计学生管理系统_python+tkinter实现学生管理系统
- 实例 - 购物车 (列表、循环)
- SVN状态图标不显示的两种解决办法
- 自定义WPF窗体形状
- Python fileinput模块:逐行读取多个文件
- anaconda 升级jupyter notebook_搭建 Python 轻量级编写环境(WSL2+Jupyter 自动开启本地浏览器)
- 去伪存真,更多区块链落地应用即将涌现
- Ignoring unused library classes...java.io.IOException: You have to specify '-keep' options for the s
- java厨房_Java多线程基础
- php rss xml,php 一个完全面向对象的RSS/XML类的简单示例
- ASP.NET使用管道模型(PipleLines)处理HTTP请求
- g100显卡 linux驱动,nvidia geforce g100驱动
- python语言三大基本控制结构_Python基础(4) 控制结构
- 【Linux】kali2019安装docker
- ubuntu12.04 64位系统配置jdk1.6和jdk-6u20-linux-i586.bin下载地址
- python免费课程400节-海口少儿Python编程语言培训机构
- 直线插补计算过程_【计鹏视角】风速数据插补对发电量的影响
- java jlabel位置_Java Swing – JLabel位置
- 【笔记+总结】Andrew Ng-神经网络和深度学习
- 数据库学习笔记4-隔离级别 Read Committed