8086DOS和BIOS功能调用
8086汇编语言程序设计——第一个程序
![8086汇编语言程序设计——第一个程序](https://img.taocdn.com/s3/m/b442f032492fb4daa58da0116c175f0e7cd11978.png)
8086汇编语⾔程序设计——第⼀个程序本系列以80X86系列微型计算机为基础,以MASM5.0为汇编上机实验环境,重点介绍Intel8086指令系统。
Intel8086指令系统中有100多条指令,利⽤这些指令可以编写出复杂的程序实现更多功能。
汇编语⾔是直接控制计算机硬件⼯作的最简便的语⾔。
学习了汇编语⾔可具有在CPU寄存器级上进⾏控制和操作的能⼒,可获得直接对计算机硬件底层编程的经验。
⼀个计算的例⼦例 *编写⼀个汇编语⾔程序,实现下列公式计算。
假设X=4,Y=5汇编指令如下:如果在DEBUG下⽤A命令输⼊这些指令,必须把X、Y换成具体的数值;Z、Z1是存储单元地址,最后两条指令可写为MOV [0],AL和MOV [1],AH,这样才能⽤T命令执⾏。
D:\dos〉DEBUG-AMOV AL,4ADD AL,5MOV BL,8IMUL BLMOV BL,4MOV BH,0SUB AX,BXMOV BL,2IDIV BLMOV [0],ALMOV [1],AH采⽤DEBUG的A命令输⼊程序的做法明显不⽅便,⼀是⽆法给出变量名即符号地址,⼆是调试修改程序不便。
1. 编写⼀个完整的汇编语⾔源程序需要增加段定义伪指令和定义数据存储单元伪指令等必须有的伪指令。
伪指令与C语⾔等⾼级语⾔中的说明性语句的含义类似,起到说明作⽤。
⽤记事本gedit或者vi编写,保存到dos⽬录下注释符号为;号2. 汇编、链接、执⾏汇编语⾔源程序既可以⽤⼤写字母也可以⽤⼩写字母书写。
汇编语⾔程序建⽴及汇编过程如图所⽰。
⽤户编写的源程序要经汇编程序MASM汇编(翻译)后⽣成⼆进制⽬标程序,⽂件名默认与源程序同名、扩展名为.OBJ;再经过LINK连接⽣成可执⾏程序,⽂件名默认与源程序同名、扩展名为.EXE。
注意:源程序⼀定要和MASM和LINK⽂件放在同⼀个⽂件夹中。
执⾏MASM和LINK命令时需要按多次回车。
3. 在DEBUG下执⾏程序MOV AH,4C指令对应的偏移地址是0023,这就是断点(所谓断点,就是程序执⾏到该处停下来不再继续)。
BIOS调用和DOS调用
![BIOS调用和DOS调用](https://img.taocdn.com/s3/m/1c0dddcb05087632311212ba.png)
一.概述BIOS是Basic Input Output System的缩写,是固化在只读存储器ROM中的基本输入输出程序。
BIOS保存着微机系统最重要的基本输入输出程序、系统信息设置、开机自检程序和系统启动自举程序等,用来进行系统测试、初始化引导程序、对I/O设备进行控制。
DOS是Disk Operation System(磁盘操作系统)的缩写,是用来控制和管理计算机的硬件资源、方便用户使用的程序集合。
由于这些软件程序存放在磁盘上,而且主要功能是进行文件管理和输入输出设备管理,故称为磁盘操作系统。
磁盘操作系统是人和机器交互的界面,用户通过操作系统使用和操作计算机。
DOS和BIOS提供了大量的可供用户直接使用的系统服务程序。
DOS系统中的IO.SYS(基本输入输出模块)通过BIOS控制、管理外部设备。
一般来说,用户可以通过用4种方式控制PC的硬件。
(1)应用高级语言中的语句进行控制。
但高级语言中的I/O语句比较少,执行速度慢。
(2)应用DOS提供的一些功能服务程序来控制,可对显示器、键盘、打印机、串行通信等字符设备提供输入输出服务。
DOS提供了近百种I/O功能服务程序可供调用,这是一种高层次的调用,编程者无须对硬件有太深的了解。
使用DOS调用,编程简单,调试方便,可移植性好。
(3)应用BIOS提供的功能程序来控制硬件,这是低层次的控制,要求编程者对硬件有相当深入的了解。
BIOS调用速度快,适用于高速运行的场合,但使用BIOS调用的汇编语言或c语言程序可移植性比较差另外,BIOIS固化在ROM中,不依赖于DOS操作系统。
(4)直接使用汇编语言编程进行控制。
要求编程者对I/O设备的地址、功能比较熟悉。
二.中断和中断向量表1.中断(Interrupt)a.中断的概念中断是指在计算机运行期间,由于程序的事先安排或者系统内发生的非寻常的或非预期的急需处理事件,使CPU暂时中止当前正在执行的程序而转去执行相应的事件处理程序的过程。
BIOS_DOS中断功能调用大全
![BIOS_DOS中断功能调用大全](https://img.taocdn.com/s3/m/5d848243852458fb770b5658.png)
BIOS和DOS中断大全DOS中断:INT 21H1、字符功能调用类(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功能描述:输出一个字符串到标准输出设备上。
80X86汇编DOS功能调用详解
![80X86汇编DOS功能调用详解](https://img.taocdn.com/s3/m/62cb89f8aef8941ea76e05cb.png)
80X86汇编DOS功能调用详解【转】80X86汇编DOS功能调用详解为了使用方便,将DOS层功能模块所提供的88个子程序统一顺序编号从00H到57H。
DOS 系统功能调用方式如:1.置入口参数;2.将子程序编号送入AH寄存器;3.执行中断指令:INT 21H。
有的子程序不需入口参数,但大部分需要将参数送入指定地点。
程序员只须给出这三个方面的信息,不必关心具体程序如何,在内存中的存放地址如何,DOS根据所给的信息,自动转入相应的子程序去执行。
调用结束后有出口参数时一般在寄存器中,有些子程序调用结束时会在屏幕上看到结果。
DOS系统功能调用所提供的子程序,按其功能分类可分为以下六组:1.字符I/O管理编号:01H到0CH,管理显示器、键盘、打印机及异步通讯接口的字符输入输出。
2.传统的文件管理编号:0DH到24H,27H到29H,管理磁盘,包括打开关闭文件、查找目录、删除文件、建立文件、重新命名文件、顺序读写文件、随机读写文件等功能。
3.扩充的文件管理编号:39H到3BH,47H,管理目录,包括建立子目录,修改当前目录,删除目录,取当前目录等功能。
编号:3CH到46H,管理文件,包括建立、打开、关闭文件,从文件或设备读写数据,在指定的目录里删除文件、修改文件属性等。
4.内存管理编号:48H到4H,管理内存,包括分配内存,释放已分配的内存,执行程序等。
5.作业管理编号:00H退出用户程序并返回操作系统26H建立一个程序段31H终止用户程序并驻留在内存4BH装入一个程序4CH终止当前程序并返回操作系统4DH取子进程的返回代码6.其他资源管理编号:25H,35H,置中断向量和取中断向量2AH,2BH,取日期和设置日期2CH,2DH,取时间和设置时间30H,38H,取DOS版本号及国别信息其它为用于处理树形目录结构的扩充的文件管理系统调用和用于DOS内部的扩充的系统调用。
常用的DOS系统功能调用使用说明1、00H号调用终止程序,返回使用DOS (一般常用4CH)(1)调用方式:AH←00H(调用号)INT 21H(2)说明:1)完成终止当前程序执行返回到操作系统状态。
汇编语言---dos和bios功能调用
![汇编语言---dos和bios功能调用](https://img.taocdn.com/s3/m/c3bfb04669eae009581becb0.png)
下面介绍一下其他功能: 下面介绍一下其他功能: (1)AH=25H:设置中断向量 ) : 入口参数: 中断号。 入口参数:AL=中断号。 中断号 DS:DX=中断向量。 中断向量。 : 中断向量 功能: 所指中断号的中断向量设置为DS: 。 功能:将AL所指中断号的中断向量设置为 :DX。 所指中断号的中断向量设置为 (2)AH=35H:获取中断向量 ) : 入口参数: 中断号。 入口参数:AL=中断号。 中断号 出口参数: : 中断向量。 出口参数:ES:BX=中断向量。 中断向量 功能: 的指中断号的中断向量由ES: 返回 返回。 功能:将AL的指中断号的中断向量由 :BX返回。 的指中断号的中断向量由 (3)AH=31H:程序终止并驻留内存 ) : 入口参数: 返回码。 入口参数:AL=返回码。 返回码 DX=驻留内存的节数(1字=16字节)。 驻留内存的节数( 字 字节)。 驻留内存的节数 字节 功能:终止程序执行,全由DX所确定的一部分代码工 功能:终止程序执行,全由 所确定的一部分代码工 数据仍留在内存中。 数据仍留在内存中。
• ③ 应用BIOS提供的功能程序来控制硬件。这是低层次 控制,要求编程者对硬件有相当深入的了解。当BIOS 与DOS提供的功能相同时,应首先选用DOS。BIOS固 化在ROM中,不依赖于DOS操作系统,使用BIOS软中 断调用子程序可直接控制系统硬件。BIOS调用速度快, 适用于高速运行的场合。中断调用可用软件中断指令 “INT n”来实现,n为中断类型码。使用BIOS调用的汇 编语言和C语言的程序可移植性比较差。 • • ④ 直接使用汇编语言编程进行控制。要求编程者对I/O 设备的地址、功能比较熟悉。
习 题 1.假设 假设VAR1和VAR2为字变量,LAB为标号,试指出下 为字变量, 为标号, 假设 和 为字变量 为标号 列指令的错误之处: 列指令的错误之处: (1)ADD VAR1,VAR2 ) , (2)SUB AL,VAR1 ) , (3)JMP LAB[SI] ) (4)JNZ VAR1 ) (5数据 画图说明下列语句所分配的存储空间及初始化的数据 值。 ,-12H,3 DUP (1)BYTE_VAR DB ‘BYTE’,12,- ) , ,- , ,?,2 (0,?, DUP(1,2),?) ,?, ( , ),?) ,?,-5, (2)WORD_VAR DW 5 DUP(0,1,2),?,- , ) , , ,?,- ‘BY’,‘TE’,256H , ,
调用dos功能和bios功能时的基本步骤
![调用dos功能和bios功能时的基本步骤](https://img.taocdn.com/s3/m/b2874a08b80d6c85ec3a87c24028915f804d849e.png)
调用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功能时的基本步骤](https://img.taocdn.com/s3/m/2379c5aa80c758f5f61fb7360b4c2e3f572725bc.png)
调用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及BIOS调用
![DOS及BIOS调用](https://img.taocdn.com/s3/m/a6dcc9781711cc7931b716ce.png)
与DOS相比,BIOS是在更低的层次上为用户提供系统服务 DOS相比,BIOS是在更低的层次上为用户提供系统服务 相比 是在更低的层次上 BIOS功能调用 功能调用 类型号 00 H 01 H 02 H 03 H 04 H 05 H 06 H 07 H 08 H 09 H 0A H 0B H 0C H 0D H 0E H 0F H 10 H 中断功能 被零除 单步 不可屏蔽 断点 溢出 打印屏幕 保留 保留 日时钟 键盘 保留 串口2 串口 串口1 串口 硬盘 软盘 打印机 显示器 类型号 11 H 12 H 13 H 14 H 15 H 16 H 17 H 18 H 19 H 1A H 1B H 1C H 1D H 1E H 1F H 40 H 41 H 中断功能 设备检测 存储容量 磁盘I/O 磁盘 通信I/O 通信 盒式磁带I/O 盒式磁带I/O 键盘I/O 键盘 打印机I/O 打印机 ROM BASIC 引导 日时钟 Ctrl-Break 定时器报时 显示器参数 软盘参数 图形字符扩展 保留给软盘 硬盘参数
DOS调用与BIOS调用两者的区别 DOS调用与BIOS调用两者的区别 调用与BIOS
DOS功能调用在更高层次上提供了与BIOS类同 DOS功能调用在更高层次上提供了与BIOS类同 功能调用在更高层次上提供了与BIOS 的功能。 的功能。 DOS调用与BIOS调用两者的区别 DOS调用与BIOS调用两者的区别 调用与BIOS 调用BIOS中断程序比调用DOS的复杂一些, BIOS中断程序比调用DOS的复杂一些 调用BIOS中断程序比调用DOS的复杂一些, 但运行速度快,功能更强; 但运行速度快,功能更强; DOS功能调用只适用于DOS环境 功能调用只适用于DOS环境, BIOS功 DOS功能调用只适用于DOS环境,而BIOS功 能调用不受任何操作系统的约束; 能调用不受任何操作系统的约束; 某些功能只有BIOS具有。 BIOS具有 某些功能只有BIOS具有。
8086dos与bios功能调用
![8086dos与bios功能调用](https://img.taocdn.com/s3/m/a3ea0b78192e45361166f52d.png)
AH=发行号 BH=DOS 版本标志
BL:CX=序号(24 位)
31 结束并驻留
AL=返回码 DX=驻留区大小
32 取驱动器参数块
DL=驱动器号
AL=00 文件找到 AL=FF 文件未找到 AL=00 目 录 修 改 成 功 AL=FF 目录中未找到文件
11
查找第 一个 目录项 (FCB)
DS:DX=FCB 首地址
AL=00 找到匹配的目录项 AL=FF 未找到匹配的目录 项
12
查找下 一个 目录项 (FCB)
DS:DX=FCB 首地址使用 通配符进行目录项查找
AH=状态字节 =00 读成功 =01 冗余检验错 =02 无数据传输 =04 无引导 =80 非法命令
AH=状态字节(同上 )
AL=字符码 AH=扫描 码 ZF=0 AL=字符码 AH= 扫描码 ZF=1 缓冲区无按键等 待 AL=键盘标志字节
17 0
17 1 17 2 18 19 1A 0 1A 1 1A 6 1A 7
AL=00 找到匹配的目录项 AL=FF 未找到匹配的目录 项
13 删除文件(FCB)
DS:DX=FCB 首地址
AL=00 删除成功 AL=FF 文件未删除
14 顺序读文件(FCB) DS:DX=FCB 首地址
15
顺序写文件(FCB) DS:DX=FCB 首地址
16 建文件(FCB)
DS:DX=FCB 首地址
AL=每簇的扇区数 DS : BX= 指 向 介质 说 明 的 指针 CX=物理扇区的字节数 DX=每磁盘簇数
同上
AL=00 无错=FF 出错 DS:BX=磁盘参数块地址 AL=00 读成功 =01 文件结束 =02 DTA 边界错误 =03 读部份记录 AL=00 写成功 =01 磁盘满或是只读文件 =02DTA 边界错误 AL=00 成功,记录数填入 FCB =FF 未找到匹配的文件
实验二 DOS、BIOS系统功能调用
![实验二 DOS、BIOS系统功能调用](https://img.taocdn.com/s3/m/c7e40743b307e87101f696c9.png)
键盘I/O中断调用 键盘驱动程序的中断类型号为16H,用INT 16H调用. 1、功能号 AH=0 功 能:从键盘读字符到AL中 出口参数:AL中为键盘输入字符的ASCII码。 2、功能号 AH=1 功 能:从键盘读字符到AL中,并设置ZF标志,若 有键按下,则置ZF标志位为0,否则,置ZF 标志为1。
实验内容
编写一段程序,从键盘输入字符并显示, 若输入字符达到10个则退出,若在输入字符 过程中,有回车键也要求退出。
编写一段程序,要求显示一个字符串 “DOS AND BIOS”,显示之后,按ES C退出程序。
BIபைடு நூலகம்S中断调用
IBM-PC写在ROM中的程序,一是BASIC语 言解释程序,二是基本输入/输出程序。 BIOS程序主要功能是驱动系统配置的常用 外设,程序员在编程时,可以不必过多的 关心硬件的物理特性和逻辑结构。 与DOS的系统功能调用相比,使用BIOS能 完成更复杂的输入/输出操作。
常用BIOS中断调用
显示字符串(9号功能)示例
L1:
MOV AX,data MOV DS,AX MOV DX,OFFSET MESS1 MOV AH, 09H INT 21H JMP EXIT
五、程序退出(4CH号功能) 调用格式 MOV AH,4CH INT 21H 功能: 返回DOS操作系统。
ASCII码控制字符的功能
0DH 0AH 1BH
回车功能 换行功能 ESC功能
三、控制台输入(8号功能) 调用格式 MOV AH,8 INT 21H 功能:
DOS和BIOS功能调用
![DOS和BIOS功能调用](https://img.taocdn.com/s3/m/05c27a9ddd88d0d233d46a37.png)
• 在使用0AH号功能调用时,应当注意以下问题。 • ① 执行前先定义一个输入缓冲区,缓冲区内第一个字 节定义为允许最多输入的字符个数,字符个数应包括回车 符0DH在内,不能为“0”值。第二个字节保留,在执行程 序完毕后存入输入的实际字符个数。从第三个字节开始存 入从键盘上接收字符的ASCII码。若实际输入的字符个数 少于定义的最大字符个数,则缓冲区其他单元自动清0。 若实际输入的字符个数大于定义的字符个数,其后输入的 字符丢弃不用,且响铃示警,一直到输入回车键为止。整 个缓冲区的长度等于最大字符个数再加2。 • ② 应当将缓冲区首地址的段基址和偏移地址分别存入 DS和DX寄存器中
• 在一般情况下,用户程序通过MSDOS.SYS 使用外部设备。应用汇编语言编程,可以 直接使用BIOS中的软中断指令对应的中断 调用程序,若对内部硬件比较熟悉,可以 用IN和OUT指令对设备进行端口编程。
• 一般来说,用户可以用四种方式控制PC的硬件。
① 应用高级语言的相应功能语句进行控制。但 高级语言中的I/O语句比较少,执行速度慢。 ② 应用DOS提供的功能程序来控制硬件。可对 显示器、键盘、打印机、串行通信等字符设备提 供输入/输出服务。DOS提供了近百种I/O功能服 务程序,编程者无须对硬件有太深的了解,即可 调用。这是一种高层次的调用,使用DOS调用, 编程简单,调试方便,可移植性好。
• 随着计算机硬件的发展,DOS版本从DOS 1.0逐 步升级到DOS 7.0版本,版本越高功能越强。 DOS由三个层次的程序文件及一个BOOT引导程 序构成。三个层次模块文件是: • IO.SYS 输入/输出管理系统 • MSDOS.SYS 文件管理系统 • 命令处理系统
• 基本输入/输出系统BIOS(basic input/output system)是固化在只读存储器 ROM中的基本输入/输出程序。它直接可对 外部设备进行设备升级的控制,包括系统 测试、初始化引导程序、控制I/O设备的服 务程序等。
DOS系统功能调用及BIOS调用实验报告
![DOS系统功能调用及BIOS调用实验报告](https://img.taocdn.com/s3/m/2a4da4d90408763231126edb6f1aff00bfd57040.png)
实 验 报 告学院名称 :实验名称 : DOS系统功能调用及BIOS调用班级 :学生姓名 :学生学号 :DOS 系统功能调用及BIOS 调用实验【实验目的】(1)(1) 熟悉PC 机中断系统的有关概念,了解中断向量表的概念。
机中断系统的有关概念,了解中断向量表的概念。
(2)(2) 掌握常用DOS 系统功能调用的方法。
系统功能调用的方法。
(3)(3) 掌握BIOS 中常用设备(如显示器、打印机等)驱动程序的调用方法。
中常用设备(如显示器、打印机等)驱动程序的调用方法。
【实验原理】微型计算机系统为汇编用户提供两个程序接口,一个是DOS 系统功能调用,另一个是ROM 中的BIOS BIOS((basic input/output system )。
系统功能调用和BIOS 由一系列的中断服务程序构成,它们使得程序设计人员不必详细了解硬件的内部结构和工作原理,直接调用这些中断服务程序就可以使用系统的硬件,尤其是I/O 设备的使用和管理。
用和管理。
IBM PC 中断系统为了识别和响应每一种中断中断系统为了识别和响应每一种中断,,将它们赋以0000~~FFH 中断类型号,故中断系统能出理256种中断。
每种类型的中断都对应一个中断服务程序,每个中断服务程序的入口地址包括该程序所在段的段地址和段内偏移地址,需4个存储单元来存放。
将256种中断对应的中断服务程序排成一张表,放在内存底端00000H 00000H~~003FFH 单元中,单元中,系统在响应中断时根据得到的中断类型号到该表对应的四个存储单系统在响应中断时根据得到的中断类型号到该表对应的四个存储单元中即可找到要执行的中断服务程序的入口地址。
元中即可找到要执行的中断服务程序的入口地址。
从功能上分。
中断向量表中的中断类型可分为如下三类从功能上分。
中断向量表中的中断类型可分为如下三类: :(1)(1) 磁盘操作系统DOS 提供的中断服务程序,中断类型号为20H 20H~~2FH 2FH。
第5章 DOS和BIOS系统功能调用
![第5章 DOS和BIOS系统功能调用](https://img.taocdn.com/s3/m/ef07b0c680eb6294dd886c2e.png)
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.
8086常用DOS功能调用
![8086常用DOS功能调用](https://img.taocdn.com/s3/m/21f37e685bcfa1c7aa00b52acfc789eb172d9e85.png)
输入功能
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=错误码
8086DOS和BIOS功能调用
![8086DOS和BIOS功能调用](https://img.taocdn.com/s3/m/c970aaf5c8d376eeaeaa3148.png)
第5章 汇编语言程序设计
① 磁盘读写中断。INT 25H、INT 26H分别用来读 和写磁盘上的若干扇区,这实际上是两条BIOS调用。 ② 程序退出中断。INT 20H、INT 27H都为程序的 退出命令。 ③ 假脱机打印文件中断。INT 2FH用来实现假脱机 打印文件命令PRINT。 ④ 系统功能调用。又称为DOS功能调用,是指 INT 21H 中断。它是可供系统程序和应用程序调用的一个极 其重要的中断,内含近百个子功能。
第5章 汇编语言程序设计
3、BIOS中断调用
在IBM-PC机的ROM存储器中包含一些基本输入输 出子程序。这些基本输入输出子程序简称为BIOS。它们 的功能与DOS中字符I/O功能相似,用户也可通过软件 中断方式直接调用。由于BIOS提供的字符I/O功能直接 依赖于硬件,因而调用它们比调用DOS字符I/O功能速 度更快。例如: ☆键盘输入子程序。调用指令为 INT 16H ☆屏幕显示子程序。调用指令为 INT 10H ☆打印输出子程序。调用指令为 INT 17H
第5章 汇编语言程序设计
1、DOS中断及功能调用
DOS常用的9类中断(20H~27H和2FH)可分为两
种:
⑴ DOS专用中断。DOS专用中断是指INT 22H、 INT 23H、 INT 24H 3个中断,属DOS操作时专用,用 户不要直接使用。 ⑵ DOS可调用中断。DOS可调用中断是指INT 20H、 INT 21H、 INT 25H、 INT 26H、 INT 27H和 INT 2FH 6个中断。这6个中断都供用户直接调用,但 都必须要满足一定的入口条件。其中:
第5章 汇编语言程序设计
⑵ 0AH号调用(字符串输入) 从键盘接收字符串到内存输入缓冲区,要求事 先定义一个输入缓冲区,缓冲区第一个字节指出缓冲 区的字符个数,不能为零。第二个字节保留已用作填 写输入的字符实际个数。从第三个字节开始存放从键 盘上接收的字符。调用时,要求DS:DX指向输入缓冲 区的首地址。键入字符串以回车结束。 例如,从键盘输入一个小于50个字符的字符串 数据。其程序设计方法是:
[定稿]80X86汇编DOS功能调用详解
![[定稿]80X86汇编DOS功能调用详解](https://img.taocdn.com/s3/m/bd6eda667ed5360cba1aa8114431b90d6c8589b6.png)
80X86汇编DOS功能调用详解为了使用方便,将DOS层功能模块所提供的88个子程序统一顺序编号从00H到57H。
DOS 系统功能调用方式如:001.置入口参数;002.将子程序编号送入AH寄存器;00003.执行中断指令:INT 21H。
有的子程序不需入口参数,但大部分需要将参数送入指定地点。
程序员只须给出这三个方面的信息,不必关心具体程序如何,在内存中的存放地址如何,DOS根据所给的信息,自动转入相应的子程序去执行。
调用结束后有出口参数时一般在寄存器中,有些子程序调用结束时会在屏幕上看到结果。
DOS系统功能调用所提供的子程序,按其功能分类可分为以下六组:1.字符I/O管理编号:01H到0CH,管理显示器、键盘、打印机及异步通讯接口的字符输入输出。
2.传统的文件管理编号:0DH到24H,27H到29H,管理磁盘,包括打开关闭文件、查找目录、删除文件、建立文件、重新命名文件、顺序读写文件、随机读写文件等功能。
3.扩充的文件管理编号:39H到3BH,47H,管理目录,包括建立子目录,修改当前目录,删除目录,取当前目录等功能。
编号:3CH到46H,管理文件,包括建立、打开、关闭文件,从文件或设备读写数据,在指定的目录里删除文件、修改文件属性等。
4.内存管理编号:48H到4H,管理内存,包括分配内存,释放已分配的内存,执行程序等。
5.作业管理编号:00H退出用户程序并返回操作系统26H建立一个程序段31H终止用户程序并驻留在内存4BH装入一个程序4CH终止当前程序并返回操作系统4DH取子进程的返回代码6.其他资源管理编号:25H,35H,置中断向量和取中断向量2AH,2BH,取日期和设置日期2CH,2DH,取时间和设置时间30H,38H,取DOS版本号及国别信息其它为用于处理树形目录结构的扩充的文件管理系统调用和用于DOS内部的扩充的系统调用。
常用的DOS系统功能调用使用说明1、00H号调用终止程序,返回使用DOS (一般常用4CH)(1)调用方式:AH←00H(调用号)INT 21H(2)说明:1)完成终止当前程序执行返回到操作系统状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
即将字符“A”显示在屏幕上或输出到打印机。
第5章 汇编语言程序设计
⑷ 09H号调用(字符串输出) 9号功能调用是将缓冲区中的一组以“$”结束的 字符串送标准输出设备输出(显示器或打印机)。调用 前必须将输出缓冲区的首地址送DS:DX。例如: DATA SEGMENT BUF DB ‘HOW DO YOU DO ? $’ DATA ENDS CODE SEGMENT … MOV DX, OFFSET BUF MOV AH, 9 INT 21H … CODE ENDS
第5章 汇编语言程序设计
5.5.6 DOS和BIOS功能调用
为节省编程工作量与优化程序结构 ,在DOS及 BIOS中预先设计好了一系列通用子程序,以便DOS及 BIOS调用。由于这种调用采用的是以中断指令INT n 的内部中断方式进行的,所以常称为DOS及BIOS中断 调用。在一个中断服务程序中往往包含多个功能相对独 立的子程序,所以也将中断调用称为系统功能调用或功 能调用或中断功能调用。
第5章 汇编语言程序设计
DOS及BIOS功能调用属于软件中断,即可用INT n指令调用的中断,它分为三部分:
⑴ DOS 中断,占用中断类型号为20H~27H和 2FH,其余类型号保留。 ⑵ ROM BIOS 中断,占用中断类型号10H ~ 1FH。 ⑶ 自由中断,占用中断类型号40H ~FFH,可供 系统或应用程序设置开发的中断处理程序用。
第5章 汇编语言程序设计
2、系统功能调用
1.系统功能调用方法 DOS启动成功后,INT 21H 的中断向量(中断处 理程序的首地址)被初始化在中断向量表中,向量地 址为84H87H的4个存储单元内。调用 INT 21H的方法 如下: ⑴ 入口参数送相应的寄存器; ⑵ 子功能编号送AH; ⑶ 发出中断请求:INT 21H 2.常用系统调用子功能
第5章 汇编语言程序设计
3、BIOS中断调用
在IBM-PC机的ROM存储器中包含一些基本输入输 出子程序。这些基本输入输出子程序简称为BIOS。它们 的功能与DOS中字符I/O功能相似,用户也可通过软件 中断方式直接调用。由于BIOS提供的字符I/O功能直接 依赖于硬件,因而调用它们比调用DOS字符I/O功能速 度更快。例如: ☆键盘输入子程序。调用指令为 INT 16H ☆屏幕显示子程序。调用指令为 INT 10H ☆打印输出子程序。调用指令为 INT 17H
第5章 汇编语言程序设计
1、DOS中断及功能调用
DOS常用的9类中断(20H~27H和2FH)可分为两
种:
⑴ DOS专用中断。DOS专用中断是指INT 22H、 INT 23H、 INT 24H 3个中断,属DOS操作时专用,用 户不要直接使用。 ⑵ DOS可调用中断。DOS可调用中断是指INT 20H、 INT 21H、 INT 25H、 INT 26H、 INT 27H和 INT 2FH 6个中断。这6个中断都供用户直接调用,但 都必须要满足一定的入口条件。其中:
第5章 汇编语言程序设计
① 磁盘读写中断。INT 25H、INT 26H分别用来读 和写磁盘上的若干扇区,这实际上是两条BIOS调用。 ② 程序退出中断。INT 20H、INT 27H都为程序的 退出命令。 ③ 假脱机打印文件中断。INT 2FH用来实现假脱机 打印文件命令PRINT。 ④ 系统功能调用。又称为DOS功能调用,是指 INT 21H 中断。它是可供系统程序和应用程序调用的一个极 其重要的中断,内含近百个子功能。
第5章 汇编语言程序设计
IBM PC及兼容机的ROM中有一系列外部设备管 理软件,组成了基本的输入输出系统(ROM BIOS)。
DOS在此基础上开发了输入输出设备处理程序 ,这也是DOS与ROM BIOS的接口。
在基础上,DOS还开发了文件管理 和一系列处理程序。 另外DOS还有命令处理程序, 它与前两种程序构成基本DOS系统。
第5章 汇编语言程序设计
DATA BUF DATA CODE
CODE
SEGMENT DB 50 DB ? DB 50 DUP(?) ENDS SEGMENT … MOV DX, OFFSET BUF MOV AH, 10 INT 21H … ENDS
第5章 汇编语言程序设计
⑶ 02H号调用(字符输出显示) 2号功能是将一个字符(一个ASCII码值)输出到标 准输出设备(即显示器或打印机)。入口参数为DL寄存 器,寄存器DL中存放待输出的字符。例如: MOV DL, ‘A’ MOV AH, 2 INT 21H
第5章 汇编语言程序设计
中断调用及中断服务程序返回
中断调用是一种内部中断方式,通过执行INT n 指令来实 现。即执行INT n 指令,使CPU根据中断类型号n,找中断向量 表中第n项作为此服务的程序入口。0段相对地址4*n+0处字为IP, 0段相对低至4*n+2处字为CS。
INT n指令功能:
-当前标志寄存器的内容压栈,保存TF; -TF←0,IF←0; -当前断点的CS值压栈,当前IP值压栈; -IP,CS←中断向量第n项的4字节内容。
第5章 汇编语言程序设计
⑴ 01H号调用(带回显的键符输入) 1 号子功能是从标准输入设备输入一个字符,并送 入寄存器AL,不许入口参数。例如: MOV AH, 01H
INT 21H
执行上述指令,系统将扫描键盘,等待有键按下, 一旦有键按下,就将键值(相应字符的ASCII码值)读 入,并送入AL寄存器,同时将这个字符显示在屏幕上。
第5章 汇编语言程序设计
⑵ 0AH号调用(字符串输入) 从键盘接收字符串到内存输入缓冲区,要求事 先定义一个输入缓冲区,缓冲区第一个字节指出缓冲 区的字符个数,不能为零。第二个字节保留已用作填 写输入的字符实际个数。从第三个字节开始存放从键 盘上接收的字符。调用时,要求DS:DX指向输入缓冲 区的首地址。键入字符串以回车结束。 例如,从键盘输入一个小于50个字符的字符串 数据。其程序设计方法是: