第8章 BIOS与DOS功能调用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

D 字符串输入(0AH号) 字符串输入( AH号 0AH号功能调用可以接收键入的字符串并将 0AH号功能调用可以接收键入的字符串并将 其存入用户定义的缓冲区中。 其存入用户定义的缓冲区中。缓冲区结构 如下图: 如下图:
用户定义的最大字符数 实际键入的字符数 第1个字符 个字符
说明: 说明: (1)当用户键入的字符数大于定义的字符数 则机器响铃且光标不再右移, 则机器响铃且光标不再右移,此时按回车 即可。 即可。 实际键入的字符数,由功能A自动填入。 (2)实际键入的字符数,由功能A自动填入。 (3)字符串结束时的回车符也要占用一个字节 字符串结束时的回车符也要占用一个字节。 (3)字符串结束时的回车符也要占用一个字节。
8.1 BIOS 中断调用
BIOS中断调用方法 BIOS中断调用方法 A:置入口参数 置入口参数; A:置入口参数; B:使用中断语句 使用中断语句INT n,其中n为中断类型号。 B:使用中断语句INT n,其中n为中断类型号。
8.2 DOS功能调用 DOS功能调用
(1)什么是DOS功能调用 什么是DOS DOS功能调用 DOS系统中包含了许多涉及设备驱动和文件 DOS系统中包含了许多涉及设备驱动和文件 管理方面的子程序, 管理方面的子程序,为了方便程序员使用 主,把这些子程序编写成相对独立的程序 模块而且编上号。 模块而且编上号。这些编了号可由程序员 调用的子程序称为DOS功能调用。 DOS功能调用 调用的子程序称为DOS功能调用。
oA 04 B O O K 0D
回车符的ASCII 回车符的 码值
例8-1:从键盘输入一个小写字母,转换成大 从键盘输入一个小写字母, 写字母并在显示器上输出。 写字母并在显示器上输出。 CODE SEGMENT ASSUME CS:CODE START:MOV START:MOV AH,01H INT 21H SUB AL,20H
通常应用程序通过DOS功能调用完成输入输 通常应用程序通过DOS功能调用完成输入输 DOS 出操作,在下列情况下可考虑使用BIOS BIOS中 出操作,在下列情况下可考虑使用BIOS中 断。 有些功能DOS没有提供, BIOS提供了 DOS没有提供 提供了; (1)有些功能DOS没有提供,但BIOS提供了; 有些场合无法使用DOS功能调用; DOS功能调用 (2)有些场合无法使用DOS功能调用; 其他原因。 (3)其他原因。
MOV AH,01H INT 21H
B:显示输出(2号功能调用) B:显示输出( 号功能调用) 显示输出 功能:向标准输出设备写一个字符。 功能:向标准输出设备写一个字符。 入口参数:DL=要输出字符的ASCII码 要输出字符的ASCII 入口参数:DL=要输出字符的ASCII码。 出口参数: 出口参数:无。
♦ MOV DX,OFFSET a1+2 ♦ MOV AH,09H ♦ INT 21H
本章学习目标
♦ 1、理解BIOS和DOS功能调用。 理解BIOS DOS功能调用 BIOS和 功能调用。 ♦ 2、掌握常用的DOS功能调用的使用。 掌握常用的DOS功能调用的使用。 DOS功能调用的使用
(结合例题去学习) 结合例题去学习)
DOS功能调用,它建立在BIOS基础上, DOS功能调用,它建立在BIOS基础上,一般 功能调用 BIOS基础上 情况下,DOS功能调用要比BIOS使用要方便 功能调用要比BIOS使用要方便。 情况下,DOS功能调用要比BIOS使用要方便。
用户(程序员)的I/O请求 用户(程序员) 请求 DOS功能调用 功能调用 BIOS调用 调用 硬件(外设) 硬件(外设)
♦ 例8-3:利用DOS功能调用,在显示器上显 利用DOS功能调用, DOS功能调用
示“WHO ARE YOU ? ,然后接收键入的名字 ?”, 并输出在显示器上。 并输出在显示器上。 ♦ 分析: 显示字符串使用09H功能调用,接 分析: 显示字符串使用09H功能调用, 09H功能调用 收字符串使用0AH号功能调用。 0AH号功能调用 收字符串使用0AH号功能调用。
MOV DL,AL MOV AH,02H INT 21H MOV AH,4CH INT 21H CODE ENDS END START
例8-2:已知以BUF开始的数据区存放若干个 已知以BUF开始的数据区存放若干个 BUF 英文字母,将大写转换成小写, 英文字母,将大写转换成小写,将小写转 换成大写并输出。 换成大写并输出。 问题分析: 问题分析: [1]算法 依次对每个字母进行大小写判断, 算法: [1]算法:依次对每个字母进行大小写判断, 并作大小写转换,然后调用09 09号功能调用 并作大小写转换,然后调用09号功能调用 输出转换后的字母。 输出转换后的字母。
第8章 BIOS与DOS功能调用 BIOS与DOS功能调用
8.1 BIOS 中断调用 8.2 DOS 功能调用
BIOS(Basic Input/Output System)是固化 System)是固化 BIOS( ROM中的程序 包含了主要I/O 中的程序, I/O设备的处 在ROM中的程序,包含了主要I/O设备的处 理程序和许多例行程序,它们一般以中断 理程序和许多例行程序,它们一般以中断 处理程序的形式存在 的形式存在。 处理程序的形式存在。 中断处理程序相当于高级语言中的子程序, (中断处理程序相当于高级语言中的子程序, 每个中断处理子程序对应一个类型号 类型号, 每个中断处理子程序对应一个类型号,通 过类型号就可调用该子程序) 过类型号就可调用该子程序)
数据段 DATA SEGMENT abcDEFgHij’ BUF DB ‘abcDEFgHij 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
♦ DATA SEGMENT ♦ QUEST DB 'WHO ARE YOU?','$' ♦
a1 db 20,0, 20 DUP('$') ♦ DATA ENDS
♦ 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
BIOS功能调用的存在,给程序员编程带来 BIOS功能调用的存在, 功能调用的存在 很大方便, 很大方便,程序员不必了解硬件操作细节 (对硬件编程要求程序员对硬件有较深的 了解,编程复杂),直接使用BIOS ),直接使用BIOS功能调 了解,编程复杂),直接使用BIOS功能调 用就能完成有关的I/O操作。 I/O操作 用就能完成有关的I/O操作。
[2]程序结构:单循环内嵌双分支结构。 [2]程序结构:单循环内嵌双分支结构。 程序结构 [3]如何判断大小写字母并作大小写转换 如何判断大小写字母并作大小写转换? [3]如何判断大小写字母并作大小写转换? 小写a ASCII码值为61H,则小于61H 码值为61H 61H的为大 小写a的ASCII码值为61H,则小于61H的为大 写字母,否则为小写字母。 写字母,否则为小写字母。 .Z, ,c…..z A、B、C….Z, .Z a、b、,c ..z ACSII码值递增,并有大写字母的码 码值递增, 码值递增 小写字母的码值。 值+20H=小写字母的码值。 小写字母的码值
功能调用是程序系统的接口。 DOS操作系统的接口 Dos功能调用主要包括3方面的程序: Dos功能调用主要包括3方面的程序: 功能调用主要包括 A:设备驱动 基本I/O) 设备驱动( A:设备驱动(基本I/O) B:文件管理 B:文件管理 C:其他 内存管理、置取时间等) 其他( C:其他(内存管理、置取时间等)
如:负责显示输出的显示I/O中断程序的类 负责显示输出的显示I/O I/O中断程序的类 10H,则要想通过显示器显示输出 则要想通过显示器显示输出, 型号为 10H,则要想通过显示器显示输出, 就可按如下格式调用: 就可按如下格式调用: INT 10H 像调用其他子程序一样, 像调用其他子程序一样,调用前要给出入口 参数。 参数。
例:MAXLEN DB 10 ACTLEN DB ? STR DB 10 DUP(?) LEA DX,MAXLEN MOV AH,0AH INT 21H
若键入如下字符: 若键入如下字符: BOOK 此时缓冲区MAXLEN MAXLEN的各字节的存储情况如下 此时缓冲区MAXLEN的各字节的存储情况如下 图:
(2)调用方法 A:设置入口参数 设置入口参数; A:设置入口参数; B:功能调用号送AH寄存器 功能调用号送AH寄存器; B:功能调用号送AH寄存器; C:发软中断指令 发软中断指令INT 21H。 C:发软中断指令INT 21H。
(3)基本I/O功能调用 (3)基本I/O功能调用 基本I/O A:带回显键盘输入 带回显键盘输入( 号功能调用) A:带回显键盘输入(1号功能调用) 功能:从标准输入设备上读入一个字符, 功能:从标准输入设备上读入一个字符,并 将该字符回显在标准输出设备上。 将该字符回显在标准输出设备上。 入口参数: 入口参数:无 出口参数:AL=读到字符的ASCII码 读到字符的ASCII 出口参数:AL=读到字符的ASCII码。
C:显示字符串(9号功能调用) C:显示字符串( 号功能调用) 显示字符串 功能:向标准输出显示一个字符串。 功能:向标准输出显示一个字符串。 入口参数:DS:DX=要输出字符串的首地址 要输出字符串的首地址, 入口参数:DS:DX=要输出字符串的首地址, 字符串以字符“ 为结束标志。 字符串以字符“$”为结束标志。。 出口参数: 出口参数:无。
相关文档
最新文档