ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第13章 int指令

2020-05-28 18:52:54  阅读:262  来源: 互联网

标签:13 BIOS int mov 中断 指令 例程 子程序


引言

中断信息可以来自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!”,直到遇见’$‘($本身并不显示,只起到边界的作用)

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

 

标签:13,BIOS,int,mov,中断,指令,例程,子程序
来源: https://www.cnblogs.com/fate-/p/12983075.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有