第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页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,第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

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

3、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号功能调用

4、) 功能:从标准输入设备上读入一个字符,并将 该字符回显在标准输出设备上。 入口参数:无 出口参数:AL=读到字符的ASCII码。,MOV AH,01H INT 21H,B:显示输出(2号功能调用) 功能:向标准输出设备写一个字符。 入口参数:DL=要输出字符的ASCII码。 出口参数:无。,C:显示字符串(9号功能调用) 功能:向标准输出显示一个字符串。 入口参数:DS:DX=要输出字符串的首地址,字 符串以字符“$”为结束标志。 出口参数:无。,D:字符串输入(0AH号) 0AH号功能调用可以接收键入的字符串并将其存入用户定义的缓冲区中。缓冲区结构如下图:,用户定义的最大字符数,实际键入的

5、字符数,第1个字符,说明: (1)当用户键入的字符数大于定义的字符数 则机器响铃且光标不再右移,此时按回 车即可。 (2)实际键入的字符数,由功能A自动填入。 (3)字符串结束时的回车符也要占用一个字 节。,例:MAXLEN DB 10 ACTLEN DB ? STR DB 10 DUP(?) LEA DX,MAXLEN MOV AH,0AH INT 21H,若键入如下字符: BOOK 此时缓冲区MAXLEN的各字节的存储情况如下图:,0A,B,O,O,K,0D,04,回车符的ASCII码值,例8-1:从键盘输入一个小写字母,转换成大写字母并在显示器上输出。 CODE SEGMENT ASSU

6、ME 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

7、, a、b、,c.z,ACSII码值递增,并有大写字母的码值+20H=小写字母的码值。,数据段 DATA SEGMENT BUF DB abcDEFgHij CNT EQU $-BUF DATA ENDS,代码段,LEA BX,BUF MOV CX,CNT NEXT:MOV AL,BX CMP AL,61H JL DA SUB AL,20H MOV BX,AL JMP EXIT,DA:ADD AL,20H MOV BX,AL EXIT:INC BX LOOP NEXT MOV BYTE PTR BX,$ MOV DX,OFFSET BUF MOV AH,09H INT 21H,例8-3:利用D

8、OS功能调用,在显示器上显示“WHO ARE YOU ?”,然后接收键入的名字并输出在显示器上。 分析: 显示字符串使用09H功能调用,接收字符串使用0AH号功能调用。,DATA SEGMENT QUEST DB WHO ARE YOU?,$ a1 db 20,0, 20 DUP($) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX,MOV DX,OFFSET QUEST MOV AH,09H INT 21H MOV DX,OFFSET a1 MOV AH,0AH INT 21H MOV DL,10 MOV AH,02H INT 21H,MOV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论