DOS功能调用

合集下载

第9章 bios和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 汇编 子程序调用实例

dos 汇编 子程序调用实例

Dos汇编是一种广泛应用于早期计算机系统中的汇编语言。

通过使用汇编语言编写程序,开发者可以利用底层硬件资源,实现更高效的程序运行。

在Dos汇编中,子程序调用是常见的程序设计技巧之一,可以将复杂的任务分解成若干个子任务,分别实现,并通过子程序调用的方式进行组合。

下面我将通过一个实例来展示Dos汇编中的子程序调用。

假设我们需要编写一个程序,实现两个数相加的功能,我们可以通过子程序进行实现。

首先,我们需要定义两个数:num1 db 10num2 db 20接下来,我们需要定义一个子程序,用于将两个数相加并将结果返回:add_numbers procmov ax, [num1]add ax, [num2]retadd_numbers endp在上面的代码中,我们使用mov指令将第一个数加载到寄存器ax中,并使用add指令将第二个数与ax中的值相加。

最后,使用ret指令将结果返回。

接下来,我们需要编写主程序,调用子程序并输出结果:main proccall add_numbersmov ah, 9lea dx, result_msgint 21hmov ah, 2mov dl, aladd dl, 30hint 21hmov dl, ahadd dl, 30hint 21hmov ah, 4Chint 21hmain endp在上面的代码中,通过使用call指令调用子程序add_numbers,并将结果保存在寄存器ax中。

然后,使用mov指令将结果输出到屏幕上。

最后,我们需要定义一个结果消息字符串,并在程序末尾调用dos的退出程序的中断,使程序正常退出:result_msg db "The result is: ", 0Dh, 0Ah, "$"通过编译和运行上述代码,我们可以实现两个数相加并将结果输出到屏幕上。

总结起来,Dos汇编中的子程序调用是一种重要的程序设计技巧,可以将复杂的任务进行分解,并通过子程序的调用进行组合实现。

第九讲_DOS功能调用

第九讲_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的功能调用

5、4CH号系统功能调用——返回操作系统
功能:结束当前正在执行的ห้องสมุดไป่ตู้序,并返回操作系统,屏幕显 示操作系统提示符(C:\>,C为当前使用的驱动器名)。 入口参数:无 出口参数:无
二、常用的几种DOS功能调用
1、1号系统功能调用——键盘输入并回显
功能:系统扫描键盘并等待输入一个字符,有键按下时将字符 的键值(ASCII码)送入寄存器AL中,并在屏幕上显示该字符。
入口参数:无 出口参数:AL=读到字符的ASCII码
例:MOV AH,01 INT 21H
2、2号系统功能调用——显示输出
例、在屏幕上显示字符串:“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
例: MOV DL,0FFH MOV AH,6 INT 2lH ;把键盘输入的一个字符送入AL中 MOV DL,61H MOV AH,6 ;将DL中的字符“a”送屏幕显示 INT 21H
4、9号系统功能调用——显示字符 串
功能:将指定的内存缓冲区中的字符串送屏幕显示。 入口参数:DS∶DX指向缓冲区中字符串首址,字符串以“$” 字符作为结束标志。 出口参数:无
功能:向输出设备输出一个字符。 入口参数:DL=输出字符的ASCII码。 出口参数:无
例:MOV DL,′A′; “A”为要求输出字符的ASCII码 MOV AH,2 INT 21H

DOS系统功能调用介绍

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命令大全及用法。

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功能大全

DOS功能大全

DOS中断:1、字符功能调用类(Character-Oriented Function)01H、07H和08H —从标准输入设备输入字符02H —字符输出03H —辅助设备的输入04H —辅助设备的输出05H —打印输出06H —控制台输入/输出09H —显示字符串0AH —键盘缓冲输入0BH —检测输入状态0CH —清输入缓冲区的输入功能(1)、功能01H、07H和08H功能描述:从标准输入设备(如:键盘)读入一个字符。

该中断在处理过程中将一直处于等待状态直到有字符可读为止。

