第8章 BIOS与DOS功能调用.ppt

第8章 BIOS与DOS功能调用.ppt

ID:48771374

大小:1.14 MB

页数:30页

时间:2020-01-23

第8章 BIOS与DOS功能调用.ppt_第1页
第8章 BIOS与DOS功能调用.ppt_第2页
第8章 BIOS与DOS功能调用.ppt_第3页
第8章 BIOS与DOS功能调用.ppt_第4页
第8章 BIOS与DOS功能调用.ppt_第5页
资源描述:

《第8章 BIOS与DOS功能调用.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第8章BIOS与DOS功能调用赵艳红汇编语言程序设计第8章BIOS与DOS功能调用8.1BIOS中断调用8.2DOS功能调用BIOS(BasicInput/OutputSystem)是固化在ROM中的程序,包含了主要I/O设备的处理程序和许多例行程序,它们一般以中断处理程序的形式存在。(中断处理程序相当于高级语言中的子程序,每个中断处理子程序对应一个类型号,通过类型号就可调用该子程序)如:负责显示输出的显示I/O中断程序的类型号为10H,则要想通过显示器显示输出,就可按如下格式调用:INT10H像调用其他子程序一样

2、,调用前要给出入口参数。BIOS功能调用的存在,给程序员编程带来很大方便,程序员不必了解硬件操作细节(对硬件编程要求程序员对硬件有较深的了解,编程复杂),直接使用BIOS功能调用就能完成有关的I/O操作。DOS功能调用,它建立在BIOS基础上,一般情况下,DOS功能调用要比BIOS使用要方便。硬件(外设)BIOS调用DOS功能调用用户(程序员)的I/O请求通常应用程序通过DOS功能调用完成输入输出操作,在下列情况下可考虑使用BIOS中断。(1)有些功能DOS没有提供,但BIOS提供了;(2)有些场合无法使用DOS功

3、能调用;(3)其他原因。8.1BIOS中断调用BIOS中断调用方法A:置入口参数;B:使用中断语句INTn,其中n为中断类型号。8.2DOS功能调用(1)什么是DOS功能调用?DOS系统中包含了许多涉及设备驱动和文件管理方面的子程序,为了方便程序员使用主,把这些子程序编写成相对独立的程序模块而且编上号。这些编了号可由程序员调用的子程序称为DOS功能调用。功能调用是程序员与DOS操作系统的接口。Dos功能调用主要包括3方面的程序:A:设备驱动(基本I/O)B:文件管理C:其他(内存管理、置取时间等)(2)调用方法A:

4、设置入口参数;B:功能调用号送AH寄存器;C:发软中断指令INT21H。(3)基本I/O功能调用A:带回显键盘输入(1号功能调用)功能:从标准输入设备上读入一个字符,并将该字符回显在标准输出设备上。入口参数:无出口参数:AL=读到字符的ASCII码。MOVAH,01HINT21HB:显示输出(2号功能调用)功能:向标准输出设备写一个字符。入口参数:DL=要输出字符的ASCII码。出口参数:无。C:显示字符串(9号功能调用)功能:向标准输出显示一个字符串。入口参数:DS:DX=要输出字符串的首地址,字符串以字符“$”

5、为结束标志。出口参数:无。D:字符串输入(0AH号)0AH号功能调用可以接收键入的字符串并将其存入用户定义的缓冲区中。缓冲区结构如下图:用户定义的最大字符数实际键入的字符数第1个字符说明:(1)当用户键入的字符数大于定义的字符数则机器响铃且光标不再右移,此时按回车即可。(2)实际键入的字符数,由功能A自动填入。(3)字符串结束时的回车符也要占用一个字节。例:MAXLENDB10ACTLENDB?STRDB10DUP(?)LEADX,MAXLENMOVAH,0AHINT21H若键入如下字符:BOOK此时缓冲区MAXL

6、EN的各字节的存储情况如下图:0ABOOK0D04回车符的ASCII码值例8-1:从键盘输入一个小写字母,转换成大写字母并在显示器上输出。CODESEGMENTASSUMECS:CODESTART:MOVAH,01HINT21HSUBAL,20HMOVDL,ALMOVAH,02HINT21HMOVAH,4CHINT21HCODEENDSENDSTART例8-2:已知以BUF开始的数据区存放若干个英文字母,将大写转换成小写,将小写转换成大写并输出。问题分析:[1]算法:依次对每个字母进行大小写判断,并作大小写转换,然

7、后调用09号功能调用输出转换后的字母。[2]程序结构:单循环内嵌双分支结构。[3]如何判断大小写字母并作大小写转换?小写a的ASCII码值为61H,则小于61H的为大写字母,否则为小写字母。A、B、C….Z,a、b、,c…..zACSII码值递增,并有大写字母的码值+20H=小写字母的码值。数据段DATASEGMENTBUFDB‘abcDEFgHij’CNTEQU$-BUFDATAENDS代码段LEABX,BUFMOVCX,CNTNEXT:MOVAL,[BX]CMPAL,61HJLDASUBAL,20HMOV[BX

8、],ALJMPEXITDA:ADDAL,20HMOV[BX],ALEXIT:INCBXLOOPNEXTMOVBYTEPTR[BX],’$’MOVDX,OFFSETBUFMOVAH,09HINT21H例8-3:利用DOS功能调用,在显示器上显示“WHOAREYOU?”,然后接收键入的名字并输出在显示器上。分析:显示字符串使用09H功能调用,接收字符串使用0AH

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。