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

  • 相关阅读:
    禅道项目管理系统自定义菜单相关
    2015年技术方向转变计划
    LinuxMint 17.1 Cinnamon桌面窗口焦点bug
    通过指定函数/方法形参类型提高PHP代码可靠性
    Apache+Mod_Python配置
    JPHP最新进展 v0.6
    “领域驱动开发”实例之旅(1)--不一样的开发模式
    Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作
    哈希值 是什么?哈希值是什么东西啊?具体怎么识别?怎么用?
    TortoiseGit 使用教程
  • 原文地址:https://www.cnblogs.com/hailong/p/1925809.html
Copyright © 2011-2022 走看看