该输入还可被重定向,如果这样做,则无法判断文件是否已到文件尾入口参数:AH=01H,过滤掉控制字符,并回显=07H,不过滤掉控制字符,不回显=08H,过滤掉控制字符,不回显出口参数:AL=输入字符的ASCII码(2)、功能02H功能描述:向标准输出设备(如:屏幕)输出一个字符。

该输出还可被重定向,如果这样做,则将无法判断磁盘是否满入口参数:AH=02HDL=待输出字符的ASCII码出口参数:无(3)、功能03H功能描述:从辅助设备读入一个字符,该辅助设备的缺省值为COM1入口参数:AH=03H出口参数:AL=读入字符的ASCII码(4)、功能04H功能描述:向辅助设备输出一个字符,该辅助设备的缺省值为COM1入口参数:AH=04HDL=待输出字符的ASCII码出口参数:无(5)、功能05H功能描述:向标准的输出设备输出一个字符。

该缺省的输出设备为LPT1端口的打印机,除非用MODE命令来改变入口参数:AH=05HDL=待输出字符的ASCII码出口参数:无(6)、功能06H功能描述:控制台(如:键盘、屏幕)输入/输出。

如果输入/输出操作被重定向,那么,将无法判断文件是否已到文件尾,或磁盘已满入口参数:AH=06H,DL=输入/输出功能选择出口参数:若DL=00H-FEH,则此功能为输出,DL为待输出字符的ASCII码;若DL=0FFH,则此功能为输入,此时:若ZF=1,则无字符可读,否则,AL=读入字符的ASCII码(7)、功能09H功能描述:输出一个字符串到标准输出设备上。

DOS功能调用表

DOS功能调用表
CX=属性1-只读2-隐蔽
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功能和bios功能时的基本步骤

调用dos功能和bios功能时的基本步骤

调用dos功能和bios功能时的基本步骤调用DOS(Disk Operating System)功能和BIOS(BasicInput/Output System)功能时,需要按照以下基本步骤进行。

调用DOS功能的基本步骤:1.进入DOS环境:在操作系统中打开命令提示符窗口,或者通过启动计算机时按下F8键选择“进入DOS”。

2. 输入命令:在命令提示符下,输入要执行的DOS命令,例如dir、cd等。

3.执行命令:按下回车键执行输入的命令。

4.查看结果:根据命令的不同,DOS会显示相应的结果。

在调用DOS功能时的基本步骤通常是简单的以文本命令的形式输入要执行的操作,然后由DOS解析和执行这些命令,然后显示结果。

DOS功能通常用于执行文件管理、目录导航和基本任务管理等功能。

调用BIOS功能的基本步骤:1.启动计算机:按下电源按钮启动计算机。

2. 进入BIOS设置:在计算机启动过程中,按下指定的键(通常是Del、F2或F10键)进入BIOS设置界面。

3.导航和选择:在BIOS设置界面中,使用键盘上的方向键、回车键和其他特定键来导航和选择不同的选项。

4.修改设置:选择要修改的特定设置项,如启动设备顺序、日期和时间设置等,并按照界面指示进行修改。

5.保存和退出:保存对设置的修改,并退出BIOS设置界面。

6.重启计算机:计算机将会重新启动,并应用修改后的BIOS设置。

BIOS是嵌入在计算机主板上的固件,控制计算机的启动和硬件功能等。

调用BIOS功能时的基本步骤主要涉及进入BIOS设置界面、导航和选择设置项、修改设置并保存,最后重启计算机生效。

总而言之,调用DOS功能和BIOS功能的基本步骤都是通过命令行或设置界面进行操作,但在具体实施过程中,还会涉及到不同的命令和设置选项,具体步骤会有所变化。

调用dos功能和bios功能时的基本步骤

调用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系统功能调用

DOS系统功能调用

