




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章第九章 BIOS 和和 DOS 中断中断Your site here用户编程原则用户编程原则尽可能使用尽可能使用DOS的系统功能调用,提高程序可移植性。的系统功能调用,提高程序可移植性。在在DOS功能不能实现的情况下,考虑用功能不能实现的情况下,考虑用BIOS功能调用。功能调用。(比如读打印机状态:(比如读打印机状态:BIOS中断中断17H的功能的功能2)在在DOS和和BIOS的中断子程序不能解决问题时的中断子程序不能解决问题时, 才使才使用用IN/OUT指令直接控制硬件。(比如声音控制)指令直接控制硬件。(比如声音控制)Your site here中断:中断:使使cpu中止正在执行的程
2、序而转去处理特殊事件的操作。中止正在执行的程序而转去处理特殊事件的操作。中断源:中断源:引起中断的事件。引起中断的事件。8086/8088CPU最多有最多有256个中断源个中断源,这些中断源根据来自,这些中断源根据来自CPU的内部还是外部分为两大类:内部中的内部还是外部分为两大类:内部中断源和外部中断源。断源和外部中断源。外中断外中断(硬中断硬中断): 外设的外设的 I/O 请求请求 可屏蔽中断可屏蔽中断INTR 电源掉电电源掉电 / 奇偶错奇偶错 非屏蔽中断非屏蔽中断NMI所谓不可屏蔽中断是指该中断请求不能通过软件的方式对其屏蔽,一旦所谓不可屏蔽中断是指该中断请求不能通过软件的方式对其屏蔽,
3、一旦出现出现NMI中断请求,中断请求,CPU必须立即响应。必须立即响应。内中断内中断(软中断软中断): INT 指令指令 / CPU 错(除法错、溢出)错(除法错、溢出)/ 为调试程序设置的中断(为调试程序设置的中断(t、g命令)命令)中断传送方式中断传送方式Your site here非非屏蔽中断请求屏蔽中断请求 中断逻辑中断逻辑INT nINTO除法错除法错单步单步 n 4 0 1CPU 2 NMI8259A可可编程中断控制器编程中断控制器(PIC)IR0 系统定时器系统定时器IR1 键盘键盘IR2 彩色彩色/图形接口图形接口IR3 保留保留IR4 串行通讯口串行通讯口IR5 保留保留IR
4、6 软盘软盘IR7 打印机打印机INTR08090A0B0C0D0E0F80 x86 中断源(中断源(图中引线端标示的数字为分配的图中引线端标示的数字为分配的终端类型号终端类型号N(0-255)):):8259A外部有外部有28个引脚。有个引脚。有9片片8259A可构成可构成64级中断源。级中断源。Your site here 类型类型0的的(IP) 类型类型0的的(CS) 类型类型1的的(IP) 类型类型1的的(CS) 类型类型N的的(IP) 类型类型N的的(CS) 类型类型255的的(IP) 类型类型255的的(CS)0000000004 4*N003FC中断向量中断向量中断处理程序的入口
5、中断处理程序的入口 地址(段址)地址(段址):(偏址)(偏址)中断向量表中断向量表:各类型(各类型(00FFH)中断处理程序的入口地址表)中断处理程序的入口地址表Your site here设置设置CPU中断允许位:中断允许位: FLAGS 中的中的 IF 位位 = 1 允许中断允许中断 ( STI 开中断)开中断) = 0 禁止中断禁止中断 ( CLI 关中断)关中断)设置中断屏蔽位:设置中断屏蔽位: 中断屏蔽寄存器的中断屏蔽位中断屏蔽寄存器的中断屏蔽位 = 0 允许允许I/O设备请求中断设备请求中断 = 1 禁止禁止I/O设备请求中断设备请求中断 7 6 5 4 3 2 1 0定时器定时器
6、键键 盘盘 打印机打印机中断屏蔽寄存器中断屏蔽寄存器21H8259A中断的条件(中断的条件(从外设发出中断请求到从外设发出中断请求到CPU响应中断,有两响应中断,有两个控制条件起决定性作用个控制条件起决定性作用):):IN AL, 21HAND AL,0FDH OUT 21H,ALYour site hereCPU中断过程:中断过程:(1)取中断类型:)取中断类型:CPU type N(2)保护现场:)保护现场:FLAGS、CS、IP入栈入栈(3)IF=0 (关中断关中断), TF=0(禁止单步中断)(禁止单步中断)(4)计算中断向量地址,取中断向量)计算中断向量地址,取中断向量:(:(4N)
7、 IP (4N2) CS(5)转中断处理程序转中断处理程序 以上步骤都由硬件完成。采用向量中断的方法,大大加快了以上步骤都由硬件完成。采用向量中断的方法,大大加快了中断处理的速度。因为计算机可直接通过中断向量表转向相应中断处理的速度。因为计算机可直接通过中断向量表转向相应的处理程序,而不需要的处理程序,而不需要CPU去逐个检测和确定中断原因。去逐个检测和确定中断原因。Your site here int指令v 格式:格式: int n ;n为中断类型码。为中断类型码。v 功能:是引发功能:是引发n号中断过程。号中断过程。v CPU 执行执行int n过程如下:过程如下:n(1)取中断类型码)取
8、中断类型码n;n(2)标志寄存器入栈,)标志寄存器入栈,IF = 0,TF = 0;n(3)CS、IP入栈;入栈;n(4)(IP) = (n*4),(CS) = (n*4+2)。v 从此处转去执行从此处转去执行n号中断的中断处理程序。号中断的中断处理程序。Your site hereIRET指令指令v 可见,可见,int 指令的最终功能和指令的最终功能和call指令相似,都是调用一段程序。指令相似,都是调用一段程序。一般情况下,系统将一些具有一定功能的子程序,以中断处理程一般情况下,系统将一些具有一定功能的子程序,以中断处理程序的方式提供给应用程序调用。序的方式提供给应用程序调用。v 我们在编
9、程的时候,可以用我们在编程的时候,可以用int指令调用指令调用这些子程序,而在子程这些子程序,而在子程序中安排序中安排iret指令返回指令返回。我们将这样的中断处理子程序简称为中。我们将这样的中断处理子程序简称为中断例程。断例程。v Iret指令的执行过程相当于:指令的执行过程相当于: pop ip pop cs pop flagsYour site hereBIOS和和DOS中断例程的安装过程中断例程的安装过程v (1) 开机后,开机后,CPU 一加电,初始化一加电,初始化(CS)=0FFFFH,(IP)=0,自动从,自动从FFFF:0单元开单元开始执行程序。始执行程序。FFFF:0处有一条
10、转跳指令,处有一条转跳指令,CPU执行执行该指令后,转去执行该指令后,转去执行BIOS中的硬件系统检测和初始化中的硬件系统检测和初始化程序。程序。v (2)初始化程序将建立)初始化程序将建立BIOS 所支持的中断向量,即所支持的中断向量,即将将BIOS提供的中断例程的入口地址登记在中断向量表提供的中断例程的入口地址登记在中断向量表中。中。v (3) 硬件系统检测和初始化完成后,调用硬件系统检测和初始化完成后,调用int 19h进行操作系统的引导。从此将计算机交由进行操作系统的引导。从此将计算机交由DOS操作系操作系统控制。统控制。v (4)DOS 启动后,除完成其它工作外,还将它所提启动后,除
11、完成其它工作外,还将它所提供的中断例程装入内存,并建立相应的中断向量。供的中断例程装入内存,并建立相应的中断向量。Your site here中断例程调用方法中断例程调用方法设置入口参数设置入口参数在在AH设置功能号设置功能号m执行中断指令执行中断指令INT N分析、应用出口参数分析、应用出口参数n一般来说,中断例程中一般来说,中断例程中包含多个子程序,内部包含多个子程序,内部用用AH传递子程序的编号传递子程序的编号来决定执行哪个子程序。来决定执行哪个子程序。Your site here例:例:DOS功能调用:功能调用:int 21h 中断例程是中断例程是DOS提供的中断例程,提供的中断例程,
12、其中包含了其中包含了DOS提供给程序员在编程时调用的子程序。提供给程序员在编程时调用的子程序。 ;-键盘输入一个字符键盘输入一个字符MOV AH, 01 ; ;设置功能号设置功能号:键盘输入键盘输入 INT 21H ; ;DOS功能调用功能调用MOV CHAR, AL ; ;返回参数返回参数: (AL)=字符字符ASCII码码 ;-显示输出一个字符显示输出一个字符MOV DL, A ; ;调用参数调用参数: 待待输出字符的输出字符的ASCII码码MOV AH, 02; DOS功能号功能号: 显示输出显示输出INT 21H; DOS调用调用中断例程调用举例中断例程调用举例mov ah,4ch ;
13、调用第调用第21h号中断例程的号中断例程的 4ch号子程序号子程序 mov al,0 ;提供返回值作为参数提供返回值作为参数int 21hYour site here与与子程序调用子程序调用的比较的比较 主程序主程序 CALL SUBP 子程序子程序 RETDOS/BIOS调用调用 源程序源程序 INT n DOS/BIOS 例行程序例行程序 IRETYour site here(1) BIOS键盘中断键盘中断 ( ) AH 功能功能 返回参数返回参数 0 从键盘读一字符从键盘读一字符 AL=字符码,字符码,AH=扫描码扫描码 1 读键盘状态并读键盘状态并 如按下如按下ZF=0,AL=字符码,
14、字符码,AH=扫描码扫描码 检查是否有字符输入检查是否有字符输入 否则否则ZF=1,缓冲区空缓冲区空 v 比如指令序列:比如指令序列: v MOV AH, 0 INT 16H ;等待按键输入然后取得扫描码和字符码等待按键输入然后取得扫描码和字符码 MOV BX,AX ;用用BX传递参数传递参数 CALL BINIHEX ;调用子程序将调用子程序将BX转转16进制并显示进制并显示Your site here(2)DOS键盘中断键盘中断 ( ) 功功 能能 调用参数调用参数 返回参数返回参数 从键盘输入一个字符并回显在屏幕上从键盘输入一个字符并回显在屏幕上 AL=字符字符 读键盘字符,不回显读键盘
15、字符,不回显 DL= 0FFH 若有字符可取,若有字符可取,AL=字符,字符,ZF=0 若无字符可取,若无字符可取,AL=0,ZF=1 从键盘输入一个字符,不回显从键盘输入一个字符,不回显 AL=字符字符 从键盘输入一个字符,不回显,从键盘输入一个字符,不回显, AL=字符字符 检测检测Ctrl-Break 输入字符到缓冲区输入字符到缓冲区 DS:DX = 缓冲区首址缓冲区首址 (DX+1)=实际输入字符数实际输入字符数 B 检验键盘检验键盘 状态状态 AL=0 有输入有输入 AL=FF 无输入无输入 Your site here例:检测键盘输入的字符是否为回车键例:检测键盘输入的字符是否为回
16、车键Wait_here: mov ah,7 int 21h ;等待输入等待输入 cmp al,0dh ;比较判断比较判断 jne wait-here例:某程序在执行过程中检测是否有键盘输入例:某程序在执行过程中检测是否有键盘输入Sounder: mov ah,0bh int 21h ;读键盘状态 inc al ;AL=FF无输入,A=00有输入 jnz sounder ;AL不等于0无键入 retYour site here例例: : 输入字符串到缓冲区输入字符串到缓冲区STRINGSTRING MAXLEN DB 32 ACTLEN DB ? STRING DB 32 DUP(?)CODE
17、SEGMENTLEADX,MAXLENMOVAH,INT21HCODE ENDS ENDMAXLENACTLENSTRING32568H61H70H70H79H0DHMAXLEN DB 32 ,0, 32 DUP(?)MAXLEN DB 32 ,33 DUP(?)输入输入happyDOS键盘中断键盘中断 0AH功能号功能号Your site here 若若(DS:DX)字节单元的值为字节单元的值为0,则不等待从键盘输入,结束调,则不等待从键盘输入,结束调用。用。 若若(DS:DX) 字节单元的内容大于字节单元的内容大于0,则等待从键盘输入,则等待从键盘输入, 并把输入键的并把输入键的ASCII
18、码顺序存放在码顺序存放在DS : DX+2开始的单元,开始的单元, 按回车键表示结束输入。按回车键表示结束输入。 当按下键的个数超过当按下键的个数超过( DS : DX )中值,发出警告声中值,发出警告声 嘟嘟嘟嘟 , 不再接收输入的数据不再接收输入的数据, 直到输入回车键。直到输入回车键。 将实际输入的字符个数将实际输入的字符个数(不包括回车键不包括回车键)填入填入(DS:DX+1), 结束调用。结束调用。DS:DX00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000AH功能执行过程功能执行过程:Your site here 输入的字符均带回显,且
19、光标随字符移动。当输入回车符输入的字符均带回显,且光标随字符移动。当输入回车符结束时,也回显回车符。表现为功能调用结束后,光标回到结束时,也回显回车符。表现为功能调用结束后,光标回到了行首。了行首。 回车符回车符0DH作为一个输入的字符存放在字符串尾,但计算作为一个输入的字符存放在字符串尾,但计算输入个数时,不包括回车键。输入个数时,不包括回车键。 实际最多能输入的字符数实际最多能输入的字符数 = 限制的最多数限制的最多数- -1 (回车符占一个)(回车符占一个) 执行完执行完0AH功能后,功能后,DS和和DX的值不变,的值不变, DS:DX仍指向缓仍指向缓冲区的首地址。冲区的首地址。 整个缓
20、冲区的大小应为整个缓冲区的大小应为:限制的最多数限制的最多数 +2 max DB 11, ? , 11 dup (?)缓冲区必须定义为缓冲区必须定义为字节类型字节类型,不能定义为字类型。,不能定义为字类型。0AH功能注意事项:功能注意事项:Your site here(3) DOS显示功能调用中断显示功能调用中断 AH 功功 能能 调调 用用 参参 数数 2 显示一个字符显示一个字符(检验检验Ctrl-Break) DL = 字符字符 光标跟随字符移动光标跟随字符移动 6 显示一个字符显示一个字符(不检验不检验Ctrl-Break) DL = 字符字符 光标跟随字符移动光标跟随字符移动 9 显
21、示字符串显示字符串 DS:DX=串地址串地址 , 光标跟随串移动光标跟随串移动Your site here MESSAGE DB The sort operation is finished.,13,10,$ Print macro str_addr push dx push axmov dx,offset str_addr mov ah,09 int 21h pop ax pop dx endm 例:显示字符串例:显示字符串Your site here1设置显示方式设置显示方式入口参数入口参数 AL = 显示方式值显示方式值 00 4025 黑白文本方式黑白文本方式 01 4025 彩色文本
22、方式彩色文本方式 02 8025 黑白文本方式黑白文本方式 03 8025 彩色文本方式彩色文本方式 04 320320 彩色图形方式彩色图形方式 功能号功能号 AH = 00H类型号类型号 10H出口参数出口参数 无无 实现功能实现功能 将显示方式设置为指定的形式将显示方式设置为指定的形式例:例: 将显示方式设置为将显示方式设置为 2580彩色文本方式彩色文本方式 MOV AL, 03H MOV AH, 00 INT 10H (3) BIOS显示中断显示中断 INT 10H功能号功能号 AH=0,1, 2, 3, 5, 6, 7, 8, 9, 0AH, 0EH 13H默认方式为默认方式为03
23、Your site here Int 10h的的功能功能01:设置光标大小。光标行的开始和结束数据:设置光标大小。光标行的开始和结束数据分别放在分别放在ch和和cl的低的低4位(位(03位光标的大小),位光标的大小),ch的的4位为位为0显显现光标,为现光标,为1则关闭光标。光标只在文本方式中出现,在图形方式下则关闭光标。光标只在文本方式中出现,在图形方式下光标消失。光标消失。 Int 10h的的功能功能02:设置光标位置。:设置光标位置。Dh和和dl寄存器中为光标寄存器中为光标位置的行列号,位置的行列号,bh中为页号(单色显示器页号为中为页号(单色显示器页号为0 )。)。例:例: mov c
24、h,5 movcl,7 movah,1 int 10h mov dh,4 mov dl,5 mov bh,0 mov ah,2 int 10h设置光标的大小,光标开始行为设置光标的大小,光标开始行为5,结束行为结束行为7。计算机有专门的硬件。计算机有专门的硬件控制光标的显示大小、位置。控制光标的显示大小、位置。设置光标的位置,光标在设置光标的位置,光标在第第5行第行第6列(列(4,5)。)。2、控制光标、控制光标mov ch,20h mov cl,00h mov ah,1 int 10h;隐藏光标隐藏光标Your site here功能功能03 :bh中指定页号。把光标位置的行号回送给中指定页号。把光标位置的行号回送给dh,列号回送给列号回送给dl,光标大小的参数填入光标大小的参数填入ch和和cl 。 mov ah,3 mov bh,0 int 10h ;返回参数返回参数dh:dl=行:列行:列4、选择显示页、选择显示页功能功能05:由程序确定显存中的显示区域
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 模具材料选择的认证考试试题及答案
- 2025年中国制动器底板总成市场调查研究报告
- 2025年中国内阻测试仪市场调查研究报告
- 模具设计的可持续发展思路试题与答案
- 2024游泳救生员考试的全程试题及答案
- 足球裁判员考试知识体系试题及答案
- 体育经纪人从业必读试题及答案
- 2024年农作物产业结构调整试题及答案
- 2024年篮球裁判员社会地位解读试题及答案
- 模具设计师资格考试的行业应用与试题答案
- 2025年江苏省南京市中考《二次函数综合》专题复习讲义
- 采油工程 试题及答案
- 西医临床基因组学应用试题及答案
- 桥梁工程施工检验测试计划
- 内河船客运培训课件
- 淘宝商家押金协议书
- 2023-2029年中国鸡尾酒行业市场运行态势及投资战略规划报告
- 血液检验 3.2017-正常骨髓细胞形态学-陈学东-20170515173650 学习资料
- 2024年记者证考试挑战试题及答案
- 2025年生猪屠宰兽医卫生检疫人员考试题(附答案)
- 贵州省赫章县野马川镇初级中学-红色精神张桂梅【课件】
评论
0/150
提交评论