DOS系统功能调用
第9章 bios和dos功能调用

MOV AH, 01 ;调用第21h ;设置功能号:键盘输入 mov ah,4ch 号中断例程的 4ch号子程序 mov al,0 ;提供返回值作为参数 INT 21H ;DOS功能调用 int 21h MOV CHAR, AL ;返回参数: (AL)=字符ASCII码
;-----------------显示输出一个字符
Your site here
DOS键盘中断 0AH功能号
例: 输入字符串到缓冲区STRING
DATA SEGMENT MAXLEN DB 32
MAXLEN DB
MAXLEN DB
32 ,0, 32 DUP(?)
32 ,33 DUP(?)
ACTLEN
STRING CODE DATA ENDS
DB ?
MOV DL, ’A’ MOV AH, 02 INT 21H
;调用参数:
待输出字符的ASCII码
; DOS功能号: 显示输出 ; DOS调用
Your site here
与子程序调用的比较
主程序 ……
CALL SUBP 子程序
……
…… RET
实现机制不同
……
源程序 …… DOS/BIOS调用 INT n ……
1.设置显示方式
入口参数 AL = 显示方式值 00 40×25 黑白文本方式 01 40×25 彩色文本方式 02 80×25 黑白文本方式 03 80×25 彩色文本方式 04 320×320 彩色图形方式 AH = 00H 10H 无 将显示方式设置为指定的形式
功能号 类型号 出口参数 实现功能
Your site here
中断传送方式
中断:使cpu中止正在执行的程序而转去处理特殊事件的操作。 中断源: 引起中断的事件。 8086/8088CPU最多有 256个中断源
第九讲_DOS功能调用

中断向量分配表
类型号 00H 01H 02H 03H 04H 05H 06-07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 中断功能名称 除零错误 单步执行 非屏蔽中断 断点设置 溢出错误 屏幕打印 保留 定时器中断 键盘中断 保留 串行通信中断 保留 硬盘中断 软盘中断 打印机中断 BIOS BIOS BIOS BIOS BIOS BIOS BIOS BIOS 可屏蔽硬中断 可屏蔽硬中断 可屏蔽硬中断 可屏蔽硬中断 可屏蔽硬中断 可屏蔽硬中断 可屏蔽硬中断 可屏蔽硬中断 模 块 BIOS BIOS BIOS BIOS BIOS BIOS 中 断 源 CPU 内部操作 DEBUG 程序 非屏蔽硬中断 DEBUG 程序 CPU 内部操作 INT 指令
2. 中断类型分类 向量表中的中断类型分为七类: ① 处理CPU特殊操作( 除0、溢出 )的00H、04H类型。 ② 为DEBUG调试程序设置的单步( 01H )、断点( 03H )类型。 ③ 处理CPU的NMI引脚信号的02H类型。 非屏蔽硬中断子程 NMI 8088
④ 处理CPU的INTR引脚信号的08~0FH类型。 可屏蔽类型硬中断子程 ⑤ 用INT指令调用的中断子程 BIOS功能调用(如10~1AH) DOS功能调用 (如 21H)
在AH设置功能号m 执行中断指令INT N
分析、应用出口参数
例1
单字符显示功能调用 MOV DL, ‘A’ INT 21H ;设置入口参数 ;执行中断调用 MOV AH, 02H ;设置功能号
例2
单字符输入功能调用
MOV AH, 01H ;设置功能号 INT JZ 、、、 21H exit ;执行中断调用
ROM BIOS 基本I/O 向 MSDOS.SYS提供设备驱动服务。 系 统 硬
DOS系统功能调用介绍

