好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

IBM-PC汇编语言BIOS和DOS中断调用程序设计..ppt

89页
  • 卖家[上传人]:龙***
  • 文档编号:57610574
  • 上传时间:2018-10-23
  • 文档格式:PPT
  • 文档大小:333.50KB
  • / 89 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第9章 BIOS和DOS中断调用程序设计,9.1 键盘输入中断调用 9.2 显示器输出中断调用,开 始,DOS中断和BIOS中断,在存储器系统中,内存从0FE000H高端8K的ROM中存放有基本输入输出系统(Basic Input/Output System,BIOS)例行程序BIOS给PC系列的不同微处理器提供了兼容的系统加电自检、引导装入、主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断使用BIOS功能调用,给程序员编程带来极大方便程序员不必了解硬件的具体细节,可直接使用指令设置参数,并中断调用BIOS例行程序,所以利用BIOS功能调用编写的程序简洁,可读性好,而且易于移植,磁盘操作系统(Disk Operating System)是PC机上最重要的操作系统,它是由软盘或硬盘提供的它的两个DOS模块IBMBIO.COM和IBMDOS.COM使BIOS使用起来更方便因为DOS模块提供了更多更必要的测试,使用DOS操作比使用相应功能的BIOS操作更简易,而且DOS对硬件的依赖性更少些DOS模块和ROM BIOS的关系如下图所示DOS中断和BIOS中断使用方法,DOS功能调用与BIOS功能都通过软件中断调用。

      在中断调用前需要把功能号装入AH寄存器,把子功能号装入AL寄存器,除此之外,还需要在CPU的寄存器中提供专门的调用参数一般来说,调用DOS或BIOS功能时,有以下几个步骤:(1)将调用参数装入指定的寄存器 (2)如需功能调用号,把它装入AH (3)如需子功能调用号,把它装入AL (4)按中断号调用DOS或BIOS (5)检查返回参数是否正确表9.1 BIOS中断类型,地址(Hex) 类型码 中断名称0—3 0 除以04—7 1 单步8—B 2 非屏蔽C—F 3 断点10—13 4 溢出14—17 5 打印屏幕18—1B 6 保留1D—1F 7 保留20—23 8 定时器24—27 9 键盘28—2B A 保留的硬中断2C—2F B 异步通信(COM2)30—33 C 异步通信(COM1)34—37 D 硬盘38—3B E 软盘3C—3F F 并行打印机,地址(Hex) 类型码 中断名称 40—43 10 视频显示I/O调用 44—47 11 设备检测调用 48—4B 12 存储器容量检测 4C—4F 13 软/硬盘I/O调用 50—53 14 通信I/O调用 54—57 15 盒式磁带I/O调用 58—5B 16 键盘I/O调用 5C—5F 17 打印机I/O调用 60—63 18 ROM BASIC 64—67 19 引导程序入口 68—6B 1A 时间调用 6C—6F 1B 键盘CTRL-BREAK控制 70—73 1C 定时器报时 74—77 1D 显示器参数表 78—7B 1E 软盘参数表,,,,,,,,,,,,,,,,,,,,,,,7C—7F 1F 字符点阵结构参数表,BIOS中断向量,表9.2 DOS中断类型,9.1 键盘输入中断调用,9.1.1 ASCII与扫描码 9.1.2 BIOS键盘中断 9.1.3 DOS中断调用,9.1.1 ASCII与扫描码,键盘是计算机最基本的一种输入设备,用来输入信息,以达到人机对话的目的。

      键盘主要由3种基本类型的键组成:(1)字符数字键: (2)扩展功能键:如Home、End、Backspace、Delete、Insert、PgUp、PgDown以及功能键F1~F10 (3)和其他键组合使用的控制键:如Alt,Ctrl,Shift等,键盘和主机通过5芯电缆相连,这5根线分别是电源线、地线、复位线以及键盘数据线和键盘时钟线PC机系列的键盘触点电路按16行×8列的矩阵来排列,用单片机Intel8048来控制对键盘的扫描按键的识别采用行列扫描法,即根据对行线和列线的扫描结果来确定闭合键的位置,这个位置值称为按键的扫描码,通过数据线将8位扫描码送往主机当在键盘上“按下”或“放开”一个键时,如果键盘中断是允许的(21H端口的第一位等于0),就会产生一个类型9的中断,并转入到BIOS的键盘中断处理程序该处理程序从8255可编程外围接口芯片的输入端口读取一个字节,这个字节的低7位是按键的扫描码最高位为0或者为1,分别表示键是“按下”状态还是“放开”状态按下时,取得的字节称为通码,放开时取得的字节称为断码如ESC键按下取得的通码为01H(00000001B),放开ESC键时会产生一个断码81H(10000001B)。

      BIOS键盘处理程序将取得的扫描码转换成相应的字符码,大部分的字符码是一个标准的ASCII码;没有相应ASCII的键,如Alt和功能键(F1~F10),字符码为0;还有一些非ASCII码键产生一个指定的操作键盘缓冲区键盘缓冲区是一个先进先出的环形队列,其所占内存区域如下:,键盘缓冲区是一个环形队列,其性质与《数据结构》课程中对“环形队列”所描述的性质完全一致虽然缓冲区的本身长度为16个字,但出于判断“对列满”的考虑,它最多只能保存15个键盘信息当缓冲区满时,系统将不再接受按键信息,而会发出“嘟”的声音,以示要暂缓按键当KBHead=KBTail时,表示无键盘输入KBHead DW ? ;其内存地址为0000:041AH,缓冲区头指针 KBTail DW ? ;其内存地址为0000:041CH,缓冲区尾指针 KBBuff DW 16 DUP(?) ;其内存地址为0000:041EH,该缓冲区的缺省长度为16个字,9.1.2 BIOS键盘中断,类型 16H 的中断提供了基本的键盘操作,它的中断处理程序包括3个不同的功能,分别根据AH寄存器中的子功能号来确定。

      1)AH=0 本功能为从键盘读字符到AL寄存器中AL=字符码,AH=扫描码)(2)AH=1 本功能为读键盘缓冲区字符到AL寄存器中,并置ZF标志位若ZF=0,则AL=字符码,AH=扫描码, ZF=1,缓冲区空)(3)AH=2 本功能为读取特殊功能键的状态AL=键盘状态字节),code segmentassume cs:codemov ah, 0int 16hmov ah, 4chint 21hcode ends end,从键盘读字符,在计算机键盘上除了可输入各种字符(字母、数字和符号等)的按键之外,还有一些功能键(如:F1、F2、…等)、控制键(如:Ctrl、Alt、Shift等)、双态键(如:Num Lock、Caps Lock等)和特殊请求键(如:Print Screen、Scroll Lock等) 键盘中的控制键和双态键是非打印按键,它们是起控制或转换作用的当使用者按下控制键或双态键时,系统要记住其所按下的按键为此,在计算机系统中,特意安排的一个字来标志这些按键的状态,我们称该字为键盘状态字键盘状态字的各位含义如图所示键盘状态字,code segmentassume cs:codemov ah, 2int 16hmov ah, 4chint 21hcode ends end,读取特殊功能键的状态,9.1.3 DOS键盘功能调用(INT 21H),无,get_key:mov ah, 1int 21hcmp al , ’y’je yescmp al, ’n’je nojne get_key,1)单字符输入 例9—2 接收键盘输入并对其进行测试。

      wait_here: mov ah, 7int 21hcmp al, 0dhjne wait_here,例9—3 检测键盘输入的字符是否是回车键code segmentassume cs:codemov ah,7int 21hcmp al,0je get_charjmp error get_char_ mov ah,7int 21hcmp al,3bh ;F1je option1cmp al,3ch ;F2je option2mov ah,4chint 21h code ends end,如果程序要求能接收功能键或数字组合键必须进行两次DOS功能调用: 第一次回送00 第二次回送扫描码,例9-4 检测键盘输入的功能键data segmentsmax db 21sact db ?stri db 21 dup(?) data ends code segmentassume cs:code,ds:data Start:mov ax,datamov ds,ax lea dx, strimov ah,0ahint 21hmov ah,4chint 21hcode ends End start,(1) smax db 21sact db ?stri db 21 dup(?)(2) smax db 21db ?db 21 dup(?)(3)smax db 21, ?, 21 dup(?),例9-5 输入字符串程序,2)输入字符串,Int 21的功能0ch能清除键盘缓冲区,然后执行在AL中指定的功能。

      AL中指定的功能可以是1,6,7,8或0AH… mov ah, 0ch mov al, 08hint 21hinc alje exit … Exit:,3)清除键盘缓冲区,例 编写按任意键结束程序的程序段,… mov ah, 0bhint 21hinc alje exit … Exit:,4)检验键盘状态,显示器可以简单的分为单色显示器和彩色显示器随着显示技术的发展,种类也更加丰富,常见的有阴极摄像管(CRT)、液晶显示器、等离子显示器等 显示器是通过显卡与主机相连显示器的显示屏通常称之为屏幕,现在常用的显示器有14“和17“,常用的显示分辨率为800×600或1024×768等常用的显示卡类型为VGA、SVGA、EVGA和TVGA等,显示卡上也都带有大量的显示存储器,能快速显示精美的图象 1.MDAMDA(Monochrome Display Adapter )属于单色显示适配器,是IBM最早研制的视频显示适配器 2.CGA在MDA推出的同时,IBM也推出了彩色图形显示适配器──CGA(Color Graphics Adapter)。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.