北方工业大学微机原理汇编指令INT21功能大全

合集下载

int 21h汇编语言

int 21h汇编语言

int 21h汇编语言
int 21h 是8086汇编语言中的一条指令,用于调用DOS的功能服务。

其功能和参数由AH(高8位寄存器)和AL(低8位
寄存器)指定。

int 21h的使用方法如下:
```
mov ah, 功能代码
mov dl, 参数
int 21h
```
其中,功能代码(Function Code)是指要调用的DOS功能服
务的编号,根据不同的功能服务,有不同的功能代码。

参数(Argument)是指传递给DOS功能服务的附加参数。

示例:
```
; 用int 21h调用DOS功能服务来显示一个字符
mov ah, 02h ; 功能代码02h表示显示字符
mov dl, 'A' ; 要显示的字符是'A'
int 21h
```
上述示例中,mov ah, 02h表示要调用DOS的02h号功能服务,即显示字符。

mov dl, 'A'将要显示的字符'A'存放在dl寄存器中。

最后一句int 21h,则代表调用DOS功能服务来显示字符。

总之,int 21h是汇编语言中调用DOS功能服务的常用指令,通过它可以实现一系列与DOS相关的操作,比如读写文件、显示字符和字符串等。

微机原理int_21h和int_16h调用

微机原理int_21h和int_16h调用

INT 10H 是由BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在INT 10H 内。

使用INT 10H 中断服务程序时,先指定AH 寄存器为下表编号其中之一,该编号表示欲调用的功用,而其他寄存器的详细说明,参考表后文字,当一切设定好之后再调用INT 10H。

底下是它们的说明:BIOS中断:1、显示服务(Video Service——INT 10H)00H —设置显示器模式01H —设置光标形状02H —设置光标位置03H —读取光标信息04H —读取光笔位置05H —设置显示页06H、07H —初始化或滚屏08H —读光标处的字符及其属性09H —在光标处按指定属性显示字符0AH —在当前光标处显示字符0BH —设置调色板、背景色或边框0CH —写图形象素0DH —读图形象素0EH —在Teletype模式下显示字符0FH —读取显示器模式10H —颜色11H —字体12H —显示器的配置13H —在Teletype模式下显示字符串1AH —读取/设置显示组合编码1BH —读取功能/状态信息1CH —保存/恢复显示器状态(1)、功能00H功能描述:设置显示器模式入口参数:AH=00HAL=显示器模式,见下表所示出口参数:无可用的显示模式如下所列:00H:40×25 16色文本01H:40×25 16色文本02H:80×25 16色文本03H: 80×25 16色文本04H:320×200 4色05H:320×200 4色06H:640×200 2色07H:80×25 2色文本08H:160×200 16色09H:320×200 16色0AH:640×200 4色0BH:保留0CH:保留0DH:320×200 16色0EH:640×200 16色0FH:640×350 2(单色)10H:640×350 4色10H:640×350 16色11H:640×480 2色12H:640×480 16色13H:640×480 256色对于超级VGA显示卡,我们可用AX=4F02H和下列BX的值来设置其显示模式。

汇编语言指令功能总结

汇编语言指令功能总结

汇编语言指令功能总结汇编语言是一种低级语言,主要用于编写机器码指令的程序。

在计算机科学领域中,汇编语言是非常重要的,因为它可以直接操作计算机的硬件资源。

本文将对汇编语言中常用的指令功能进行总结。

1. 数据传输指令数据传输指令用于将数据从一个位置传送到另一个位置。

常用的数据传输指令包括MOV(将数据从一个位置复制到另一个位置)、XCHG(交换两个位置的数据)、PUSH(将数据压入堆栈)、POP (将数据从堆栈中弹出)等。

2. 算术运算指令算术运算指令用于执行各种算术运算,例如加法、减法、乘法和除法。

常用的算术运算指令包括ADD(将两个数相加)、SUB(将一个数减去另一个数)、MUL(将两个数相乘)、DIV(将一个数除以另一个数)等。

