在系统程序或应用程序由于某种需要而提供新的中断处理程序时,就要设置对应的中断向量,使其指向新的中断处理程序。

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

设置中断向量举例

设置和获取中断向量,很清楚嗷相关推荐

  1. 【文件游标的设置、获取与恢复;其它文件库函数的使用】(学习笔记20--文件下)

    目录 文件游标 文件游标的设置 文件游标的获取 文件游标的恢复 其它文件函数 文件检查函数 设置文件缓冲区 文件游标 在打开一个文件后,就会得到一个文件游标,而对文件的读写操作,都会从文件游标对应的文 ...

  2. border设置1px看起来很粗问题

    border设置1px看起来很粗问题 这篇文章纯属是一个引导,是我自己遇到了类似的问题在网上找到了一些方案,在解决这个问题之前我们需要先理解一下'设备像素比'这个概念 描述:设备像素比(deviceP ...

  3. oracle对sga统计信息不对,关于oracle sga设置的总结,很经典--转

    关于oracle sga设置的总结,很经典--转 说明: 本总结不针对特例,仅对服务器只存在OS + ORACLE 为例,如果存在其他应用请酌情考虑.写这个也是因为近来这种重复性的问题发生的太多所导致 ...

  4. 【Linux 内核】进程优先级与调度策略 ③ ( 设置、获取线程优先级的核心函数 | 修改线程调度策略函数 )

    文章目录 一.设置.获取线程优先级的核心函数 二.修改线程调度策略函数 一.设置.获取线程优先级的核心函数 设置.获取 线程 优先级的 核心 函数 : ① 设置 " 创建线程 " ...

  5. 封装cookie设置和获取的简易方法

    (function() {var tool = {expires: "expires", // 过期时间expirespath: "path", // 路径do ...

  6. 用多媒体库 Bass.dll 播放 mp3 [15] - 设置与获取播放速度

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  7. 通过反射突破private访问修饰符获取私有和公共的属性,设置和获取值

    import operate425.demo.demo1.Student;import java.lang.reflect.Constructor; import java.lang.reflect. ...

  8. 进程的优先级设置与获取,进程时间

    进程的优先级设置与获取:值越小优先级越高        #include <sys/time.h>        #include <sys/resource.h>       ...

  9. java里新建线程设置线程名字_多线程开发不得不掌握,设置和获取线程名称及JVM如何运行的...

    原标题:多线程开发不得不掌握,设置和获取线程名称及JVM如何运行的 欲善编程,多看.多敲.多讨论:动眼.动手.动大脑. 1 如何设置和获取线程名称 多线程的运行状态是不确定的,在程序开发过程中,想要获 ...

最新文章

  1. 用python设计学生管理系统_python+tkinter实现学生管理系统
  2. 实例 - 购物车 (列表、循环)
  3. SVN状态图标不显示的两种解决办法
  4. 自定义WPF窗体形状
  5. Python fileinput模块:逐行读取多个文件
  6. anaconda 升级jupyter notebook_搭建 Python 轻量级编写环境(WSL2+Jupyter 自动开启本地浏览器)
  7. 去伪存真,更多区块链落地应用即将涌现
  8. Ignoring unused library classes...java.io.IOException: You have to specify '-keep' options for the s
  9. java厨房_Java多线程基础
  10. php rss xml,php 一个完全面向对象的RSS/XML类的简单示例
  11. ASP.NET使用管道模型(PipleLines)处理HTTP请求
  12. g100显卡 linux驱动,nvidia geforce g100驱动
  13. python语言三大基本控制结构_Python基础(4) 控制结构
  14. 【Linux】kali2019安装docker
  15. ubuntu12.04 64位系统配置jdk1.6和jdk-6u20-linux-i586.bin下载地址
  16. python免费课程400节-海口少儿Python编程语言培训机构
  17. 直线插补计算过程_【计鹏视角】风速数据插补对发电量的影响
  18. java jlabel位置_Java Swing – JLabel位置
  19. 【笔记+总结】Andrew Ng-神经网络和深度学习
  20. 数据库学习笔记4-隔离级别 Read Committed

热门文章

  1. 《水经注地图服务》下载与安装步骤
  2. Java汉字转拼音库,Pinyin4j
  3. git基础之切换分支
  4. Oracle: SQL精妙SQL语句讲解(常用sql) .
  5. flutter/dart通过ffi调用rust代码
  6. ps磁性套索工具如何抠图
  7. 收集的一些GIS数据网站
  8. elementui下拉选择框
  9. Python——学生管理系统
  10. matlab如何绝对值函数,概率密度函数估计matlab命令 A a abs 绝对值、(2)