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

    非屏蔽外部中断

    当收到NM1传入的中断请求信号时,不管是否处于开中断状态,CPU总是会响应中断。

    非屏蔽外部中断主要由电源掉电,存储器出错,或总线奇偶校验错等紧急故障产生,要求CPU及时处理。

    五、内部中断

    CPU内部某个事件引起的中断称为内部中断。内部中断由CPU在执行某些指令时产生,也叫做软中断。内部中断不受中断允许标志IF的控制。

    1、中断指令INT 引起的中断

    格式: INT n

    其中n是0~0FFH的立即数,执行后产生一个类型号为n的中断。

    例: INT 21H产生一个21H中断,转入对应的中断处理,即转入DOS系统功能服务程序。

    MOV AH, 01

    INT 21H

    输入功能调用。

    2、CPU遇到特殊情况引起的中断

    除法中断,除数为0或商超出了规定的范围,产生一个除法错误中断,中断类型号为0

    MOV AX, 1234D

    MOV CL, 3

    DIV CL

    上述代码产生0号中断。为避免中断,应改写:

    MOV AX, 1234D

    MOV CL, 3

    XOR DX, DX

    XOR CH, CH

    DIV CX

    溢出中断

    使用INT0来检测溢出中断错误。在OF=1时执行。

    该指令溢出中断类型号为4.如果OF=0执行该指令不会产生中断。

    3、用于调试的中断

    单步

    如果TF=1,每条指令产生一个单步中断。

    中断时,TF=0,所以不会以单步方式执行单步处理程序。

    通常,由调试工具把TF置为1。单步处理程序中可报告各寄存器当前的内容。

    断点中断

    8086,8088中中断指令INT3执行后产生类型号为3的中断,称为断点中断。

    六、中断优先级和中断嵌套

    优先级:

    内部中断 > 非屏蔽中断 > 可屏蔽中断 > 单步中断

    中断命令寄存器可改变可屏蔽中断内的设备中断优先级。默认优先级为0~7

    中断嵌套:

    在中断处理程序时,又发生中断,叫做中断嵌套。发生非屏蔽中断时,也会引起中断嵌套。

    例:

    PUSH DS

    MOV AX, SEG INT.ROUT

    MOV DS, AX

    MOV DX, OFFSET INT.ROUT

    MOV AL, 9

    MOV AH, 25H

    INT 21H

    POP DS

  • 相关阅读:
    阿里云中挖矿病毒
    flutter 返回刷新页面
    PM2 常用命令
    阿里云Redis 配置
    stm32f407启动文件分析
    C++类的前置声明
    Qt快速入门学习笔记(画图篇)
    Qt快速入门学习笔记(基础篇)
    Qt入门实例
    Qt编码设置
  • 原文地址:https://www.cnblogs.com/hailong/p/1925809.html
Copyright © 2011-2022 走看看