### DOS功能调用详解及其在微机与汇编中的应用 #### 一、DOS操作系统简介及作用 DOS(Disk Operating System)是一种早期的个人计算机操作系统,它为用户提供了一个命令行界面,允许用户通过键入命令来控制计算机。DOS系统在Windows系统之前占据了个人电脑操作系统的主要地位。随着技术的发展,尽管DOS逐渐被更为图形化的操作系统所取代,但在特定领域和应用场景下,了解DOS功能调用对于掌握微机原理和汇编语言编程仍具有重要意义。 #### 二、BIOS与DOS功能调用的关系 BIOS(Basic Input/Output System)是计算机硬件系统中最基础的一层软件程序,它主要负责在启动时初始化硬件设备,并提供一些基本的输入输出服务。DOS功能调用通常会利用BIOS提供的服务来实现更高级的功能。例如,DOS系统中常见的屏幕显示、键盘输入等功能就是通过调用BIOS的服务实现的。 #### 三、DOS功能调用的基本原理 DOS功能调用是指在DOS环境下,通过一组预定义的指令序列来请求操作系统执行特定的任务或服务。这些任务包括但不限于文件操作、内存管理、输入输出处理等。DOS功能调用主要通过以下步骤实现: 1. **设置AH寄存器**:首先需要将功能编号存入AH寄存器中,不同的功能编号对应不同的功能调用。 2. **设置参数**:根据需要调用的功能,可能还需要设置其他寄存器或内存区域作为参数传递给DOS。 3. **中断调用**:通过执行INT 21H指令来触发DOS功能调用,这个指令告诉CPU去执行DOS中断服务程序。 4. **返回结果**:DOS执行完功能调用后会返回结果,通常通过修改某些寄存器或内存区域来反馈调用结果。 #### 四、常用DOS功能调用示例 下面介绍几个常用的DOS功能调用示例,这些功能调用在实际编程中非常有用。 1. **键盘读取单个字符**: - **功能编号**:01H - **功能描述**:读取键盘输入的一个字符到AL寄存器中,如果按下了Ctrl-Break,则AL寄存器会被置为0。 - **示例代码**: ```assembly MOV AH, 01H ; 设置功能编号 INT 21H ; 触发中断调用 ``` 2. **屏幕输出单个字符**: - **功能编号**:02H - **功能描述**:将DL寄存器中的ASCII码对应的字符输出到屏幕上。 - **示例代码**: ```assembly MOV DL, 'A' ; 设置输出字符 MOV AH, 02H ; 设置功能编号 INT 21H ; 触发中断调用 ``` 3. **屏幕输出字符串**: - **功能编号**:09H - **功能描述**:将DS:DX指向的字符串输出到屏幕上。 - **示例代码**: ```assembly BUF DB 'Hello World', '$' ; 定义输出字符串 MOV DX, OFFSET BUF ; 设置字符串地址 MOV AH, 09H ; 设置功能编号 INT 21H ; 触发中断调用 ``` 4. **读取一行文本**: - **功能编号**:0AH - **功能描述**:从键盘读取一行文本到DS:DX指向的缓冲区中。 - **示例代码**: ```assembly BUF DB 80 DUP ('$') ; 定义80个字符的缓冲区 MOV DX, OFFSET BUF ; 设置缓冲区地址 MOV AH, 0AH ; 设置功能编号 INT 21H ; 触发中断调用 ``` 5. **退出程序**: - **功能编号**:4CH - **功能描述**:终止当前程序并返回操作系统。 - **示例代码**: ```assembly MOV AH, 4CH ; 设置功能编号 INT 21H ; 触发中断调用 ``` 6. **设置光标位置**: - **功能编号**:25H - **功能描述**:设置屏幕上的光标位置。 - **示例代码**: ```assembly MOV AX, 3000H ; 设置段地址 MOV DS, AX MOV DX, 2400H ; 设置偏移地址 MOV AH, 25H ; 设置功能编号 MOV AL, 40 ; 设置光标列 INT 21H ; 触发中断调用 ``` #### 五、汇编语言编程工具链简介 在编写汇编语言程序时,通常需要借助一系列工具链来完成源代码的编辑、编译、链接等过程。 1. **编辑源代码**:使用文本编辑器如Notepad++或Visual Studio Code等编辑源代码。 2. **编译**:使用汇编器如MASM或NASM等将源代码编译成目标文件。 3. **链接**:使用链接器如Link等将多个目标文件链接成可执行文件。 4. **调试**:使用调试器如Debug等进行程序调试。 通过以上介绍,我们可以看出DOS功能调用在微机原理与汇编语言学习中的重要性。掌握这些基础知识不仅可以帮助我们更好地理解计算机的工作原理,还能提高我们在实际项目中的编程能力。
5.1 DOS功能调用
DOS-磁盘操作系统,象WINDOS操作系统一样是进行计算机系统管理的软件,在WINDOS以前,PC机上主要应用的是DOS操作系统,两者间的最大区别是在DOS 操作系统下,用户可以利用自己所编的程序直接对外设(硬件端口)进行操作,如对磁盘进行读写,对打印机进行控制等,而在WINDOS操作系统下,用户只能通过特有的驱动程序才能对其进行操作,因为所有外设均被WINDOS操作系统统一管理,用户无法在自己的程序中对他门进行操作。
1、DOS功能
在PC机的操作系统(DOS)的安装过程中,将一些常用的子程序安装到了内存单元中,用户可以在编写自己的用户程序时,进行调用。其中有两种:
BIOS子程序:功能 管理与计算机相连接的外部设备(显示器、键盘、磁盘驱动)程序,称为基本输入输出系统 (basic Input/output system)这部分程序是存放在ROM 区 所以通常称为:ROM BIOS
DOS功能程序:与BIOS程序一样,DOS功能程序也是计算机操作系统开发人员编写的一些常用的用于磁盘文件管理的子程序,主要用于磁盘文件的建立、打开、读写、关闭,用户同样可以在自己的程序中对他们进行调用,简化用户程序的开发。
与BIOS不同的是DOS功能程序是存放在硬盘上的,在系统上电时,由操作系统,将其安装到内存中的,称为常驻内存程序。
用户调用这两种程序一般采用中断指令进行调用:
DOS功能的调用方法:
1、 在AH中写入功能调用号
2、 在指定的寄存器中设置入口参数
3、 用INT 21 指令执行调用
4、 根据出口参数分析调用执行情况
实际上,所有的DOS 功能子程序 被组成了一个大程序存放在内存单元中,从nn1:nn2 开始的单元中,在操作系统上电进行系统初始化时,将nn1:nn2 存放到了中断向量表中,0000H:0084H开始的连续4个单元中, 当用户在用户程序中用INT 21H 调用DOS的某一个功能时,即控制程序转移到nn1:nn2 开始的程序,在这段程序中首先根据AH中的功能,可以分析出用户调用的哪一个功能从而在转到相应地方执行相应的程序段。
以下以几个DOS功能的应用介绍DOS功能使用方法:
2、常用功能调用
1、键盘输入单字符并显示
调用号:01,无入口参数。
功能:等待键入,检查是否是Ctr - Break键,是,退出。不是将键入的字符送 AL 寄存器并显示。
MOV AH ,01
INT 21H
2、输出单字符
调用号:02, 入口参数:DL
功能:将DL的内容显示(DL = 待输出字符的ASII码)
MOV DL ,‘A’
MOV AH,02
INT 21H
程序执行后,在显示器上显示字符 A
3、输出字符串
功能:将缓冲区内以&结尾的字串显示,&(24H)不显示。
BUF DB ‘ABCDEF&’
MOV DX , OFFSET BUF
MOV AH , 09H
INT 21H
执行结果在显示器上显示 ABCDEF
4、键盘输入字符串
调用号:0AH,
入口参数:DS:DX = 缓冲区首地址
功能:将键盘键入的以 ENTER (0DH)结尾的字符串写到DS:DX指定的内存区。
为此,应先用程序设置一内存区。
例:从键盘输入一个字符串,写到从标号BUF开始的单元中
数据段:
BUF DB 20 第一个字节设的最大长度(含0DH)
DB ? 第二个字节空出,
由DOS功能最后填实际长度(不含0DH)
DB 20 DUP (?) 第三字节开始写字符
程序段
MOV DX ,OFFSET BUF
MOV AH , 0AH
INT 21H
注:键入字符超出缓冲区范围,超出的字符丢失且响铃警告,若小于设置范围,保持原来内容
5、返回操作系统
调用号:4CH , 无入口参数。
MOV AH ,4CH
INT 21H
结束当前程序,返回操作系统。
剩余8页未读,继续阅读
- 粉丝: 1
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 个人实习的终极无敌面经
- 新年主题下的计算机资源利用与探索
- lianjia2.csv
- 2022年江苏省职业院校技能大赛中职网络搭建与应用赛项公开赛卷技能要求
- 毕设和企业适用springboot企业资源规划类及健康管理监控平台源码+论文+视频.zip
- 小功率调幅发射机设计报告(含各级电路的计算与调试)
- 基于 SSM + Shiro + Dubbo 的 RESTful Web 应用快速启动器资料齐全+详细文档.zip
- 基于 dubbo 实现的分布式电商平台资料齐全+详细文档.zip
- 基于 spring、dubbo 的分布式服务架构资料齐全+详细文档.zip
- 基于dubbo redis分布式定时回调服务资料齐全+详细文档.zip
- 基于atomikos的分布式事务管理资料齐全+详细文档.zip
- 基于Dubbo 2.6.6版本源码注释资料齐全+详细文档.zip
- 基于dubbo+sqlhint来实现的特殊数据库操作(比如:SQL语句路由)资料齐全+详细文档.zip
- 基于dubbo+zookeeper将”优雅的SSM框架“拆分为分布式架构资料齐全+详细文档.zip
- 基于dubbo、spring扩展实现的接入层灰度、服务层灰度、mq灰度、外部调用灰度,支持多套灰度环境(灰度系统)资料齐全+详细文档.zip
- 基于dubbo2.6.4的Dubbo TraceId的设置获取传递工具包资料齐全+详细文档.zip