3. 逻辑运算指令逻辑运算指令用于执行各种逻辑运算,例如与、或、非和异或。

常用的逻辑运算指令包括AND(对两个数执行与运算)、OR(对两个数执行或运算)、NOT(对一个数执行非运算)、XOR(对两个数执行异或运算)等。

4. 控制转移指令控制转移指令用于实现程序的跳转和循环执行。

常用的控制转移指令包括JMP(无条件跳转到指定的地址)、JZ(如果前一个运算结果为零则跳转)、JC(如果前一个运算结果进位则跳转)等。

5. 位操作指令位操作指令用于对数据的位进行操作。

常用的位操作指令包括AND(将两个数的对应位执行与运算)、OR(将两个数的对应位执行或运算)、NOT(取反操作)等。

6. 字符串操作指令字符串操作指令用于对字符串进行操作。

常用的字符串操作指令包括MOVSB(将一个字节从源地址复制到目的地址)、LODSB(将一个字节从源地址加载到AL寄存器)、STOSB(将AL寄存器中的值存储到目的地址)等。

7. 输入输出指令输入输出指令用于与计算机的输入输出设备进行交互。

常用的输入输出指令包括IN(从指定的端口读取数据)、OUT(将数据发送到指定的端口)等。

总结:汇编语言中的指令功能丰富多样,可以实现各种复杂的操作。

北方工业大学微机原理第4讲 8086 8088汇编语言程序设计

北方工业大学微机原理第4讲 8086 8088汇编语言程序设计



汇编语言源程序
用助记符编写
源程序的编译程序 汇编程序 机器语言 目标程序
4
汇编程序
汇编语言 源程序
微机原理与接口技术——第4讲 汇编语言程序设计
4.0 汇编语言源程序——基础知识

为什么要用汇编语言? 程序短小,节省内存; 执行速度快; 用户可直接对硬件实施控制。 实时性要求很高的程序常常还采用汇编语言程序。
符号地址 定义变量类型
定义变量值 及区域大小
29
微机原理与接口技术——第4讲 汇编语言程序设计
1. 数据定义伪指令助记符

DB DW
定义的变量为字节型 定义的变量为字类型(双字节)


DD
DQ
定义的变量为双字型(4字节)
定义的变量为4字型(8字节)
DT
定义的变量为10字节型
30
微机原理与接口技术——第4讲 汇编语言程序设计
指示性语句中至 少有一个操作数
13
微机原理与接口技术——第4讲 汇编语言程序设计
3. 标号与名字

标号后有冒号,在指令性语句前; 名字后不加冒号,在指示性语句前。 英文字母、数字及专用字符组成,最大长度不能超过31 个,且不能由数字打头,不能用保留字(如寄存器名,指 令助记符,伪指令)。
14
2. 汇编语言语句格式
指令性语句:
[标号:] [前缀] 助记符 [操作数],[操作数] [ ;注释]
指令的符号地址 标号后要有冒号
操作码 注释前加分号
12
微机原理与接口技术——第4讲 汇编语言程序设计
指示性语句格式
[名字] 伪指令助记符 操作数 [,操作数,…] [ ;注释]

int 21h汇编语言

int 21h汇编语言

int 21h汇编语言【实用版】目录1.汇编语言简介2.int 21h 的含义和作用3.int 21h 的典型用法4.int 21h 的实际应用案例5.int 21h 汇编语言的优缺点正文一、汇编语言简介汇编语言是一种低级编程语言,用于编写计算机程序。

它使用计算机处理器能够理解和执行的指令。

与高级编程语言相比,汇编语言更接近计算机硬件,执行速度更快。

但由于其语法较为复杂,编写难度较大。

汇编语言的一个显著特点是,它与特定的计算机架构密切相关,因此,针对不同的计算机体系结构,需要使用不同的汇编语言。

二、int 21h 的含义和作用int 21h 是汇编语言中一种特殊的指令,常用于 DOS(Disk Operating System)操作系统中。