DOS系统功能调用介绍系统功能调用——由DOS提供的一组实现特殊功能的子程序供程序员在程序中调用,以减轻编程工作量。
系统功能调用有两种,一种称为DOS功能调用,另一种称为BIOS功能调用。
用户程序在调用这些系统服务程序时,不是用CALL命令,而是采用软中断指令INT n来实现。
在DOS系统中,功能调用都是用软中断指令INT 21H来实现的。
I N T2l H功能大致可以分为四个方面:设备管理、目录管理、文件管理和其它。
D0S系统功能调用的使用方法如下:①A H←功能号;②设置该功能所要求的其他入口参数;③执行I N T21H指令;④分析出口参数。
以下介绍I N T21H的几个最常用的功能。
关于数据输入和输出我们这里只讨论键盘输入和显示输出,调用系统功能需要提供入口参数及所调用的功能号,调用结束返回结果。
DOS键盘功能调用(1) 从键盘输入一个字符(功能号=1)MOV AH,1INT 21H<AL中有键入的字符>例:程序中有时需要用户对提示做出应答。
GET_KEY: MOV AH,1 ;等待键入字符INT 21H ;结果在AL中CMP AL,’Y’ ;是’Y’?JZ YES ;是,转YESCMP AL,’N’ ;是’N’?JZ NO ;是,转NOJMP GET_KEY ;否则继续等待输入YES: ……NO: …(2) 输入字符串(功能号=0AH)此功能调用从键盘输入一串字符并把它存入用户指定的缓冲区中。
MOV AH, 0AHLEA DX, <字符串缓冲区首地址>INT 21H用户定义的输入字符串的缓冲区格式N1: 缓冲区长度(最大键入字符数)N2: 实际键入的字符数(不包括回车符)若用户键入的字符数(包括回车)≥定义的N1,本功能调用将不再接收新的键入,且光标不再向右移动。
例:设在数据段定义键盘缓冲区如下:STR1 DB 10,?,10 DUP(?)调用DOS功能的0AH号功能的程序段为:LEA DX,STR1MOV AH,0AHINT 21H此程序段最多从键盘接收10个按键(包括回车)。
dos命令大全及用法

dos命令大全及用法DOS命令大全及用法。
DOS(Disk Operating System)是早期个人计算机上广泛使用的操作系统,它的命令行界面为用户提供了丰富的操作命令,可以进行文件管理、系统配置、网络设置等多种操作。
在本文中,我们将介绍DOS命令的大全及用法,帮助大家更好地了解和使用DOS命令。
1. 目录操作命令。
dir,列出当前目录下的文件和子目录。
cd,切换当前目录。
md,创建新的目录。
rd,删除指定的目录。
2. 文件操作命令。
copy,复制文件。
del,删除文件。
type,查看文件内容。
ren,重命名文件。
3. 磁盘操作命令。
format,格式化磁盘。
chkdsk,检查磁盘错误。
diskcopy,复制磁盘内容。
label,为磁盘添加标签。
4. 网络操作命令。
ping,测试网络连接。
ipconfig,显示网络配置信息。
net,管理网络连接。
tracert,跟踪网络数据包的路径。
5. 系统配置命令。
config,显示或设置系统配置。
sys,将系统文件从一个地方复制到另一个地方。
mem,显示内存使用情况。
mode,配置系统设备。
6. 批处理命令。
echo,显示消息或开关命令回显。
goto,将批处理的执行转移到另一行。
if,执行条件处理。
call,调用另一个批处理程序。
7. 其他常用命令。
tree,以图形方式显示目录结构。
find,在文件中搜索字符串。
sort,对文本文件进行排序。
xcopy,复制文件和目录树。
以上是部分常用的DOS命令及其用法,通过学习和掌握这些命令,你可以更加高效地进行文件管理、系统配置和网络操作。
当然,DOS命令还有很多其他功能和用法,需要大家在实际操作中不断学习和探索。
总结。
DOS命令作为早期个人计算机操作系统的重要组成部分,具有丰富的功能和灵活的操作方式。
通过本文的介绍,相信大家对DOS命令有了更深入的了解,希望大家能够在实际应用中灵活运用这些命令,提高工作效率和操作技能。
DOS的功能调用

5、4CH号系统功能调用——返回操作系统
功能:结束当前正在执行的程序,并返回操作系统,屏幕显 示操作系统提示符(C:\>,C为当前使用的驱动器名)。 入口参数:无 出口参数:无
功能:向输出设备输出一个字符。 入口参数:DL=输出字符的ASCII码。 出口参数:无
例:MOV DL,′A′; “A”为要求输出字符的ASCII码 MOV AH,2 INT 21H
3、6号系统功能调用——直接控制台输入输出
功能:从键盘输入一个字符,或输出一个字符到屏幕。
入口参数:如果DL=0FFH,表示是从键盘输入字符; 否则表示输出,DL=输出字符的代码。 出口参数:输入时,ZF=0表有键按下,AL=字符的ASCII码; ZF=1时,表示无键按下。 输出时,无出口参数。
dos系统功能调用表dos系统功能调用dos功能调用ie功能调用拦截js调用手机分享功能java调用dos命令java调用dosmsdos功能无效函数的调用java调用dll
DOS的功能调用
一、DOS功能调用概述 1、概念
DOS功能调用:编了号的可由程序员调用的子程序。 注:DOS所有的功能调用都是利用INT 21H中断指令实现的, 每个功能调用对应一个子程序,并有一个编号,称功能号。 2、系统功能调用的方法 1)将入口参数传送到指定寄存器中; 2)子程序功能号送入AH寄存器中; 3)发软中断指令“INT 21H”。
例、在屏幕上显示字符串:“How are you”。
DATA SEGMENT BUF DB ‘How are you $’ ;定义缓冲区字符串 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,OFFSET BUF MOV AH,9 INT 21H MOV AH,4CH INT 21H CODE ENDS END START
DOS功能调用表

