BIOS与DOS中断书.ppt
《BIOS与DOS中断书.ppt》由会员分享,可在线阅读,更多相关《BIOS与DOS中断书.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九章BIOS和DOS中断9.1键盘I/O9.2显示器9.3打印机I/O第九章BIOS和DOS中断在在存存储储器器系系统统中中,从从地地址址OFE000H开开始始的的8KROM(只只读读存存储储器器)中中装装有有BIOS(BASICInput/outputSystem)例行程序。例行程序。驻驻留留在在ROM中中的的BIOS提提供供了了系系统统加加电电自自栓栓,引引导导装装入入,主主要要I/o设设备备的的处处理理程程序序及及接接口口控控制制等等功功能能模模块块来来处处理所有的系统中断。理所有的系统中断。BIOS功功能能调调用用:可可不不引引解解硬硬件件I/o接接口口特特性性直直接接用用指指令置参
2、政,再调可读性个,易子移植。令置参政,再调可读性个,易子移植。DOS:磁盘操作系统,由软盘或硬盘提供。:磁盘操作系统,由软盘或硬盘提供。两模块:两模块:IBMBIO,COMIBMDOS,COM使使BIOS用起来更方便用起来更方便DOS提供了更多的测试提供了更多的测试DOS比相应功能的比相应功能的BIOS更易操作对硬件的依赖性更少更易操作对硬件的依赖性更少。IBM BIO COM:输入/输出设备处理程序它提供了DOS到ROMBIOS的低级接口完成,外设数据读入写出内存数据IBMDOSCOM包括一个文件管理程序积一些处理程序在DOS下运行的程序可以调用这些处理程序为了完成DOS功能调用,IBMDO
3、SCOM把信息传送给IBMDOSCOM,形成一个或多个BIOS调用。同样的功能既能选择DOS,也能选择BIOS但BIOS更靠近硬件,DOS能处理大多数的I/o用户高级低级ROM但BIOS更靠近硬件,DOS能处理大多数的I/o表9.1BIOS中断类型表9.2对对I/I/O的程序请求DOSDOSIBMDOS.COMIBMDOS.COMDOSDOSIBMBIO.COMIBMBIO.COMBIOSBIOS外设外设9.1键盘I/O键盘提供了三种基本类型的健:键盘提供了三种基本类型的健:字符键:如字母字符键:如字母A-8,数字,数字0-9,%$#等等2扩扩展展功功能能键键:如如Home、End、Retur
4、n、Del、Ins、Pgup、Pgdn3控制键和其它键组合使用,如控制键和其它键组合使用,如Alt、Crtl、Shift字符键给计算机传送一个字符键给计算机传送一个ASLII码字符码字符扩展功能键产生一个动作,扩展功能键产生一个动作,DEL删除一个字符。删除一个字符。控制键能改变其它键所产生的字符码控制键能改变其它键所产生的字符码Ctrl-c1、字符码与扫描码字符码与扫描码按按下下“或或”放放开开一一个个键键时时,产产生生一一个个类类型型“9”的的中中并并转转BIO的的键键盘盘中中断断处处理理程程序序。该该处处理理程程序序从从8255可可编编程程序序处处围围接接口口芯芯的的输输入入端端口口60
5、H读读取取一一个个字字节节,这这个个字字节节的的低低7位位是键的扫描码。是键的扫描码。最最高高位位为为0或或为为1,分分别别表表示示键键是是“按按下下”状状还还是是“放放开开”状态。状态。最最高高位位为为0或或为为1,分分别别表表示示键键是是“按按下下”状状还还是是“放放开开”状态。通码:接下时取得的字节。状态。通码:接下时取得的字节。OH断码:放开时取得的字节。断码:放开时取得的字节。81H表表9.3是键盘上每个键对应的扫描码是键盘上每个键对应的扫描码BIOS键键盘盘处处理理程程序序将将取取得得的的扫扫描描码码转转换换成成相相应应的的字字符符码码,大部分键的字符码是一个标准的大部分键的字符码
6、是一个标准的ASCZZ码码无无ASCZZ的键的键(F1-F10)字符码为字符码为0转转换换成成的的写写符符码码及及扫扫描描码码存存储储在在ROMBIOS数数据据区区的的键键盘盘缓冲区缓冲区0040:001ABVFFHEADDW?缓冲区首未?缓冲区首未0040:001CBVFFTAILDW?缓冲区末?缓冲区末0040:001EKBBVFEERDW?16DOP0040:003EKBBOFFERENDLABELWORD16个输入量填空个输入量填空当当CPU想想要要得得到到键键盘盘输输入入时时,就就调调用用BIOS键键盘盘例例行行程程序序,它按其接收时的次序从缓冲区取字符和扫描码回送它按其接收时的次序
7、从缓冲区取字符和扫描码回送CPU。1、BIOS键盘中断键盘中断类型类型16(键盘键盘)中断提供了键盘的中断提供了键盘的3种操作种操作AH=0从健盘读一字符从健盘读一字符AH、AL扫描码字符石扫描码字符石=1读健盘缓冲区的字符读健盘缓冲区的字符=2取状态字节取状态字节(AL)无无字字节节高高4位位“键键盘盘方方式式”(Ens、Capslock、Nomlock、Scroll)低低4位表示位表示Alt、Ctrl、Shift是否按动是否按动例:取键盘状态,使例:取键盘状态,使AH=02H,INT16H2、DOS键盘功能调用,见表键盘功能调用,见表9.5(1)单字符输入单字符输入DOS21H中中断断功功
8、能能1.7和和8都都能能从从键键盘盘读读一一字字符符送送入入AL寄存器。寄存器。AH=1:将将字字符符显显示示出出来来,并并检检验验是是否否按按下下了了Ctrl-Break如果按下了如果按下了Ctrl-B,就自动调用中断,就自动调用中断23H并结束程序并结束程序AH=7不能回打字符或检验不能回打字符或检验Ctrl-BAH=OA输入字符到缓冲区输入字符到缓冲区1、交互式程序中对提示人数出应答交互式程序中对提示人数出应答Getkey:movAHInt21hCmpal,yJeyes输入是否为输入是否为“Y”,是则车不是则再等待输入,是则车不是则再等待输入2、或看是否按回车或看是否按回车Enter,A
9、sczz=ODHWait:MOVAH,7Int21hCmpal,ODHIneWait差别是差别是“AH=7”,按下的键不显示,按下的键不显示3、如如要要求求序序能能接接收收功功能能键键或或数数字字组组合合键键,则则必必须须进进行行两两次次DOS调用调用第一次回送第一次回送00第二次回送扫描码第二次回送扫描码例例:程程序序显显示示出出一一个个菜菜单单,要要求求用用户户通通过过键键入入F1,F2或或F3来选择来选择1、2、3项,接收某则产生错误。项,接收某则产生错误。Movah,07h;键盘接收不回显;键盘接收不回显int21hcmpal,o;是功能键吗?是则查看扫描码,否则出错;是功能键吗?是则
10、查看扫描码,否则出错Jmpenorgetec:movah,07hint21hcmpal,3BHjeOption1;是则完成是则完成Option1下的程序下的程序cmpal,3ch;F2?JeOption2Cmpal,3Dh;F3?JeOption3Jmperror(1)输入字符串输入字符串“21H”中中断断的的功功能能“AH=0AH”能能从从键键盘盘读读入入一一串串字字符符并并把把它存入用户定义的缓冲区中。它存入用户定义的缓冲区中。缓缓冲冲区区的的第第一一个个字字节节保保存存最最大大字字符符数数,由由用用户户给给出出最最大大字字符符串串第二个字节是实际输入字符的个由事第二个字节是实际输入字符的
11、个由事-由由“OAH”填入填入第第三三个个字字节节是是开开始始存存入入字字符符串串,-接接字字节节存存入入缓缓冲冲区区最最后后一一个字节为回车符个字节为回车符ODH缓冲区的最大室间为缓冲区的最大室间为=最大字符帐最大字符帐+2(回车也是一个字符回车也是一个字符)例如:在数据区定义的字符缓冲区如下:例如:在数据区定义的字符缓冲区如下:MaxcenDB32AetionDB?StringDB32dup(?)输入字符串的指令如下:输入字符串的指令如下:leadx,maslenmovah,OAHint21h键入键入BybrooksCeaping将将实实际际字字符符数数放放入入CX寄寄存存器器,并并把把指
12、指针针DX:DX指指向向字字符符串串的第一个字符。的第一个字符。(2)清除字符键盘缓冲区清除字符键盘缓冲区从从键键盘盘输输入入字字符符实实际际上上先先放放在在一一个个16个个字字节节的的键键盘盘缓缓冲冲区区内内功功能能1.7.8和和OAH实际上是从键盘缓冲区取得字符实际上是从键盘缓冲区取得字符当当(AH)=OCH时,时,(清除键盘缓冲区,然后执行清除键盘缓冲区,然后执行(AL)中指定的功能中指定的功能使用使用OCH使程序在输入一个字符之间将以前键入的字符清除使程序在输入一个字符之间将以前键入的字符清除MOVAH,OCH;清缓;清缓KB-BVFFERMOVAL,OCH;接收字符不回显,但要检测;
13、接收字符不回显,但要检测Ctrl-BreakINT21h(1)检验键盘状态:检验键盘状态:AH=0BH,INT21HAH=0BH;能能检检验验一一个个键键是是否否被被按按动动,如如接接下下一一个个键键,则则在在AL中中存存入入OFFH,如如没没有有按按下下键键,则则(AL)=00,无无论论哪哪种情况都将继续执行程序的下一条指令。种情况都将继续执行程序的下一条指令。例例:程程序序运运行行,同同时时又又检检测测键键盘盘,看看用用户户是是否否接接下下任任意意一一个键来终止程序或退出循环。个键来终止程序或退出循环。Sounder:Movat,ObtInt21hIncalJneSdunderRet不为不
14、为0则无健按下,继续循环则无健按下,继续循环al=oo+1,则无键按下则无键按下al=oFFH时,按下,则时,按下,则OFFH1009.2显示器I/0显显示示器器可可以以通通过过两两种种适适配配器器权权连连接接到到PC单单元元显显示示和和并并行打印机通配器连接行打印机通配器连接IBM单色显示器和并行打印机。单色显示器和并行打印机。彩色彩色/图形监视器适配器连接监视器或标的电视机。图形监视器适配器连接监视器或标的电视机。单单行行适适配配器器只只能能显显示示字字符符,只只能能用用于于黑黑白白显显示示字字符符由由标标准准字字线线、数数字字和和符符号号组组成成,加加上上一一此此简简单单的的图图形形,如
15、如菱菱形形、矩形及笑脸等。矩形及笑脸等。显显示示器器的的屏屏幕幕被被划划分分成成80列列*25行行适适配配器器就就是是在在这这个个2000个个网网格格位位置置上上显显示示字字符符,屏屏幕幕上上的的每每个个网网格格位位置置也也称称为一个为一个“象素象素”。对对应应屏屏幕幕上上的的每每个个象象素素,存存储储器器中中都都有有一一个个相相应应单单元元,因因此我们说屏幕是存储器映象的。此我们说屏幕是存储器映象的。这这种种存存储储器器映映象象使使显显示示电电路路很很容容易易知知道道哪哪个个单单元元的的内内容容对对应幕屏上哪个应幕屏上哪个屏幕上屏幕上行:行:0-24列:列:0-791、属性:属性:单单色色显
16、显示示屏屏幕幕上上的的每每个个字字符符在在存存储储器器中中由由两两个个字字节节表表示示,一一个个字字节节保保存存字字符符的的ASCZZ码码,另另一一个个字字节节保保存存字字符符的的属性。属性。属性:确定每个要显示字符的特性属性:确定每个要显示字符的特性0正常显示正常显示0正常亮度正常亮度1闪烁显示闪烁显示1加强亮度加强亮度属性可以有不同的组合,正常显示为黑底白字属性可以有不同的组合,正常显示为黑底白字=07=0000011反反相相显显示示即即白白底底黑黑字字,当当属属性性相相同同时时,有有可可能能显显示示不不出出来来(00H)不同的显示方式不同的显示方式单色屏幕有单色屏幕有2000d个字符个字
17、符=25*80位置位置每个字符需要两个字节表示每个字符需要两个字节表示单色显示器存储器容量单色显示器存储器容量=4K字节字节单色显示器存储器它排在段地址单色显示器存储器它排在段地址=B000H的区域的区域偏移地址从偏移地址从0到到0F9FH=(3999)图图9.8存储器在屏幕上的对应关系存储器在屏幕上的对应关系对对应应屏屏幕幕上上的的每每个个字字符符位位置置,主主存存空空间间都都有有相相应应的的存存储储单单元元之之对对应应,称称为为显显示示存存储储区区,每每个个字字符符由由连连续续两两个个字字节节表表示:字符的示:字符的ASCII码码字符的属性字符的属性屏幕上可有2000个字符=25*80列(
18、文本方式)=显存空量4KB如果显存有16KB,则可保存4屏幕字符数指称为4页,屏幕上某一字符在1、BIOS显示中断表9.6列出了中断类型10H的部分显示操作及所用的寄存器。(1)控制光标:下划线/方块符AH=01光标不是ASCI字符表中的字符,光标由硬件利用INT10H的功能“AH=0IH”。使光标显现或关闭,且控制光标的大小。光标的大小:控制光标行的开始和结束的数据,放在CH和CL的低4位(0-3)当CH的符4位=1标不显现出来0光标能显现出来单显光标大小范围从0-13(2)当AH=2时,设置光标位置DH=行号、DL=列号、BH=页号单显时,页号BH=0例例1:置光标开始行为:置光标开始行为
19、5,结束行为,结束行为7并把它设置在第并把它设置在第5行第行第6列列movDH,4;5行行(0,1,2,3,4,)第第5行行movDL,5;6列,列,(0,1,2,3,4,5)movBH,o;页号页号BH为为0movAH,2;置光标位置置光标位置INTIOHMOVCH,5开始行开始行MOVCL,7结束行结束行MOVAH,1卷标行卷标行INT10H(1)读光标位置读光标位置(AH=3H,ZHT10H)AH=3,功功能能3是是读读光光标标位位置置,页页号号必必须须在在BH中中指指定定此此功功能把光标位置的行号蜀犬吠日道给能把光标位置的行号蜀犬吠日道给DH,列号,列号=DL光标大小的参数填入光标大小
20、的参数填入CH和和CL例:读例:读0页当前光标的位置页当前光标的位置MOVAH,3功能号读光标位置功能号读光标位置MOVBH,0页号页号INT10H,行号,行号=DH列号列号=DL(1)清屏和郑屏清屏和郑屏(AH=06H,INT1OH)功功能能6能能使使屏屏幕幕内内容容上上卷卷指指定定的的行行,这这个个功功能能需需设设7个个参参的的如如果果屏屏幕幕的的起起始始行行列列不不为为(0,0)结结束束行行列列不不为为(24、79)则则屏屏幕幕只只有有指指定定的的一一部部分分具具有有上上卷卷的的功功能能,这这个个屏屏幕幕上上的的部部分分区区域域叫叫窗窗口口,象象这这样样的的窗窗口口我我们们可可以以在在屏
21、屏幕幕上上设置多个,用都可独立使用。设置多个,用都可独立使用。如如果果上上卷卷超超过过指指定定窗窗口口的的顶顶部部,这这些些行行的的内内容容就就丢丢失失,出出现现在在窗窗口口底底部部的的新新行行被被填填为为空空格格其其属属性性由由BH寄寄存存IP决决定定,例例如如AL=0,为为清清屏屏,它它将将按按AL中中的的BLANK字字符符10使指定窗口为准使指定窗口为准AH=7与与6相相似似,使使屏屏幕幕(或或窗窗口口)初初始始化化或或使使屏屏幕幕(或或窗窗口口)内内容下卷指定的行。容下卷指定的行。例例3清清除除在在上上角角为为(0,0),右右下下角角为为窗窗口口,初初始始化化为为反反相相显显示示,该窗
22、口相当的左半部分。该窗口相当的左半部分。MovAH,7下卷下卷MovAL,o填空白填空白MovBH,70h白底黑字反白底黑字反MovCH,0左上角行号左上角行号MovCL,0左上角列号左上角列号MovDH,24右下角行号右下角行号Movdl,39右下角列号右下角列号Int10H例例4在在屏屏幕幕中中间间建建立立一一个个20列列宽宽和和9行行然然后后把把健健入入的的内内容容在在这这个窗口显示出来。个窗口显示出来。健健入入的的字字符符将将被被显显示示在在窗窗口口的的最最下下每每当当输输入入20个个字字符符,该该行行就向上卷动就向上卷动9行字符输入完后,顶端行的内容。行字符输入完后,顶端行的内容。P
23、rognamSegmentAssumecs:prognamPushdsSubax,axPushax1、字字符符显显示示AH=9,OAH,INT10H,AH=09/0A,都都能能把把一一个个字字符符传传送送到到显显示示屏屏幕幕然然后后光光标标返返回回到到它它的的初初始始位位置置,所所以以在在当当前前光光标标位位置置上上写写一一个个字字符符之之后后,必必须须用用INT10H的功能的功能OZ移动光标到下一个字符位置上。移动光标到下一个字符位置上。区区号号:AH=09H,=0AH把把字字符符及及其其属属性性输输出出到到当当前前光光标标位置只输出字符,它的属性就是这位置先前已具有的属性。位置只输出字符,
24、它的属性就是这位置先前已具有的属性。例例5置置光光标标到到0显显示示页页的的(20,25)位位置置,并并从从正正常常属属性性显显示示一个星号一个星号mov at,2;设置光标位置;设置光标位置movbt,2;0页页movdt,20;0行,行,25列列movdt,25int10tmovat,09;在光标位置显示字符及属性;在光标位置显示字符及属性movat,“”;显示的字符;显示的字符movbt,0;页;页=0movbl,7;属性黑底白字属性黑底白字movcx,1;字符重复次数字符重复次数int10hmovah,6上卷功能号上卷功能号6moval,0填空白填空白movch,0左上角行列左上角行列
25、0.0movcl,0movdh,24右下角行列右下角行列24.79movdl,79movbh,7int10hpos-curse:movah,2;设置光标位置设置光标位置movdh,16行行movdl,30列列movbh,0页号页号int10hmovcx,20接收字符数接收字符数getchar:movah,1int21hcmpal,3为为CTRC退出退出jzexitloopgetcharmovah,6;上卷上卷moval,1上卷行数上卷行数movch,8左上角行、列左上角行、列8.30movcl,30movdl,50movbh,7黑底白字黑底白字例例6:在:在0显示页的显示页的(11,0)位置读
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BIOS DOS 中断
限制150内