等待从键盘输入字符串,并存入设定的缓冲区内,同时回 显字符串,光标随着移动,回车符使光标回到行首。调用 方法如下: MOV INT AH,0AH 21H
缓冲区第一个字节存放它能保存的最大字符数(1~255,不能为‘0’!),该 值由用户程序自己事先设置。如果键如的字符数比此数大,那就会发出“嘟嘟” 声,而且光标不再向右移动。
DOS功能子程序的调用(续)
则输入串的指令如下: MOV AX,SEG MOV DS,AX MOV DX,OFFSET MOV AH,0AH INT 21H MAX_LEN MAX_LEN
4.字符显示(2号功能) 本功能子程序仅在屏幕上显示单个字符。要显示字符的ASCII码存 放在DL中。如果DL中存放退格键编码,在屏幕上便向左移一个字 符位置,并使该位置成为空格。移动后光标停留在那里。如要显 示字符‘A’,可用下列几条指令调用: MOV MOV INT DL,‘A’ AH,2 21H
DOS功能子程序的调用(续)
5.字符打印(5号功能) 5号功能子程序把DL中的字符(ASCII码)送入打印机接口,打印输出。 功能调用为: MOV MOV DL,‘A’ AH,5
INT
21H
6.字符串显示(9号功能) 9号功能子程序能在屏幕上显示多于一个的字符串。要显示的字符 串必须先放在内存一数据区中,且字符串以美元符号‘$’作为结束 标志。非显示字符,可以用它的ASCII码插入字符串中间。进行9号功 能调用时,先把待显示的字符串首地址的段基值和偏移量分别存入DS 和DX中。 在数据段中定义一个待显示符号串如: STRING DB “THIS IS A PROGRAM”,0AH,0DH,“$”
INT
MOV INT …… IRET
21H

DOS功能调用大全

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

常用DOS(INT 21H)功能调用表(AH功能调用号)
失败:AX=错误码 读成功:
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功能调用DOS(Disk Operating System)是一种操作系统,最初在20世纪80年代末和90年代初广泛应用于个人计算机中。

它提供了许多功能调用,用于执行各种操作。

1. 文件和目录操作:DOS的功能调用可以用于创建、复制、删除、移动文件和目录。

它允许用户在不同的目录之间切换,并显示当前目录的内容。

用户可以使用这些功能调用来管理计算机上的文件和目录。

2. 磁盘操作:DOS的功能调用允许用户格式化磁盘、验证磁盘的完整性,以及在磁盘上创建新的分区。

用户还可以使用这些功能调用来将文件从一个磁盘复制到另一个磁盘,并执行其他与磁盘相关的操作。

3. 内存管理:DOS的功能调用可以用于分配和释放内存。

它允许用户在程序执行过程中动态分配和释放内存块,以提高可用内存的利用率。

4. 进程控制:DOS的功能调用允许用户启动新的进程,并控制它们的执行。

用户可以使用这些功能调用来运行其他程序、传递命令行参数,并等待其他进程完成执行。

5. 输入和输出:DOS的功能调用可以用于读取用户输入和向用户输出信息。

它允许用户在程序执行过程中与用户进行交互,并显示相关的信息,以指导用户的操作。

6. 系统信息获取:DOS的功能调用可以用于获取系统的各种信息,如硬件配置、操作系统版本等。

用户可以使用这些功能调用来了解计算机的当前状态,并根据需要进行相应的操作。

总结起来,DOS的功能调用提供了许多操作系统级别的功能,使用户能够管理文件和目录、执行磁盘操作、分配和释放内存、控制进程、处理输入和输出,并获取系统信息。

这些功能调用为用户提供了一个强大的工具,以在DOS环境中执行各种操作。

MSDOS 系统功能调用表

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系统功能调用[终稿]

常用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号功能调用时,应当注意以下问题。

8086常用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=错误码

dos中关于显示功能调用指令的用法

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还提供了许多其他的显示功能调用指令,如设置光标位置、滚动屏幕、设置文本颜色等。

dos汇编call far 调用实例-概述说明以及解释

dos汇编call far 调用实例-概述说明以及解释

dos汇编call far 调用实例-概述说明以及解释1.引言1.1 概述DOS汇编是一种针对DOS操作系统的低级编程语言,它具有高效性和灵活性,可以直接操作计算机硬件资源。

