zoukankan      html  css  js  c++  java
  • 汇编学习笔记33

    中断传送方式:

    中断和中断源

    中断是一种使CPU挂起正在执行的程序而去处理特殊事件的操作。引起中断的事件称为中断源

    中断源可能是来自外设的输入输出请求,也可能是计算机异常事件或其他内部原因。

    中断的传送

    当CPU需要输入或输出数据时,先作出一些必要的准备工作,然后继续执行程序。当外设完成一个数据的输入或输出后,向CPU发送中断请求,CPU挂起正在执行的程序,转去执行输入或输出操作。完成输入或输出后,返回程序继续执行。

    中断的缺点是每次中断,只能传送一次数据,数据传送速度不高。

    中断向量表

    IBM PC支持256种类型的中断 0~0FFH。每种类型中断由相应中断处理程序处理。中断向量表就是各种中断类型的处理程序地址表。

    存储器低1.5K字节由系统占用,其中低1K字节存放中断向量,每项占用4个字节,共能存放256个中断向量。其中每项的低字存放向量的偏移地址,高字存放向量的段值。每个中断向量地址由中断类型号乘4可以算出。

    中断向量号的分配

    保留60H~68H和0F1H~0FFH中断向量号,其他向量号都可以认为已经被占用。

    CLI指令,将中断标志清0

    STI指令,将中断标志置1

    设置和存取中断向量

    如果新的中断功能只供自己使用,或自己编写的中断处理程序替代了系统中的处理程序时,应保存替代前的中断向量,在程序结束时还原。

    一般利用DOS提供的25H系统功能调用来设置中断向量,35H功能调用来取出中断向量

    25H格式为 AL=中断向量类型号  DS=入口段值 DX=入口偏移

    35H格式为 AL=中断向量类型号  ES=出口段值  BX=出口偏移

    例: 利用DOS功能调用来存取中断向量

    MOV AL, N

    MOV AH, 35H

    INT 21H

    PUSH EX

    PUSH BX

    PUSH DS

    MOV AX, SETMENT INTHAND

    MOV DS, AX

    MOV DX OFFSET INTHAND

    MOV AL 25H

    INT 21H

    POP DS

    ……

    POP DX

    POP DS

    MOV AL, N

    MOV AH, 25H

    INT 21H

    RET

    INTHAND……

  • 相关阅读:
    Assembly Manifest 通俗简易手册
    CruiseControl服务器安装配置
    关于URL编码
    从A到Z来说说Web开发
    通过注册表查看 .NET Framework的版本信息
    云数据存在哪里?
    C#中你可能不知道的8件事(zz)
    用PBKDF2 或BCrypt 来存储密码
    C++编译器什么时候为我们自动生成拷贝构造函数?
    C#中你可能不知道的8件事(zz)
  • 原文地址:https://www.cnblogs.com/hailong/p/1922480.html
Copyright © 2011-2022 走看看