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

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 BIOS与DOS功能调用 汇编语言程序设计 第8章 BIOS与DOS功能调用 8.1 BIOS 中断调用 8.2 DOS 功能调用 BIOS(Basic Input/Output System)是固化在ROM中的程序,包含了主要I/O设备的处理程序和许多例行程序,它们一般以中断处理程序的形式存在。 (中断处理程序相当于高级语言中的子程序,每个中断处理子程序对应一个类型号,通过类型号就可调用该子程序) 如:负责显示输出的显示I/O中断程序的类型 号为 10H,则要想通过显示器显示输出, 就可按如下格式调用: INT 10H 像调用其他子程序一样,调用前要给出入口参数。 BIOS功能调用的存在,给程序员编程带来很大方便,程序员不必了解硬件操作细节(对硬件编程要求程序员对硬件有较深的了解,编程复杂),直接使用BIOS功能调用就能完成有关的I/O操作。 DOS功能调用,它建立在BIOS基础上,一般情况下,DOS功能调用要比BIOS使用要方便。 通常应用程序通过DOS功能调用完成输入输出操作,在下列情况下可考虑使用BIOS中断。 (1)有些功能DOS没有提供,但BIOS提供了; (2)有些场合无法使用DOS功能调用; (3)其他原因。 8.1 BIOS 中断调用 BIOS中断调用方法 A:置入口参数; B:使用中断语句INT n,其中n为中断类型号。 8.2 DOS功能调用 (1)什么是DOS功能调用? DOS系统中包含了许多涉及设备驱动和文件管理方面的子程序,为了方便程序员使用主,把这些子程序编写成相对独立的程序模块而且编上号。这些编了号可由程序员调用的子程序称为DOS功能调用。 功能调用是程序员与DOS操作系统的接口。 Dos功能调用主要包括3方面的程序: A:设备驱动(基本I/O) B:文件管理 C:其他(内存管理、置取时间等) (2)调用方法 A:设置入口参数; B:功能调用号送AH寄存器; C:发软中断指令INT 21H。 (3)基本I/O功能调用 A:带回显键盘输入(1号功能调用) 功能:从标准输入设备上读入一个字符,并将 该字符回显在标准输出设备上。 入口参数:无 出口参数:AL=读到字符的ASCII码。 MOV AH,01H INT 21H B:显示输出(2号功能调用) 功能:向标准输出设备写一个字符。 入口参数:DL=要输出字符的ASCII码。 出口参数:无。 C:显示字符串(9号功能调用) 功能:向标准输出显示一个字符串。 入口参数:DS:DX=要输出字符串的首地址,字 符串以字符“$”为结束标志。 出口参数:无。 D:字符串输入(0AH号) 0AH号功能调用可以接收键入的字符串并将其存入用户定义的缓冲区中。缓冲区结构如下图: 说明: (1)当用户键入的字符数大于定义的字符数 则机器响铃且光标不再右移,此时按回 车即可。 (2)实际键入的字符数,由功能A自动填入。 (3)字符串结束时的回车符也要占用一个字 节。 例:MAXLEN DB 10 ACTLEN DB ? STR DB 10 DUP(?) LEA DX,MAXLEN MOV AH,0AH INT 21H 若键入如下字符: BOOK 此时缓冲区MAXLEN的各字节的存储情况如下图: 例8-1:从键盘输入一个小写字母,转换成大写字母并在显示器上输出。 CODE SEGMENT ASSUME CS:CODE START:MOV AH,01H INT 21H SUB AL,20H MOV DL,AL MOV AH,02H INT 21H MOV AH,4CH INT 21H CODE ENDS END START 例8-2:已知以BUF开始的数据区存放若干个英文字母,将大写转换成小写,将小写转换成大写并输出。 问题分析: [1]算法:依次对每个字母进行大小写判断,并作大小写转换,然后调用09号功能调用输出转换后的字母。 [2]程序结构:单循环内嵌双分支结构。 [3]如何判断大小写字母并作大小写转换? 小写a的ASCII码值为61H,则小于61H的为大写字母,否则为小写字母。 A、B、C….Z, a、b、,c…..z 数据段 DATA SEGMENT BUF DB ‘abcDEFgHij’ CNT E

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档