它的含义是向 DOS 传递一个字节(8 位),以便操作系统能够根据该字节的值执行相应的操作。

int 21h 的主要作用是与DOS 进行交互,实现程序与操作系统之间的沟通。

三、int 21h 的典型用法int 21h 的用法相对简单。

在汇编代码中,只需要将需要传递给 DOS 的字节值放入寄存器,然后使用 int 21h 指令将该字节值传递给操作系统即可。

以下是一个典型的 int 21h 用法示例:```assume cs:codesegment, ds:datas datas segmentmsg db "Hello, DOS!", 0 datas endscodesegment segmentstart:; 初始化数据段寄存器mov ax, datasmov ds, ax; 显示字符串mov ah, 09hlea dx, msgint 21h; 退出程序mov ah, 4chint 21hcodesegment endsend start```四、int 21h 的实际应用案例int 21h 在 DOS 时代的程序开发中非常常见,特别是在编写系统调用、文件操作等底层程序时。

汇编指令简介

汇编指令简介

汇编指令简介1、MOV AH,09HINT 21H功能:输出字符串。

但是必须先把字符串的地址送到DX中,例如:LEA DX,INFONMOV AH,09HINT 21H2、MOV AH,10 或MOV AH,0AHINT 21H功能:从键盘输入字符串。

但是必须先把字符串将要存放的地址送到DX中,例如:LEA DX,BUFMOV AH,10INT 21HINT 21H 详解_字符功能调用类(Character-OrientedFunction)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功能描述:控制台(如:键盘、屏幕)输入/输出。

微机原理汇编常用指令

微机原理汇编常用指令

1) ADD 加法指令汇编格式:ADD 目的操作数,源操作数执行的操作:(目的操作数)←源操作数+目的操作数2) ADC 带进位加法指令汇编格式:ADC 目的操作数,源操作数执行的操作:(目的操作数)←源操作数+目的操作数+CF3) INC 增量指令汇编格式:INC 操作数执行的操作:(操作数)←操作数+1PS:以上三条指令都可作字或字节运算,除INC指令不影响CF标志位外,其他标志位都受指令操作结果的影响。

4) SUB 减法指令汇编格式:SUB 目的操作数,源操作数执行的操作:(目的操作数)←目的操作数-源操作数5) SBB 带借位减法指令汇编格式:SBB 目的操作数,源操作数执行的操作:(目的操作数)←目的操作数-源操作数-CF6) DEC 减量指令汇编格式:DEC 操作数执行的操作:(操作数)←操作数-17) NEG 求补指令汇编格式:NEG 操作数执行的操作:(操作数)←0-操作数8) CMP比较指令汇编格式:CMP 目的操作数,源操作数执行的操作:目的操作数-源操作数。

PS:以上五条指令都可作字或字节运算。

另外,除DEC指令不影响CF标志位外,其他指令都对标志位有影响。

9) MUL 无符号数乘法指令汇编格式:MUL 源操作数执行的操作:假设为字节操作(AX)←(AL)×源操作数假设为字操作(DX), (AX)←(AX)×源操作数10) IMUL 有符号数乘法指令汇编格式:IMUL 源操作数执行的操作:与MUL一样,只是处理的数据是有符号数,而MUL处理的数据是无符号数。

11) DIV 无符号数除法指令汇编格式:DIV 源操作数执行的操作:假设为字节操作:(AL)←(AX)/源操作数的商(AH)←(AX)/源操作数的余数假设为字操作:(AX)←(DX、AX)/源操作数的商(DX)←(DX、AX)/源操作数的余数商和余数均为无符号数。

12) IDIV 有符号数除法指令汇编格式:IDIV 源操作数执行的操作:与DIV一样,只是操作数是有符号数,商和余数均为有符号数,余数符号同被除数符号。

INT21H功能一览表

INT21H功能一览表