其中,Call Far是一种汇编指令,用于在程序中实现远程调用。

本文将介绍DOS汇编中的Call Far调用,并通过实例来说明其具体应用和实现方法。

本文旨在帮助读者更深入地理解DOS汇编编程中的远程调用技术,并掌握其在实际项目中的应用。

1.2 文章结构文章结构部分的内容可以写成:文章结构部分将会介绍整篇文章的框架和重点内容安排,包括引言、正文和结论三部分的具体内容。

在本文中,将首先对DOS汇编和Call Far 调用进行简要介绍,然后通过具体实例来展示如何在DOS汇编中使用Call Far调用。

最后,结论部分将总结文章中的主要观点并探讨Call Far调用的应用意义和未来展望。

通过这样的结构安排,读者可以清晰地了解到整篇文章的内容和逻辑,帮助他们更好地理解DOS汇编中Call Far调用的知识和技巧。

1.3 目的目的部分的内容可以写为:本文旨在介绍DOS汇编中的Call Far调用指令的使用方法,通过具体的实例演示如何在程序中实现远调用功能,帮助读者更好地理解和掌握该知识点。

同时,通过本文的讲解,读者将能够深入了解DOS汇编的基础知识和技巧,提高在程序设计和开发过程中的实际应用能力。

希望本文能够帮助读者进一步深入学习DOS汇编编程,为他们的技术学习和实践提供帮助和指导。

2.正文2.1 DOS汇编简介DOS汇编是一种针对DOS操作系统的汇编语言。

它是在早期个人计算机时代广泛使用的一种编程语言,用于编写和开发各种软件程序和系统工具。

DOS汇编语言具有较高的灵活性和效率,可以直接操作计算机硬件资源,如内存和处理器等,实现更加精确和高效的程序控制。

在DOS汇编中,编程者可以直接访问计算机的物理内存和I/O端口,实现对计算机硬件的底层控制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我们的DOS功能调用(01,02,09,0A,06(待定)),大家自己看一下吧,挺好理解的
1)9,0A的功能调用,具体的再问我
缓冲区里的东西在masm里看不到,到debug里用p查(具体怎么查不会的我明天给你们讲)
DATAS SEGMENT
STR1 DB "please enter your English name:$"
INT 21H
MOV AH,4CH
INT 21H
;此处输入代码段代码
CODES ENDS
END START
2)DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
assume cs:code
begin: mov ah,01
int 21h
cmp al,41h
jb l2
cmp al,5bh
jb l1
cmp al,61h
jb l2
MYNAME DB 10(字符的最大数),?(实际键入的字符数),10 DUP(?)(字符串的首地址)
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV DL,'B'
MOV AH,02H(显示一个字符)
INT 21H;此处输入代码段代码
MOV AH,4CH
START:
MOV AX,DATAS
MOV DS,AX
LEA DX, STR1
MOV AH,9(显示字符串)
INT 21H
MOV AX,DATAS
MOV DS,AX
LEA DX,MYNAME
MOV AH,0AH(输入字符到缓冲区)
cmp al,7bh
jb l1 ;1号dos功能调用输入一个字符
l1:xor al,20h ;——这ቤተ መጻሕፍቲ ባይዱ是最重要的一条语句,完成大小写互换
mov dl,al
mov ah,2
int 21h ;2号dos功能调用输出转换后的字符
MOV AH,4CH
INT 21H
CODES ENDS
END START
3)DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
INT 21H
CODES ENDS
END START
DATAS SEGMENT
str1 db "hueih:$" ;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
code segment
mov ax,4c00h
int 21h
l2:mov dx,offset str1
mov ah,09h
int 21h
code ends
end begin
INT 21H
CODES ENDS
END START
4)DATAS SEGMENT
STR1 DB "HOW ARE YOU;$" ;此处输入堆栈段代码
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
LEA DX,STR1
MOV AH,09H(显示字符串)
INT 21H
;此处输入代码段代码
MOV AH,4CH
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AH,01H(从键盘上输入一个字符并回显在屏幕上)
INT 21H;此处输入代码段代码
相关文档
最新文档