4-系统
CF=0成功,AX=文件号
CF=1失败,AX=错误码
3DH
打开文件
DS:DX=带路径的文件名
AL=方式0-读1-写2-读
写
CF=0成功,AX=文件号
CF=1失败,AX=错误码
3EH
关闭文件
BX=文件号
CF=0成功
CF=1失败,AX=错误码
3FH
读文件或设备
BX=文件号
DS:DX=新的PSP段地址
27H
随机读若干记录
DS:DX=打开的FCB首址
CX=要读入的记录数
AL=00成功,01文件结束
AL=02缓冲区太小
AL=03缓冲区不满
CX=读入的块数
28H
随机写若干记录
DS:DX=打开的FCB首址
CX=要写入的记录数
AL=00成功,01盘满
AL=02缓冲区太小
AL=03缓冲区不满
CX=已写的块数
29H
分析文件名
AL=分析控制标记
DS:SI=要分析的字符串
ES:DI=未打开的FCB首址
AL=00未通配符
01有通配符
0FFH驱动器字母无效
ES:DI=未打开的FCB
2AH
取系统日期
CX=年(1980-2099)
DH=月,DL=日,AL=星期
(0=星期日)
2BH
置系统日期
CX=年,DH=月,DL=日
的文件号)
BX=文件号
CF=0成功,AX=新文件号
CF=1失败,AX=错误码
46H
强行复制文件号
BX=现存的文件号,CX=第2
文件号
CF=0成功,1失败
系统功能调用

系统功能调用——由DOS提供的一组实现特殊功能的子程序供程序员在编写自己的程序时调用,以减轻编程的工作量。
分两种,DOS系统功能调用和BIOS终端调用。
汇编语言中DOS系统功能调用有很多,涉及屏幕显示、文件管理、I/O管理等等,每个子程序都有一个功能号,所有的功能调用的格式都是一致的。
调用的步骤大致如下:(1)系统功能号送到寄存器AH中;(2)入口参数送到指定的寄存器中;(3)用INT 21H指令执行功能调用;(4)根据出口参数分析功能调用执行情况。
下面归纳5个在汇编中常用的INT 21H系统功能调用。
AH功能入口参数出口参数4CH返回DOS无无1键盘输入一个字符到AL中无AL=字符2输出DL寄存器的字符到显示器DL(存放一个字符)无DS:字符串所在的段地址无9输出一个以“$”结尾的字符串到显示器DX:字符串首地址DS:缓冲区所在的段地址缓冲区相应位置0AH从键盘输入一个字符串到指定缓冲区DX:缓冲区首地址下面分别详细分析5种功能调用:1、带返回码的结束(AH=4CH)功能:返回DOS入口参数:无调用方法MOV AH,4CHINT 21H通过4CH功能调用能够结束当前正在执行的程序,返回DOS系统,一般用于汇编程序的结束位置。
2、键盘输入一个字符(AH=1)功能:从键盘输入一个字符到AL中,AL中为该字符的ASCII码。
入口参数:无调用方法MOV AH,1INT 21H执行完上面的系统调用后,出现提示输入光标,从键盘输入一个字符并保存其ASIIC码到AL寄存器中。
<例子>:交互式程序中用户按下数字键1,2,3,程序转入相应的服务子程序,若按下其他键则会继续等待。
代码:[plain]view plaincopyprint?1KEY: MOV AH,12 INT 21H ;系统等待输入一个字符3 CMP AL,'1'4 JE ONE ;如果输入字符为1则跳到标识符ONE处执行5 CMP AL,'2'6 JE TWO ;如上解析7 CMP AL,'3'8 JE THREE9 JMP KEY ;如果不是1、2、3则继续输入字符10ONE: ......11TWO: ......12THREE: ......3、输出显示一个字符(AH=2)功能:输出DL寄存器中的字符到显示器。
DOS系统功能调用