INT 21H 功能一览表汇编语言 2008-10-28 00:27 阅读505 评论0字号:大中小INT 21H 功能调用一览表编号功能入口参数出口参数0 程序终止CS=PSP段地址1 带回显的字符输入AL=8位数据2 字符输出DL=8位数据3 辅助设备输入AL=8位数据4 辅助设备输出DL=8位数据5 打印输出DL=8位数据6 直接控制台I/O DL=0FFH(输入请求)DL=0-OFEH(输出请求)AL=8位数据7 无回显过滤的字符输入AL=8位数据8 无回显的字符的输入AL=8位数据9 显示字符串DS:DX=字符串OAH 缓冲输入DS:DX=缓冲区段:位移OBH 取输入状态AL=0(无字符)AL=1(有字符)OCH 重置输入缓冲区后输入AL=功能号(1/6/7/8/OAH)DS:DX=缓冲区(功能OAH)AL=8位数据(功能1/6/7/8)ODH 重启动磁盘OEH 置缺省盘驱动器DL=驱动器码(0=A,1=B)AL=总的驱动器数OFH 打开文件DS:DX=FCB AL=0:成功,-1:失败10H 关闭文件DS:DX=FCB AL=0:成功,-1:失败11H 查找第一匹配目录DS:DX=FCB AL=0:成功,-1:失败12H 查找下一匹配目录DS:DX=FCB AL=0:成功,-1:失败13H 删除文件DS:DX=FCB AL=0:成功,-1:失败14H 顺序读DS:DX=FCB AL=返回码15H 顺序写DS:DX=FCB AL=返回码16H 创建文件DS:DX=FCB AL=0:成功,-1:失败17H 重命名文件DS:DX=FCB AL=0:成功,-1:失败18H 保留未用19H 取缺省盘驱动器AL=驱动器码(0=A)1AH 设置DTA DS:DX=DTA1BH 取缺省驱动器的分配信息AL=每簇的扇区数CX=每扇区的字节数DX=文件区所占簇数DS:BX=介质描述字节1CH 取指定驱动器的分配信息DL=驱动器码(0=缺省…)同上1DH 保留未用1EH 保留未用1FH 取缺省驱动器的DPB DS:BX=DPB20F 保留未用21F 随机读一个记录DS:DX=FCB AL=返回码22F 随机写一个记录DS:DX=FCB AL=返回码23F 取文件大小DS:DX=未打开的FCB AL=0:成功,-1:失败24F 设置随机记录号DS:DX=FCB25F置中断向量AL=中断号,DS:DX=入口26F 创建程序段前缀DX=新程序段的段地址27H 随机读若干记录CX=记录数DS:DX=FCBAL=返回码CX=实际记录数28H 随机写若干记录29H 分析文件名AL=控制分析标志DS:SI=正文串段:位移ES:DI=FCB段:位移AL=分析结果DS:SI=分析后的头一字符段的段:位移2AH 取系统日期CX=年,AL=星期DH=月,DL=日2BH 置系统日期CX=年,DH=月,DL=日AL=0:成功,-1:失败2CH 取系统时间CH=时,CL=分DH=秒,DL=百分秒2DH 置系统时间CX=时和分,DX=秒,百分秒AL=0:成功,-1:失败2EH 置确认标志AL=0:关闭,1:打开2FH 取DTA AL,AH=主,次版本30H 取DOS版本号AL=0:成功,-1失败31H 结束并驻留AL=返回码,DX=内存大小32H 取指定驱动器的DPB DL=驱动器码(0=缺省…)DS:BX=DPB33H 取或置Ctrl-Break标志AL=0(取标志)AL=1(置标志),DL=标志DL=标志状态(功能0)(0:关,1:开)34H 取DOS中断标志ES:BX=DOS中断标志35H 取中断向量AL=中断号ES:BX=中断程序入口36H 取磁盘的自由空间DL=驱动器码(0=缺省…)驱动器无效:AX=-1 有效:AX=每簇扇区数BX=自由簇数CX=每扇区字节数DX=文件区所占簇数37H 取或置命令行开关符,取或置名字检查开关AL=0(取开关符)AL=1(置开关符)DL=(开关符)AL=2(取检查开关)AL=3(置检查开关)DL=开关值DL=开关符(功能0)DL=检查开关(功能2)38H 取国家信息AL=0,DS:DX=缓冲区39H 创建子目录DS:DX=路径说明串注13AH 删除子目录DS:DX=路径说明串注13BH 设置当前目录DS:DX=路径说明串注13CH 创建文件DS:DX=文件说明,CX=属性注23DH 打开文件DS:DX=文件说明,AL=模式注23EH 关闭文件BX=文件号注13FH 读文件或设备BX=文件号CX=字符数CX:DX=缓冲区成功:CF=0,DX:AX=新指针位置失败:CF=1,AX=错误码40H 写文件或设备41H 删除文件DS:DX=文件说明串注142H 移文件指针AL=方式BX=文件号CX:DX=位移量成功:CF=0,DX:AX=新指针位置失败:CF=1,AX=错误码43H取或置文件属性AL=0(取属性)AL=1,CX=新属性(置属性)DS:DX=文件说明CX=属性(功能0)44H 设备驱动控制AL=0(取设备信息)AL=1(置设备信息)AL=2(读设备控制通道)AL=3(写设备控制通道)AL=4(同功能2)AL=5(同功能3)AL=6(取输入状态)AL=7(取输出状态)BX=文件号(功能0-3,6-7)BL=驱动器码(功能4-5)CX=字节数(功能2-5)DS:DX=缓冲区(功能2-5)失败:CF=1,AX=错误码成功:DX=设备信息(功能0)AL=状态(功能6/7)0:未准备,1:准备AX=传送字节数(功能2-5)45H 复制文件号BX=文件号成功:CF=0 AX=新文件号失败:CF=1,AX=错误码46H 强迫复制文件号BX=第1文件号CX=第2文件号注147H 取当前目录DL=驱动器码DS:SI=缓冲区注148H 分配内存BX=所需内存的节数成功:CF=0 AX=分配块的段失败:CF=1,AX=错误码BX=最大可用块大小49H 释放内存ES=释放块的段注14AH 修改内存分配ES=修改块的段BX=新长度(以节计)成功:CF=0 失败:CF=1,AX=错误码BX=最大可用块大小4BH 加载程序执行程序AL=0(加载并执行)AL=1(获得执行信息)AL=3(加载覆盖)DS:DX=程序说明ES:BX=参数块注14CH 带返回码结束AL=返回码4DH 取返回码AH=类型码,AL=返回码4EH 查找第一个匹配项CX=属性,DS:DX=文件说明注14FH 查找下一个匹配项注150H 设置PSP段地址BX=PSP段地址51H 取PSP段地址BX=PSP段地址52H 取DOS系统数据块ES:BX=DOS系统数据块53H 为块设备建立DPB DS:SI=BPB,ES:BP=DPB54H 取确认标志AL=标志值(0:关,1:开)55H 创建PSP DX=PSP56H 重命名文件DS:DX=旧名,ES:DI=新名注157H 取或置文件日期和时间AL=0,BX=文件号(取)AL=1,BX=文件号,CX=时间,DX=日期(置)成功:CF=0,CX=时间DX=日期(取)失败:CF=1,AX=错误码58H 取/置分配策略码AL=0取码=1置码(BX)BX=策略码成功:AX=策略码失败:AX=错误码59H 取扩充错误码AX=扩充错误码BH=错误类型BL=建议的操作CH=错误场所5AH 建立临时文件CX=文件属性DS:DX=ASCⅡZ串地址成功:AX=文件代号失败:AX=错误码5BH 建立新文件CX=文件属性DS:DX=ASCⅡZ串地址成功:AX=文件代号失败:AX=错误码5CH 控制文件存取AL=00封锁=01开启BX=文件代号CX:DX=文件位移SI:DI=文件长度失败:AX=错误码62H 取程序段前缀地址BX=PSP地址注1:出口参数为:成功时,CF=0;失败时,CF=1,AX=错误码注2:出口参数为:成功时,CF =0,AX=文件号;失败时,CF=1,AX=错误码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
失败:AX=FFFF
38
置/取国家信息
DS:DX=信息区首地址
BX=国家码(国际电话前缀码)
AX=错误码
39
建立子目录(MKDIR)
DS:DX=ASCIIZ串地址
AX=错误码
3A
删除子目录(RMDIR)
DS:DX=ASCIIZ串地址
AX=错误码
3B
改变当前目录(CHDIR)
DS:DX=ASCIIZ串地址
AL=输入字符
07
键盘输入(无回显)
AL=输入字符
08
键盘输入(无回显)
检测Ctrl-Break
AL=输入字符
09
显示字符串
DS:DX=串地址
'$'结束字符串
0A
键盘输入到缓冲区
DS:DX=缓冲区首地址
(DS:DX)=缓冲区最大字符数
(DS:DX+1)=实际输入的字符数
0B
检验键盘状态
AL=00有输入
data ends
code segment ;代码段
assume cs: code, ds:data;设定cs为代码段,ds为数据段
start: mov ax, data
mov ds,ax;设置DS段寄存器起始地址为data(段号)
mov dx,offset hello;hello的地址偏移量送dx
DS:DX=FCB首地址
25
设置中断向量
DS:DX=中断向量
AL=中断类型号
26
建立程序段前缀
DX=新的程序段前缀
27
随机分块读
DS:DX=FCB首地址
CX=记录数
AL=00读成功
=01文件结束
=02缓冲区太小,传输结束
=03缓冲区不满
28
随机分块写
DS:DX=FCB首地址
CX=记录数
AL=00写成功
=01盘满
=02缓冲区溢出
29
分析文件名
ES:DI=FCB首地址
DS:SI=ASCIIZ串
AL=控制分析标志
AL=00标准文件
=01多义文件
=02非法盘符
2A
取日期
CX=年
DH:DL=月:日(二进制)
2B
设置日期
CX:DH:DL=年:月:日
AL=00成功
=FF无效
2C
取时间
CH:CL=时:分
DH:DL=秒:1/100秒
mov ah,9;显示DS:DX=串地址开始,'$'结束字符串
int 21h;调用int 21h
mov dl, 0dh ;0dh回车
mov ah,2;显示输出dl中字符
int 21h
mov dl, 0ah ;0ah换行
mov ah,2;同上
int 21h
mov ah, 4ch ;返回dos
int 21h
code ends
end start
58
取/置分配策略码
AL=0取码
AL=1置码(BX)
成功:AX=策略码
失败:AX=错误码
59
取扩充错误码
AX=扩充错误码
BH=错误类型
BL=建议的操作
CH=错误场所
5A
建立临时文件
CX=文件属性
DS:DX=ASCIIZ串地址
成功:AX=文件代号
失败:AX=错误码
5B
建立新文件
CX=文件属性
DS:DX=ASCIIZ串地址
成功:AX=文件代号
失败:AX=错误码
5C
控制文件存取
AL=00封锁
=01开启
BX=文件代号
CX:DX=文件位移
SI:DI=文件长度
失败:AX=错误码
62
取程序段前缀
BX=PSP地址
例:汇编语言显示hello world
data segment ;数据段
hello db 'hello world!$'
CX=读取的字节数
读成功:
AX=实际读入的字节数
AX=0已到文件尾
读出错:AX=错误码
40
写文件或设备
DS:DX=数据缓冲区地址
BX=文件代号
CX=写入的字节数
写成功:
AX=实际写入的字节数
写出错:AX=错误码
41
删除文件
DS:DX=ASCIIZ串地址
成功:AX=00
出错:AX=错误码(2,5)
42
DL=驱动器号
同上
21
随机读
DS:DX=FCB首地址
AL=00读成功
=01文件结束
=02缓冲区溢出
=03缓冲区不满
22
随机写
DS:DX=FCB首地址
AL=00写成功
=01盘满
=02缓冲区溢出
23
测定文件大小
DS:DX=FCB首地址
AL=00成功(文件长度填入FCB)
AL=FF未找到
24
设置随机记录号
DOS功能调用
作者:来源:互联网
AH
功能
调用参数
返回参数
00
程序终止(同INT 20H)
CS=程序段前缀
01
键盘输入并回显
AL=输入字符
02
显示输出
DL=输出字符
03
异步通迅输入
AL=输入数据
04
异步通迅输出
DL=输出数据
05
打印机输出
DL=输出字符
06
直接控制台I/O
DL=FF(输入)
DL=字符(输出)
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首地址
移动文件指针
BX=文件代号
CX:DX=位移量
AL=移动方式(0:从文件头绝对位移,1:从当前位置相对移动,2:从文件尾绝对位移)
成功:DX:AX=新文件指针位置
出错:AX=错误码
43
置/取文件属性
DS:DX=ASCIIZ串地址
AL=0取文件属性
AL=1置文件属性
CX=文件属性
成功:CX=文件属性
失败:CX=错误码
4B
装配/执行程序
DS:DX=ASCIIZ串地址
ES:BX=参数区首地址
AL=0装入执行
AL=3装入不执行
失败:AX=错误码
4C
带返回码结束
AL=返回码
4D
取返回代码
AX=返回代码
4E
查找第一个匹配文件
DS:DX=ASCIIZ串地址
CX=属性
AX=出错代码(02,18)
4F
查找下一个匹配文件
DS:DX=ASCIIZ串地址
AX=错误码
3C
建立文件
DS:DX=ASCIIZ串地址
CX=文件属性
成功:AX=文件代号
错误:AX=错误码
3D
打开文件
DS:DX=ASCIIZ串地址
AL=0读
=1写
=3读/写
成功:AX=文件代号
错误:AX=错误码
3E
关闭文件
BX=文件代号
失败:AX=错误码
3F
读文件或设备
DS:DX=数据缓冲区地址
BX=文件代号
=01置状态(DL)
DL=00关闭检测
=01打开检测
DL=00关闭Ctrl-Break检测
=01打开Ctrl-Break检测
35
取中断向量
AL=中断类型
ES:BX=中断向量
36
取空闲磁盘空间
DL=驱动器号
0=缺省,1=A,2=B,...
成功:AX=每簇扇区数
BX=有效簇数
CX=每扇区字节数
DX=总簇数
DS:SI=ASCIIZ串地址
(DS:SI)=ASCIIZ串
失败:AX=出错码
48
分配内存空间
BX=申请内存容量
成功:AX=分配内存首地
失败:BX=最大可用内存
49
释放内容空间
ES=内存A
调整已分配的存储块
ES=原内存起始地址
BX=再申请的容量
失败:BX=最大可用空间
AX=错误码
(DS:DX+17)=新文件名
AL=00成功
AL=FF未成功
19
取当前缺省磁盘驱动器
AL=缺省的驱动器号0=A,1=B,2=C,...
1A
置DTA地址
DS:DX=DTA地址
1B
取缺省驱动器FAT信息
AL=每簇的扇区数
DS:BX=FAT标识字节
CX=物理扇区大小
DX=缺省驱动器的簇数
1C
取任一驱动器FAT信息
AL=FF无输入
0C
清除输入缓冲区并
请求指定的输入功能
AL=输入功能号
(1,6,7,8,A)
0D
磁盘复位
清除文件缓冲区
0E
指定当前缺省的磁盘驱动器
DL=驱动器号0=A,1=B,...
AL=驱动器数
0F
打开文件
DS:DX=FCB首地址
AL=00文件找到
AL=FF文件未找到
10
关闭文件
DS:DX=FCB首地址
相关文档
最新文档