资源描述:
《微机原理与接口技术实验指导6_dos系统功能调用及bios调用实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、DOS系统功能调用及BIOS调用实验2.6.1实验目的1、熟悉PC机中断系统的有关概念,了解中断向量表的作用。2、掌握常用DOS系统功能调用的方法。3、学握BIOS中常用设备(如显示器、打印机等)驱动程序的调用方法。2.6.2实验预习要求1、复习常用DOS系统功能调用方法。2、复习BIOS调用方法。3、读橫“2.6.4实验内容”屮给出的源程序,以便上机调试。4、从“265实验习题”小任选一道题目,编写源程序,以便上机调试。2.6.3中断系统、DOS系统功能调用及BIOS调用简介微型计算机系统为汇编用户提供了两个程序接口,一个是DOS系统功能调用,另一个是ROM
2、中的BIOS(basicinput/outputsystem)«系统功能调用和BIOS由一系列的中断服务程序构成,它们使得程序设计人员不必详细了解硬件的内部结构和工作原理,肓接调用这些中断服务程序就可以使用系统的硬件,尤其是I/O设备的使用与管理。如下表所示,IBMPC屮断系统为了识別和响应每一种中断,将它们赋以00〜FFH中断类型号,故中断系统能处理256种中断。每种类型的中断都对应一个中断服务程序,每个中断服务程序的入口地址包括该程序所在段的段地址和段内偏移地址,需4个存储单元來存放。将256种屮断对应的屮断服务程序排成一张表,放在内存底端()()()()
3、()H〜003FFH单元中,系统在响应中断时根据得到的中断类型号到该表对应的四个存储单元中即可找到要执行的中断服务程序的入口地址。PC机中断向战表类Era能功匕匕功系统内部中断BIOSOOH设备驱动BIOSH8H0119H02H1AHQI钟lwO3H••A1BHWHI—1CHO5HHDn06H留保HEO7H留保1FH8级外部中断BIOSOSH钟时磁盘操作系统DOSH2009HH2HAo留保H22OBHH32心信IMH24HDoH52HEoH62OFHIL印打H27设备驱动BIOSHo11特殊中断1H置配备设12HH3H4flH516HH7n从功能上分,中断向虽
4、表中中断类型可分为三类:1、磁盘操作系统DOS提供的中断服务程序,中断类型号从20H到2FHo其中类型号为21H的DOS系统功能调用使用较多,如前血实验中用到的单个字符输入、单个字符显示、字符串显示、字符串输入等操作就是通过调用DOS系统功能(中断类型号为21H,功能号(调用号)分别为()1H、02H、()9H、0AH)来实现的。有关DOS系统功能调用(INT21H)屮各功能号对应的功能列表见附录A。2、系统主板BIOS芯片提供的BIOS'I'断服务程序,包括系统内部中断,中断类型号从00H到07H;系统8级外部中断,中断类型号从08H到0FH;设备驱动程序,
5、屮断类型号从10H到1FH等。3、用八定义的中断,中断类型号从60H到7FH、F1H到FFH。用八可根据实际需要编写自己的中断服务程序,并将该服务程序的入口地址写入屮断向量表小相应的存储单元,以便对它们进行调川。有关屮断服务程序的编写与调用方法将在“2.7屮断服务程序设计实验”中介绍。需要说明的是,许多功能既可以通过DOS系统功能调用实现,也可以通过BIOS调用实现,实际使用时应根据具体情况选择使川,一般原则为:能通过DOS系统功能调川实现的功能不使川BIOS调用实现。有关详细介绍请参阅教材“5.5.6常用系统功能调用和BIOS中断调用”-•节。2.6.4实验
6、内容制作电子吋钟,在屏幕上实时显示系统当前时间。程序运行结果如下图所示。要求:①屏幕显示方式设置为80x25黑白文本方式(使用BIOS中断调用,中断类型号为10H,功能号为OOH,(AL)=2);②在开始显示实时时钟和结束Z前清屏(使用BIOS中断调用,屮断类型号为10H,功能号为06H,(AL)=0);③按任意键退出程序的执行(使用DOS系统功能调用,中断类型号为21H,功能号为0BH,当返冋值(AL)=FFH时有键按下,当(AL)=00H时无键按下);1、编程指导(1)屏幕显示方式设置広指令SETCRTSETCRTMACROMOVAH,0;功能号为0MOV
7、AL,2;将屏幕设置为80x25黑口文本方式INT10HENDM(2)清屏宏指令CLEARCLEARMACROMOVAH,06H;功能号为6MOVAL,0;清窗口INT10HENDM(3)光标位置设置宏指令CURSORMACROROW,CLMMOVAH,02H:功能号为2(宣光标位宣)MOVBH,OOH;页号(文本方式时为())MOVDH,ROW;行号送DHMOVDL,CLM;列号送DLINTIOHENDM(4)按任意键退出程序指令MOVAH,OBH;功能号为OBH(检测键盘状态)INT2lhCMPAL,OOH;(AL)为0时无键按下JNZEX1TT;有键按下
8、时退出JMPLOOPR:无键按下时继续