zoukankan      html  css  js  c++  java
  • 第13章 int指令

    引言

    中断信息可以来自cpu的内部和外部,当cpu的内部有需要处理的事情发生的时候,将产生需要马上处理的中断信息,引发中断过程。

    13.1 int指令

    int格式:int  n,n为中断类型码,它的功能是引发中断过程。

    cpu执行int  n指令,相当于引发一个n号中断的中断过程,执行过程如下:

    1)取中断类型码n

    2)标志寄存器入栈,IF=0,TF=0;

    3)CS、ip入栈

    4)ip=n*4,CS=n*4+2

    从此转去执行n号中断的中断处理程序。

    可以在程序中使用int指令调用任何一个中断的中断处理程序。

    一般情况下,系统将一些具有一定功能的子程序,以中断处理程序的方式提供给应用程序调用。

     

     

    13.4  BIOS和DOS所提供的中断例程

    在系统板的ROM中存放着一套程序,称为BIOS(基本输入输出系统),BIOS中主要包含以下几部分内容。

    1)硬件系统的检测和初始化程序;

    2)外部中断和内部中断的中断例程

    3)用于对硬件设备进行I/O操作的中断例程

    4)其他和硬件系统相关的中断例程。

     和硬件设备相关的DOS中断例程中,一般都调用BIOS的中断例程。

    13.5  BIOS和DOS中断例程的安装过程

    1)开机后,CPU一加电,初始化CS=0FFFFh,ip=0,自动从FFFF:0单元开始执行程序。FFFF:0处有一条跳转指令,CPU执行该指令后,转去执行BIOS中的硬件系统检测和初始化程序。

    2)初始化程序建立BIOS所支持的中断向量,即将BIOS提供的中断例程的入口地址登记在中断向量表中。

    3)硬件系统检测和初始化完成后,调用int  19h进行操作系统的引导。从此将计算机交由操作系统控制。

    4)DOS启动后,除完成其他工作外,还将它所提供的中断例程装入内存,并建立相应的中断向量。

    13.6  BIOS中断例程的应用

    int   10h中断例程是BIOS提供的中断例程,其中包含了多个和屏幕输出相关的子程序。

    一般来说,一个供程序员调用的中断例程中往往包括多个子程序,中断例程内部用传递进来的参数来决定执行哪个子程序。

    BIOS和DOS提供的中断例程,都用ah来传递内部子程序的编号。

     

     

     

     

     

     

    ;编程:在屏幕的5行12列显示字符串“welcome to masm!”。
    
    assume cs:code
    data segment 
     db 'Welcome to masm!','$'
    data ends
    
    code segment
    start:    mov ah,2     ;置光标
        mov bh,0    ;第0页
        mov dh,5    ;dh中放行号
        mov dl,12    ;dl中放列号
        int 10h
        
        mov ax,data
        mov ds,ax
        mov dx,0    ;ds:dx指向字符串的首地址data:0
        mov ah,9
        int 21h
    
        mov ax,4c00h
        int 21h 
    
    code ends
    end start

    上述程序在屏幕的5列12行显示字符串“welcome  to masm!”,直到遇见’$‘($本身并不显示,只起到边界的作用)

    如果字符串比较长,遇到行尾,程序会自动转到下一行开头处继续显示,如果到了最后一行,还能自动上卷一行。

  • 相关阅读:
    css自适应宽高等腰梯形
    控制台屏蔽某console的输出
    js定时器的时间最小值-setTimeout、setInterval
    03_数字的字面量
    程序员-表情包
    程序员-趣图集
    js不是从上到下执行的吗?
    CSS样式重置
    系统程序名命令表
    js手风琴图片切换实现原理及函数分析
  • 原文地址:https://www.cnblogs.com/fate-/p/12983075.html
Copyright © 2011-2022 走看看