电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

第9章 BIOS和DOS调用VIP免费

第9章 BIOS和DOS调用_第1页
1/40
第9章 BIOS和DOS调用_第2页
2/40
第9章 BIOS和DOS调用_第3页
3/40
第九章第九章BIOSBIOS和和DOSDOS调用调用BIOS和DOS概述中断及中断向量表BIOS调用DOS调用BIOS和DOS系统调用函数第一节BIOS和DOS概述BIOS(BasicInputOutputSystem):BIOS是固化在ROM中的若干程序内容:•系统启动自举程序•开机自检程序•系统信息设置•基本输入输出程序(程序集)作用:是进行系统测试、初始化引导程序、对I/O设备进行控制的程序集第一节BIOS和DOS概述DOS(DiskOperatingSystem):内容(主要模块):•IO.SYS(通过BIOS控制、管理硬件)•MSDOS.SYS(管理磁盘和文件)•COMMAND.COM(处理内外部命令)作用:DOS是控制和管理计算机的硬件资源、方便用户使用的程序集用程序控制PC硬件的方法:应用高级语言中的语句进行控制(语句少,速度慢)汇编语言编程进行控制(要求了解硬件)。应用BIOS提供的功能程序来控制硬件,即BIOS调用,要求编程者对硬件有相当深入的了解。优点:BIOS调用速度快,另外,BIOS固化在ROM中,不依赖于DOS操作系统。缺点:使用BIOS调用的汇编语言或C语言程序可移植性比较差。应用DOS提供的一些功能服务程序来控制,即DOS调用,可对显示器、键盘、打印机、串行通信等字符设备提供输入输出服务。DOS提供了近百种I/O功能服务程序可供调用,编程者无需对硬件有太深的了解。使用DOS调用,编程简单,调试方便,可移植性好,但速度较慢。第二节中断和中断向量表概念:中断、中断返回、中断源、中断的优先级、中断挂起、中断屏蔽中断的分类:硬中断:外部设备引起的软中断:中断指令引起的中断号:每个中断都有一个编号,称作中断号第二节中断和中断向量表中断向量:每个中断都对应着一段程序,该程序的入口地址称为中断向量中断向量包括段基址和偏移量,占据4字节空间,低位的两个字节存储偏移地址,高位的两个字节存储段基址第二节中断和中断向量表中断向量表:中断向量表是指中断服务程序的入口地址表,占据系统内存中最低端1K(00000H~003FFH)字节的空间,它的作用是按中断类型号从小到大的顺序存储对应的中断向量,总共存储256(00H~FFH)个中断向量。在中断响应过程中,CPU通过从接口电路获取的中断类型号(中断向量号)计算对应的中断向量在表中的位置,并从中断向量表中获取中断向量(中断服务程序的入口地址),然后将程序流程转向中断服务程序。第二节中断和中断向量表常用的中断号及功能(表9-1)系统硬件中断号:00H~0FH、70H~77H视频BIOS的中断号:10H其他BIOS的中断号:11H~1FHDOS中断号:20H~2FH(其中21H为DOS系统服务功能调用)第三节BIOS调用BIOS调用是通过软件中断来实现的。在中断调用前需要把功能号装入AH寄存器,把子功能号装入AL寄存器,另外,通常还需在CPU寄存器中提供专门的调用参数。步骤如下:(1)把调用参数装入指定的寄存器中;(2)如需功能号,把它装入AH;(3)如需子功能号,把它装入AL或BL;(4)按中断号调用BIOS中断;(5)检查返回参数是否正确。第三节BIOS调用例如:将显示方式置为640*480分辨率,16色。相应的汇编语言代码应是:MOVAH,0;设置视频方式的功能号是0,送入AHMOVAL,12H;12H对应的显示方式是640*480,16色INT10H;进行视频BIOS调用对应的C语言代码是:_AH=0;_AL=0x12;geninterrupt(0x10);geninterrupt()是dos.h中定义的一个函数,用来产生一个软中断原型是:voidgeninterrupt(intintr_num);第三节BIOS调用有些BIOS调用有出口参数,例如:读取当前光标处字符(示例:9_1.c)charc;_AH=8;//视频8号功能是读取字符_BH=0;//显示页号geninterrupt(0x10);c=_AL;//中断后,AL中存储所读字符printf(“%c\n”,c);第三节BIOS调用例9.1:从键盘读入一个字符(无回显)键盘I/O中断调用号是16H,该调用有三个常用功能,功能号分别是0,1,2。使用时必须将功能号放在AH中。入口参数:AH存储功能号:0:从键盘读取字符1:读键盘状态2:读键盘标志出口参数:AH=扫描码,AL=ASCII码。第三节BIOS调用C程序代码是:#include#includeintmain(){charc;_AH=0;geninterrupt(0x16);c=_AL;//AL存储字符的ASCII码printf(“%c\n”,...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

第9章 BIOS和DOS调用

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部