4.3 DOS和BIOS功能调用 4.3.1 概述
系统功能调用——由OS提供的一组实现特殊功能的子程 序供程序员在程序中调用,以减轻编程工作量。 系统功能调用有两种,一种称为DOS功能调用,另一种 称为BIOS功能调用。 用户程序在调用这些系统服务程序时,不是用CALL命 令,而是采用软中断指令INT n来实现。 在DOS系统中,功能调用都是用软中断指令INT 21H来 实现的。
3.源程序的基本结构:顺序、分支、循环、过程
14
微机与接口技术
4.4.2 循环程序设计 循环程序的结构形式
循环初始状态 循环初始状态 循环体 循环控制条件
Y
循环体 循环控制条件
N
N DO_WHILE
Y DO_UNTIL
15
微机与接口技术
例1.试编制一个程序把BX寄存器内的二进制数用十六进制数 的形式在屏幕上显示出来。(单重循环)
10
微机与接口技术
例:键入一字符串,把它存放内存中并在屏幕上显示。
DATA SEGMENT BUFSIZE DB 50 ACTCHAR DB ? CHARTEXT DB 50 DUP(20H) DB ‘ $’ DATA ENDS CODE SEGMENT MOV DX ,OFFSET BUFSIZE MOV AH,0AH INT 21H MOV DX, OFFSET CHARTEXT MOV AH,09H INT 21H
9、 INT 28H~3FH
4
微机与接口技术
2. DOS系统功能调用(INT 21H)
INT 21H 是一个具有近90个子功能的中断服务程序。这些子 功能的编号称为功能号。 INT 21H的功能: 设备管理:键盘输入、显示器输出、打印机输出等。 目录管理:查找目录项、查找文件、文件改名等。 文件管理:打开、关闭、读/写、删除文件等。 其它 使用方法: 置功能号AH 设置 入口参数 执行 INT n 分析 出口参数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5 DOS系统功能调用
实验题目:
完善“调用宏DOSINT:调用DOS系统功能实现字符串的输出和输入,其中10号功能需要的字符数要求从键盘输入”,要求输入的数字是多位数。
实验目的:
1. 掌握DOS系统功能的调用过程和方法;
2. 熟悉源程序基本组成:assume的使用、段寄存器的赋值、程序返回;
3. 掌握MASM、LINK、DEBUG等工具的使用。
实验设备:
硬件:PC机
软件:DOS操作系统、编辑软件、MASM 5.0
实验内容:
1. 程序代码
DOSINT MACRO NO
MOV AH,NO
INT 21H
ENDM
DA TA SEGMENT
ERRSTR DB 'ERROR NUMBER!$'
Hello DB 'Hello World!$'
Q DB 10
X DW 2
R DB 1
T DW 0
STRING DB ?,?,30 DUP(?),'$'
DA TA ENDS
CODE SEGMENT
ASSUME DS:DA TA,CS:CODE
BEGIN: MOV AX,DATA
MOV DS,AX ;初始化DS
MOV DX,OFFSET Hello ;串首地址送DX
DOSINT 9 ;宏调用
MOV BX,T
MOV CX,X
NEXT2:DOSINT 1 ;宏调用
SUB AL,30H
CMP CX,2
JB NEXT1
MUL Q
MOV BX,AX
JMP NEXT3
NEXT1:CBW
ADD AX,BX
NEXT3:LOOP NEXT2
DIV R
ADD AL,30H
CALL ASCIINUM ;子程序调用
MOV STRING,AL
LEA DX, STRING ;取预留空间首地址
DOSINT 10
MOV DL,0AH ;输出换行
MOV AH,02H
INT 21H
MOV DL,0DH ;输出回车
MOV AH,02H
INT 21H
MOV SI,OFFSET STRING
ADD SI,2
NEXT5:MOV AL,[SI]
CMP AL,0DH
JZ NEXT4
MOV DL,AL
DOSINT 02H
INC SI
JMP NEXT5
NEXT4:DOSINT 4CH ;宏调用返回DOS ;子程序名:ASCIINUM
;功能:ASCII码转化为二进制数
ASCIINUM PROC
PUSH DX
CMP AL,30H ;’0’?
JB ERR
CMP AL,39H ;’9’?
JBE CHNG
CHNG: SUB AL,30H
JMP EXIT
ERR:LEA DX,ERRSTR
DOSINT 9
EXIT: POP DX
RET
ASCIINUM ENDP
CODE ENDS
END BEGIN
2. 调试过程(具体应用DEBUG指令及其结果)
实验思考与总结:
通过本次实验,我明白了宏调用的方法及宏调用与子程序的区别。