null第8章 BIOS与DOS功能调用第8章 BIOS与DOS功能调用汇编语言程序设计 赵艳红 第8章 BIOS与DOS功能调用第8章 BIOS与DOS功能调用8.1 BIOS 中断调用
8.2 DOS 功能调用null BIOS(Basic Input/Output System)是固化在ROM中的程序,包含了主要I/O设备的处理程序和许多例行程序,它们一般以中断处理程序的形式存在。
(中断处理程序相当于高级语言中的子程序,每个中断处理子程序对应一个类型号,通过类型号就可调用该子程序)null 如:负责显示输出的显示I/O中断程序的类型
号为 10H,则要想通过显示器显示输出,
就可按如下格式调用:
INT 10H
像调用其他子程序一样,调用前要给出入口参数。
null BIOS功能调用的存在,给程序员编程带来很大方便,程序员不必了解硬件操作细节(对硬件编程要求程序员对硬件有较深的了解,编程复杂),直接使用BIOS功能调用就能完成有关的I/O操作。
null DOS功能调用,它建立在BIOS基础上,一般情况下,DOS功能调用要比BIOS使用要方便。
硬件(外设)BIOS调用DOS功能调用用户(程序员)的I/O请求null 通常应用程序通过DOS功能调用完成输入输出操作,在下列情况下可考虑使用BIOS中断。
(1)有些功能DOS没有提供,但BIOS提供了;
(2)有些场合无法使用DOS功能调用;
(3)其他原因。8.1 BIOS 中断调用8.1 BIOS 中断调用BIOS中断调用
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
A:置入口参数;
B:使用中断语句INT n,其中n为中断类型号。8.2 DOS功能调用8.2 DOS功能调用(1)什么是DOS功能调用?
DOS系统中包含了许多涉及设备驱动和文件管理方面的子程序,为了方便程序员使用主,把这些子程序编写成相对独立的程序模块而且编上号。这些编了号可由程序员调用的子程序称为DOS功能调用。null功能调用是程序员与DOS操作系统的接口。
Dos功能调用主要包括3方面的程序:
A:设备驱动(基本I/O)
B:文件管理
C:其他(内存管理、置取时间等)null(2)调用方法
A:设置入口参数;
B:功能调用号送AH寄存器;
C:发软中断指令INT 21H。
null(3)基本I/O功能调用
A:带回显键盘输入(1号功能调用)
功能:从
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
输入设备上读入一个字符,并将
该字符回显在标准输出设备上。
入口参数:无
出口参数:AL=读到字符的ASCII码。
null MOV AH,01H
INT 21HnullB:显示输出(2号功能调用)
功能:向标准输出设备写一个字符。
入口参数:DL=要输出字符的ASCII码。
出口参数:无。nullC:显示字符串(9号功能调用)
功能:向标准输出显示一个字符串。
入口参数:DS:DX=要输出字符串的首地址,字
符串以字符“$”为结束标志。
出口参数:无。nullD:字符串输入(0AH号)
0AH号功能调用可以接收键入的字符串并将其存入用户定义的缓冲区中。缓冲区结构如下图:
用户定义的最大字符数实际键入的字符数第1个字符null说明:
(1)当用户键入的字符数大于定义的字符数
则机器响铃且光标不再右移,此时按回
车即可。
(2)实际键入的字符数,由功能A自动填入。
(3)字符串结束时的回车符也要占用一个字
节。
null例:MAXLEN DB 10
ACTLEN DB ?
STR DB 10 DUP(?)
LEA DX,MAXLEN
MOV AH,0AH
INT 21Hnull 若键入如下字符:
BOOK
此时缓冲区MAXLEN的各字节的存储情况如下图:
0ABOOK0D04回车符的ASCII码值null例8-1:从键盘输入一个小写字母,转换成大写字母并在显示器上输出。
CODE SEGMENT
ASSUME CS:CODE
START:MOV AH,01H
INT 21H
SUB AL,20Hnull MOV DL,AL
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END STARTnull 例8-2:已知以BUF开始的数据区存放若干个英文字母,将大写转换成小写,将小写转换成大写并输出。
问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
:
[1]算法:依次对每个字母进行大小写判断,并作大小写转换,然后调用09号功能调用输出转换后的字母。null[2]程序结构:单循环内嵌双分支结构。
[3]如何判断大小写字母并作大小写转换?
小写a的ASCII码值为61H,则小于61H的为大写字母,否则为小写字母。
A、B、C….Z, a、b、,c…..zACSII码值递增,并有大写字母的码值+20H=小写字母的码值。null数据段
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 EXITDA:ADD AL,20H
MOV [BX],AL
EXIT:INC BX
LOOP NEXT
MOV BYTE PTR [BX],’$’
MOV DX,OFFSET BUF
MOV AH,09H
INT 21Hnull 例8-3:利用DOS功能调用,在显示器上显示“WHO ARE YOU ?”,然后接收键入的名字并输出在显示器上。
分析: 显示字符串使用09H功能调用,接收字符串使用0AH号功能调用。nullDATA 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,AXnull 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 21Hnull MOV DX,OFFSET a1+2
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START本章学习目标本章学习目标1、理解BIOS和DOS功能调用。
2、掌握常用的DOS功能调用的使用。
(结合例题去学习)