《《微机原理与接口技术》PPT电子课件教案- 第五章 汇编语言程序设计(3)》由会员分享,可在线阅读,更多相关《《微机原理与接口技术》PPT电子课件教案- 第五章 汇编语言程序设计(3)(67页珍藏版)》请在金锄头文库上搜索。
1、1,第五节 BIOS和DOS中断功能调用 (教材旧P238、新P239)一、概述 1. BIOS和DOS中断子程层次特点 2. 中断类型分类 3. 调用方法二、BIOS功能调用 1设置显示方式 ( 10H类型,00H功能 ) 2置光标位置 ( 10H类型,02H功能 ) 3清屏、清窗口 ( 10H类型,06H或07H功能 )三、 DOS系统功能调用 ( 21H类型中断调用 ) 1显示单字符 ( 02H功能 ) 2显示字符串 ( 09H功能 ) 3单字符输入 ( 01H、07H、08H功能 ) 4字符串输入 ( 0AH功能 ) 5检测键盘状态( 0BH功能 ) 6保存中断向量 ( 35H功能 )
2、 (第六章介绍) 7设置中断向量 ( 25H功能 ),2,3,第五节 BIOS和DOS中断功能调用(教材旧P238、新P239)一、概述 二、BIOS功能调用三、 DOS系统功能调用 ( 21H类型中断调用 ),4,一、概述 1BIOS 和 DOS 中断子程层次特点 2. 中断类型分类 3. 调用方法,5,1BIOS和DOS中断子程层次特点,6,层次特点:ROM BIOS中的中断子程使用IN/OUT指令直接控制外设,实现与外设之间的输入/输出操作,以软件形式向其上层提供服务。IO.SYS中的中断子程 ( 称基本输入/输出BIOS模块)调用ROM BIOS的基本I/O功能,向 MSDOS.SYS
3、提供设备驱动服务。,7,MSDOS.SYS中的中断子程 ( 称DOS内核模块 ) 调用IO.SYS,实现对外设的控制。 与标准外设有两层隔离 : IO.SYS和ROM BIOS。其中: 21H类型的中断子程 提供了丰富的系统服务, 称21类型的中断调用 为DOS系统(功能)调用。,8,用户编程原则 尽可能使用DOS的系统功能调用,提高程序可移植性。 在DOS功能不能实现情况下,考虑用BIOS功能调用。 在DOS和BIOS的中断子程不能解决问题时,使用IN/OUT指令直接控制硬件。,9,2. 中断类型分类向量表中的中断类型分为七类: 处理CPU特殊操作( 除0、溢出 )的00H、04H类型。 为
4、DEBUG调试程序设置的单步( 01H )、断点( 03H )类型。 处理CPU的NMI引脚信号的02H类型。非屏蔽硬中断子程 处理CPU的INTR引脚信号的080FH类型。可屏蔽类型硬中断子程 用INT指令调用的中断子程 BIOS功能调用(如101AH) DOS功能调用 (如 21H),10,11,中断向量分配表,12,中断向量分配表 ( 续),13,中断向量分配表 ( 续),14,3. 调用方法,15,例1 单字符显示功能调用 MOV DL, A ;设置入口参数 MOV AH, 02H ;设置功能号 INT 21H ;执行中断调用 例2 单字符输入功能调用 MOV AH, 01H ;设置功
5、能号 INT 21H ;执行中断调用 CMP AL, 0DH ;分析、应用出口参数 JZ exit 、,16,二、BIOS功能调用基本输入/输出模块BIOS: 实现对输入/输出设备的控制, 内含0 1CH 等类型中断子程, 包括显示器、磁盘、键盘、打印机等标准外设的驱动程序。(参看中断类型分配表)BIOS功能调用指对BIOS模块中的中断子程的调用。,17,有关显示器 显示器通过显卡(显示适配器)连接到计算机上。 单色显示器只能显示黑白两色。彩色显示器能显示多种颜色。,18, 屏幕上各象素的显示信息,存放在显示缓冲区(显存)中。,19, 显示器有两种显示方式:,图形方式:将屏幕划分为 mn的点阵
6、,在每个点的位置显示象素,一个点是一个象素。,文本方式 将屏幕划分为若干行和列,在每个网格位置上显示象素, 一个字符是一个象素。,20,文本方式 将屏幕划分为 m列和n行 (m n),在每个网格位置上显示象素, 一个字符是一个象素。,21,图形方式: 将屏幕划分为 mn的点阵,在每个点的位置显示象素, 一个点是一个象素。,22,在文本方式下, 对应屏幕上的每个字符, 在显示缓冲区中占用两个单元: 一个存放ASCII码, 一个存放显示属性。,23,24,据显存大小,可存储若干页的字符象素。例 16KB 显存能存储:8025方式,4页( 0 3 ), 802524 =160004025方式,8页(
7、 0 7 ), 402528 =16000,25,26,27,例 清除屏幕显示,将其属性置为反白(白底黑字)显示。MOV AL, 0 ;清屏功能 MOV BH, 70H ;白底黑字 MOV CH, 0 ;左上角 行号 MOV CL, 0 ;左上角 列号 MOV DH, 24 ;右下角 行号 MOV DL, 79 ;右下角 列号 MOV AH, 6 ;功能号 INT 10H ;中断调用,28,29,置光标位置入口参数 DH = 行号DL = 列号BH = 页号功能号 AH= 02H类型号 10H出口参数 无 实现功能 将光标设置在指定的位置,30,例 将光标设置在2行5列的位置 MOV DH,
8、2 MOV DL, 5 MOV BH, 0 MOV AH, 2 INT 10H,31,三、DOS系统功能调用 (21H类型中断调用) 1显示单字符 ( 02H功能 ) 2显示字符串 ( 09H功能 ) 3单字符输入 ( 01H、07H、08H功能 ) 4字符串输入 ( 0AH功能 ) 5检测键盘状态 ( 0BH功能 ) 6保存中断向量 ( 35H功能 ) (第六章介绍) 7设置中断向量 ( 25H功能 ),32,1. 显示单字符 ( 02H功能 )入口参数 DL = 要显示字符的ASCII 码 功能号 AH=02H 类型号 INT 21H 出口参数 无 实现功能 显示指定字符,光标随动。,例
9、显示字符AMOV DL, AMOV AH, 02HINT 21H,33,例 使光标回到下一行的行首。 MOV DL , 0DH ;显示回车符 MOV AH , 02H INT 21H MOV DL , 0AH ;显示换行符 MOV AH , 02H INT 21H,34,2. 显示字符串 ( 09H功能 ) 入口参数 定义要显示的字符串,字符串尾应为$,作为结束显示的标志。DS : DX = 字符串的首地址 功能号 AH = 09 H 类型号 21H 出口参数 无 实现功能 显示字符串,遇 $ 停止显示,光标随动。,35,例 编程显示字符串 Tsinghua University,data S
10、EGMENT ;定义显示的子符串 stri DB Tsinghua University, $ data ENDS code SEGMENTASSUME CS:code, DS:data start: MOV AX, data ;置缓冲区地址于DS:DX MOV DS, AX LEA DX, stri MOV AH, 09H ;调显示功能INT 21HMOV AH, 4CH ;返回DOSINT 21H code ENDS END start,36,有关键盘 键盘通过键盘接口电路与计算机连接。 键盘上的键有三种类型: 字符键 AZ, 09等功能键 F1F12, Page Up等组合控制键 Shi
11、ft, Ctrl, Alt等, 键盘上的每个键都有一个扫描码。 据扫描码可确定操作的是哪个键、是按下键还是释放键; 扫描码用一个字节表示。 低7位是扫描码的数字编码, 与键盘上的键一一对应; 最高位D7位表示键的操作状态: 当按下键时, D7=0 ; 当释放键时, D7=1,37, 键盘中断子程功能(09H类型中断子程) 从键盘接口读取操作键的扫描码; 将扫描码转换成字符码;大部分键的字符码为ASCII码,无ASCII码键(如组合键Shift、Ctrl等)的字符码为0。 将键的扫描码、字符码存放在键盘缓冲区, 供其它有关键盘的中断子程应用。, 键盘接口对按下键和释放键均向计算机发出中断申请,如
12、果中断响应条件满足, CPU转去执行键盘中断子程。键盘中断子程类型号为09H。,38,3. 单字符输入 ( 01H、07H、08H功能) 入口参数 无 功能号 AH = 01H类型号 21H出口参数 AL = 键入字符的ASCII码实现功能 等待从键盘输入一个字符,并在屏幕上回显,光标移动,检测Ctrl-Break键,39,例 利用键盘输入的字符产生分支:MOV AH, 1 ;等待从键盘输入INT 21HCMP AL, Y ;是Y?JZ yesCMP AL, y ;是y? JZ yesno: . . . . . .JMP exityes: . . . . . . exit: . . .,40,
13、例 在中断向量表中查找从键盘输入的字符,并将其个数用二进制形式显示出来。( scanskey.asm),41, 入口参数 无 功能号 AH = 07H 类型号 21H 出口参数 AL = 键入字符的ASCII码 实现功能 等待从键盘输入一个字符, 不在屏幕上回显,不检测Ctrl-Break键,42,例 用不带回显功能输入密码时:input: MOV AH, 07H ;等待从键盘输入INT 21HMOV DI, AL ;存入缓冲区 CMP AL, 0DH ;是回车符?JNZ input ;不是,继续输入check: 、,43,4. 字符串输入 ( 0AH 功能 )入口参数 DS : DX = 缓冲区的首地址( DS :DX ) = 限制最多输入的字符数 功能号 AH = 0AH类型号 21H出口参数 ( DS : DX+1 ) = 实际键入的字符(不含回车符)从( DS : DX+2 )开始顺序存放键入的字符串,回车符0DH为串尾最后一字符。实现功能 等待从键盘输入字符串,并存入设定的缓冲区内,同时回显字符串,光标随着移动,回车符使光标回到行首。 注意事项:应按要求先定义缓冲区,再调用。,