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 分析 出口参数
调用dos功能和bios功能时的基本步骤
调用dos功能和bios功能时的基本步骤调用DOS(磁盘操作系统)功能和BIOS(基本输入/输出系统)功能是在计算机系统中执行低级别任务的基本步骤。
下面将详细介绍这两个过程的基本步骤和关键点。
调用DOS功能的基本步骤如下:1.获取DOS功能的入口点:DOS是一种基于磁盘的操作系统,其提供了一系列的系统调用接口,可以通过中断向量来获取DOS的入口点地址。
2.设置传递参数:在调用DOS功能之前,需要将参数传递给DOS。
可以通过设置特定的寄存器来传递参数,例如AH寄存器用于指定DOS功能的编号,其他寄存器则用于传递更具体的参数。
3. 调用DOS功能:在参数设置完成后,可以通过软中断(int 21h)来调用DOS功能。
软中断是一种由软件主动触发的中断,通过将特定的中断号(21h)放入中断向量表中的对应位置,即可触发DOS的相应功能。
4.处理返回结果:在完成DOS功能调用后,需要根据DOS的返回结果进行适当的处理。
返回结果可以通过寄存器的值进行判断,例如AL寄存器用于返回DOS功能的执行状态。
5.释放和恢复资源:在使用完DOS功能后,应当及时释放和恢复占用的资源,以保证系统的正常运行。
例如,对于打开的文件或设备,应当及时关闭和释放。
调用BIOS功能的基本步骤如下:1.获取BIOS功能的入口点:BIOS是一种固化在计算机主板中的低级别系统软件,其提供了一系列的硬件访问接口。
可以通过读取中断向量表来获取BIOS功能的入口点地址。
2.设置传递参数:与调用DOS功能类似,调用BIOS功能也需要将参数传递给BIOS。
可以通过特定的寄存器来传递参数,例如AH寄存器用于指定BIOS功能的编号,其他寄存器用于传递更具体的参数。
3. 调用BIOS功能:在参数设置完成后,可以通过软中断(int 10h,int 13h等)来调用BIOS功能。
不同的BIOS功能对应不同的中断号,通过将特定的中断号放入中断向量表中的对应位置,即可触发BIOS的相应功能。
DOS功能调用大全
一、21H号中断类型(INT 21H)的各功能详解。
00H号功能——程序终止入口参数:AH=0;功能号CS已指定返回值:无。
01H号功能——键盘输入并回显。
[检测break(Ctrl+C)]入口参数:AH=01H;功能号返回值:AL=输入的字符。
02H号功能——显示输出。
[检测break(Ctrl+C)]入口参数:AH=02H;功能号DL=要显示的字符返回:光标移动。
03H号功能——异步通讯输入。
入口参数:AH=03H;功能号返回值:AL=输入的数值04H号功能——异步通讯输出。
入口参数:AH=04H;功能号DL=要输出的数值返回值:无05H号功能——打印机输出。
[自动检测打印机]入口参数:AH=05H;功能号DL=要输出的数值返回值:无06H号功能——直接控制台I/O(输入/输出)。
[[不检测break(Ctrl+C)]] 入口参数1:AH=06H;功能号DL=要输出的字符(DL<0FFH)功能1:输出返回1:光标移动入口参数2:AH=06H ;功能号DL=0FFH功能2:输入返回2:AL=输入的字符07H号功能——键盘输入但不回显。
入口参数:AH=07H;功能号返回值:AL=输入的字符。
08H号功能——键盘输入但不回显。
[检测break(Ctrl+C)]入口参数:AH=08H;功能号返回值:AL=输入的字符。
说明:如果返回AL=0,则是扩展ASC码,要再次调用才能取得扩展ASC码。
例:mov ah,8int 21hcmp al,0jnz ----- 是ASC码,去处理ASC码。
mov ah,8int 21h ;这次AL返回扩展ASC码。
09H号功能——显示字符串。
入口参数:AH=09H;功能号DS:DX=串地址。
串必须以'$'字符结尾。
返回:光标移动。
0AH号功能——键盘输入字串到缓冲区。
入口参数:AH=0AH;功能号DS:DX=缓冲区地址。
缓冲区首字节=缓冲区字节数。
常用DOS(INT 21H)功能调用表(AH功能调用号)
AX=实际读入的字节数 AX=0 已到文件尾 读出错:AX=错误码 写成功: AX=实际写入的字节数 写出错:AX=错误码 成功:AX=00 出错:AX=错误码(2,5)
42 移动文件指针 43 置/取文件属性
44 设备文件I/O控制 45 复制文件代号 46 人工复制文件代号
AX=出错代码(18)
(文件名中带有?或*)
54 取盘自动读写标志
AL=当前标志值
DS:DX=ASCIIZ串
56 文件改名
(旧) ES:DI=ASCIIZ串
AX=出错码(03,05,17)
(新)
BX=文件代号
DX:CX=日期和时间
57
置/取文件日期和时 间
AL=0 读取
失败:AX=错误码
58 取/置分配策略码 59 取扩充错误码 5A 建立临时文件 5B 建立新文件
AL=FF 无输入
0C
清除输入缓冲区并 请求指定的输入功能
AL=输入功能号 (1,6,7,8,A)
0D 0E
磁指盘定复当位 前缺省的磁盘驱动 器
0F 打开文件
DL=驱动器号 0=A,1=B,... DS:DX=FCB首地址
清除文件缓冲区 AL=驱动器数 AL=00 文件找到 AL=FF 文件未找到
10 关闭文件
AL=输入字符
7 键盘输入(无回显)
AL=输入字符
8
键盘输入(无回显) 检测Ctrl-Break
9 显示字符串
0A 键盘输入到缓冲区
0B 检验键盘状态
AL=输入字符
DS:DX=串地址
'$'结束字符串
DS:DX=缓冲区首地址
(DS:DX+1)=实际输入的字符
dos功能调用
dos功能调用DOS(Disk Operating System)是一种操作系统,最初在20世纪80年代末和90年代初广泛应用于个人计算机中。
它提供了许多功能调用,用于执行各种操作。
1. 文件和目录操作:DOS的功能调用可以用于创建、复制、删除、移动文件和目录。
它允许用户在不同的目录之间切换,并显示当前目录的内容。
用户可以使用这些功能调用来管理计算机上的文件和目录。
2. 磁盘操作:DOS的功能调用允许用户格式化磁盘、验证磁盘的完整性,以及在磁盘上创建新的分区。
用户还可以使用这些功能调用来将文件从一个磁盘复制到另一个磁盘,并执行其他与磁盘相关的操作。
3. 内存管理:DOS的功能调用可以用于分配和释放内存。
它允许用户在程序执行过程中动态分配和释放内存块,以提高可用内存的利用率。
4. 进程控制:DOS的功能调用允许用户启动新的进程,并控制它们的执行。
用户可以使用这些功能调用来运行其他程序、传递命令行参数,并等待其他进程完成执行。
5. 输入和输出:DOS的功能调用可以用于读取用户输入和向用户输出信息。
它允许用户在程序执行过程中与用户进行交互,并显示相关的信息,以指导用户的操作。
6. 系统信息获取:DOS的功能调用可以用于获取系统的各种信息,如硬件配置、操作系统版本等。
用户可以使用这些功能调用来了解计算机的当前状态,并根据需要进行相应的操作。
总结起来,DOS的功能调用提供了许多操作系统级别的功能,使用户能够管理文件和目录、执行磁盘操作、分配和释放内存、控制进程、处理输入和输出,并获取系统信息。
这些功能调用为用户提供了一个强大的工具,以在DOS环境中执行各种操作。
MSDOS 系统功能调用表
MSDOS 系统功能调用表AH功能调用参数返回参数00终止进程CS=程序段前缀段地址01带回显键盘输入的AL=输入字符02显示一个字符DL=待输出字符的ASCII码03异步通讯输入AL=输入的数据04异步通讯输出DL=待输出的数据05打印机输出DL=待输出的字符06直接控制台I/ODL=0FFH:输入DL=字符的ASCII码:输出AL=输入的字符07无回显的键盘输入AL=输入的字符08无回显的键盘输入(检测Ctrl-C)AL=输入的字符09字符串输出DS:DX=字符串首0A键盘输入至缓冲区DS:DX=缓冲区首DS:[DX]=缓冲区最大容量DS:[DX+1]=输入的字符数DS:DX+2=字符串首0B检测键盘状态AL=00:有输入AL=FF:无输入0C清除缓冲区并请求指定的输入功能AL=输入功能的功能号(1、6、7、8、A)0D磁盘复位清除文件缓冲区0E指定当前缺省磁盘驱动器DL=驱动器号0:A;1:B0F打开文件DS:DX=FCB首地址AL=00:文件打开AL=0FFH:出错10关闭文件DS:DX=FCB首地址AL=00:文件关闭AL=FF:出错11查找第一个目录项DS:DX=FCB首地址AL=00:找到AL=FF:出错12查找下一个目录项DS:DX=FCB首地址(文件名中带*或?)AL=00:找到AL=FF:出错13删除文件DS:DX=FCB首地址AL=00:成功删除AL=FF:出错14顺序读DS:DX=FCB首地址AL=00:读成功AL=01:文件已到末尾。
常用Dos系统功能调用[终稿]
常用Dos系统功能调用1.键盘输入并显示(1号功能调用)格式: MOV AH, 01HINT 21H功能:按下任何键,将其对应字符的ASCII码送入AL中,并在屏幕上显示该字符。
如果按下的是Ctrl+Break组合键,则终止程序执行。
1号功能调用无须入口参数,出口参数在AL中。
2.键盘输入但不显示输入字符(8号功能调用)格式: MOV AH, 08HINT 21H功能:同1号功能调用,但字符不在屏幕上显示。
3.屏幕显示一个字符(2号功能调用)格式: MOV DL, '字符'MOV AH, 02HINT 21H功能:将置入DL寄存器中的字符在屏幕上显示输出。
4.打印输出(5号功能调用)格式: MOV DL, '字符'MOV AH, 05HINT 21H功能:将置入DL寄存器中的字符送打印机接口,打印输出。
5.屏幕显示字符串(9号功能调用)格式: MOV DX, 字符串的偏移地址MOV AH, 09HINT 21H功能:在屏幕上显示字符串。
在使用9号功能调用时,应当注意以下问题。
① 待显示的字符串必须先放在内存一数据区(DS段)中,且以‘$’符号作为结束标志。
② 应当将字符串首地址的段基址和偏移地址分别存入DS和DX 寄存器中。
【例4.42】DATA SEGMENTBUF DB ‘HOW DO YOU DO?’, 0AH, 0DH, ‘$’DATA ENDSCODE SEGMENTMOV AX, DATAMOV DS, AXMOV DX, OFFSET BUFMOV AH, 09HINT 21HCODE ENDS执行程序,在屏幕上显示“HOW DO YOU DO?”字符串。
6.字符串输入功能调用(0AH号功能调用)格式: MOV DX, 已定义缓冲区的偏移地址MOV AH, 0AHINT 21H功能:从键盘接收字符,并存放到内存缓冲区。
在使用0AH号功能调用时,应当注意以下问题。
第5章 DOS和BIOS系统功能调用
3.非设备系统调用 非设备系统调用用于为程序设置中断矢量和建立程序段 前缀,以及读取和设置日期、时间等。 4.目录管理 目录管理包括建立子目录、取当前目录、修改当前目录、 删除目录项等。 5.扩充内存管理 扩充内存管理包括内存分配、释放,分配内存块,装入 或执行程序等。 6.扩充系统调用 扩充系统调用包括读取DOS版本号、终止进程、读取中 断矢量、查找第一个相匹配的文件、读取校验状态等。 上述各系统调用,在MS-DOS的有关资料中都有详细介 绍。如要了解和使用,请查阅相关资料。
3.异步通信口输入(3号调用) 等待从标准异步通信接口输入一个字符,并送到AL中。 系统启动时,标准异步通信接口被初始化为2400位,无 奇偶校验位,8位字长,一个停止位。使用本调用,可依上 述速率及数据格式接收一个字符并存入AL中。 4.异步通信口输出(4号调用) 将存入DL中的字符输出到标准异步通信接口,初始异步 通信接口方式同3号调用。 5.字符打印输出(5号调用) 将存于DL中的字符输出到打印机。 6.直接控制台I/O (6号调用) 本调用可以从键盘输入也可以向显示器输出。当DL设置 为0FFH时,则清CF且等待键盘输入一个字符到AL中。当DL 设置为非0FFH时,则将DL中的字符向显示器输出。本调用 不对Ctrl+Break作检查。
11.读取日期(2AH调用) 调用后的日期存放在CX: DX中。其中CX中为年号,DH中 为月号,DL中为日号(均为二进制数)。 12.设置日期(2BH调用) 调用时,CX: DX中存放有效日期。其中CX存为年号,DH 为月号,DL为日号(均为二进制数)。 若设置有效,调用后AL=0,否则AL=0FFH.
dos中关于显示功能调用指令的用法
dos中关于显示功能调用指令的用法在DOS(Disk Operating System)中,我们可以使用一些显示功能调用指令来控制屏幕上的文本和光标的位置,以及改变文本的颜色和背景等。
这些指令在编写批处理文件或操作DOS命令提示符时非常有用。
本文将一步一步地回答关于显示功能调用指令的用法。
第一步:了解显示功能调用指令的基本概念在DOS中,显示功能调用指令通过INT 21h中断来实现。
其中,INT为中断的关键字,21h则表示21个字节的中断向量。
通过传递不同的功能号,我们可以执行不同的显示功能。
第二步:确定所需的功能号DOS中的显示功能调用指令有多种,每种指令对应一个特定的功能号。
以下是一些常用的功能号及其对应的功能:- 功能号0Eh:在屏幕上显示一个字符。
- 功能号02h:在光标的位置打印一个字符。
- 功能号09h:在光标的位置打印一个字符串。
- 功能号06h:在光标的位置清除整个屏幕。
- 功能号0Ah:在光标的位置获取键盘输入。
第三步:了解寄存器和参数在使用显示功能调用指令时,我们需要使用CPU的寄存器来传递参数和接收返回值。
以下是常用的寄存器及其作用:- AH寄存器:存储功能号。
- AL寄存器:存储需要传递的参数。
- BH寄存器:存储前景色(字符颜色)。
- BL寄存器:存储背景色(文本框的颜色)。
第四步:使用指令实现相关功能根据第二步中确定的功能号以及相关参数,我们可以使用显示功能调用指令来实现不同的功能。
下面是一些示例代码:1. 在屏幕上显示一个字符:MOV AH, 0Eh ; 设置功能号为0Eh,用于显示字符MOV AL, 'A' ;传递需要显示的字符INT 21h ; 调用显示功能2. 在光标的位置打印一个字符:MOV AH, 02h ; 设置功能号为02h,用于打印字符MOV DL, 'B' ; 传递需要打印的字符INT 21h ; 调用显示功能3. 在光标的位置打印一个字符串:MOV AH, 09h ; 设置功能号为09h,用于打印字符串MOV DX, OFFSET message ; 传递需要打印的字符串的地址INT 21h ; 调用显示功能message DB 'Hello, World!', 0Dh, 0Ah, '' ; 要打印的字符串4. 在光标的位置清除整个屏幕:MOV AH, 06h ; 设置功能号为06h,用于清除屏幕MOV AL, 00h ; 传递参数00h,表示清除整个屏幕MOV BH, 07h ; 设置背景色为白色MOV BL, 0Fh ; 设置前景色为黑色INT 21h ; 调用显示功能5. 在光标的位置获取键盘输入:MOV AH, 0Ah ; 设置功能号为0Ah,用于获取键盘输入MOV DX, OFFSET buffer ; 传递用于存储输入的缓冲区地址INT 21h ; 调用显示功能buffer DB 20h DUP('') ; 用于存储输入的缓冲区第五步:扩展更多功能除了上述示例代码中的功能,DOS还提供了许多其他的显示功能调用指令,如设置光标位置、滚动屏幕、设置文本颜色等。
编译语言int 21h
编译语言int 21hINT 21h是一个非常常见的指令,在基于x86架构的计算机上,它用于进行DOS系统功能调用。
这个指令非常重要,不仅因为它在早期的计算机上被广泛使用,而且因为它仍然在一些特定的环境中使用。
INT 21h的作用是向DOS系统请求一些操作,例如文件读写、键盘输入输出等等。
在这篇文章中,我们将从不同角度来深入探讨INT 21h的使用和工作原理。
首先我们来看一下INT 21h的具体用法。
INT 21h指令的格式如下:```INT 21h```这条指令的作用是将程序控制权交给DOS系统,并执行由寄存器AH中的值来确定的DOS功能。
之后DOS根据开发者的调用,执行相应的操作,并将结果存储在寄存器中,供程序进一步处理。
现在我们来看一下,INT 21h可以完成哪些功能。
DOS系统中提供了许多不同的功能,它们都可以通过INT 21h来访问。
其中一些常见的功能包括:1.文件读写:INT 21h提供了一系列的功能,用于对文件进行读写操作。
通过设置寄存器中的不同的参数,我们可以实现文件的打开、读取、写入、关闭等操作。
这使得开发者可以通过INT 21h来实现对文件的操作,从而简化了编程的过程。
2.键盘输入输出:INT 21h还提供了键盘输入输出的功能。
通过调用相应的函数,我们可以从键盘上读取输入,或者将数据输出到屏幕上。
这使得我们可以轻松地与用户交互,获取输入并显示输出。
3.系统调用:INT 21h还提供了一些系统调用的功能。
例如,我们可以通过INT 21h获取系统的时间和日期,设置DOS的中断向量等等。
这些系统调用提供了一些有用的功能,使得我们能够更好地控制和管理系统。
以上只是INT 21h功能的一部分,实际上,INT 21h提供了很多其他的功能。
通过设置不同的参数和调用不同的函数,我们可以访问到更多的功能。
接下来我们来看一下INT 21h的工作原理。
当我们执行INT 21h 指令时,处理器会将程序的控制权交给DOS系统。
8086常用DOS功能调用
输入功能
0DH 磁盘复位
清除文件缓冲区
0EH 选择磁盘驱 DL=驱动器号 动器
AL=驱动器数
0FH 打开文件 DS:DX=FCB 首地址
AL=00H 文件找到,AL=FFH
文件未找到
10H 关闭文件 DS:DX=FCB 首地址
AL=00H 目录修改成功,AL=
FFH 未找到
11H 查找第一个 DS:DX=FCB 首地址
21H 随机读
DS:DX=FCB 首地址
AL=00H 读成功
AL=01H 文件结束
AL=02H 缓冲区溢出
AL=03H 缓冲区不满
22H 随机写
DS:DX=FCB 首地址
AL=00H 写成功
AL=01H 盘满
AL=02H 缓冲区溢出
23H 文件长度 DS:DX=FCB 首地址
AL=0 成功,长度在 FCB。AL
AL=00H 找到,AL=FFH 未找
目录项
到
12H 查找下一个 DS:DX=FCB 首地址
AL=00H 文件找到,AL=FFH
目录项
未找到
13H 删除文件 DS:DX=FCB 首地址
AL=00H 删除成功,AL=FFH 未找到
14H 顺序读
DS:DX=FCB 首地址
AL=00H 读成功
AL=01H 文件结束,记录无数
45H 复制文件号 BX=文件号 1
成功:AX=文件号 2;
出错:AX=错误码
46H 强制文件号 BX=文件号 1,CX=文件AX=错误码
47H 取当前路径 DL=驱动器号,DS:SI=ASCII DS:SI=ASCII 串;
名
串地址
失败:AX=错误码
- 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指令及其结果)
实验思考与总结:
通过本次实验,我明白了宏调用的方法及宏调用与子程序的区别。