- 3
- 0
- 约2.36千字
- 约 11页
- 2019-09-15 发布于山西
- 举报
? 为了了解程序运行过程中的情况,应设法将运算结果显示到显示器上,最简单的方法就是调用操作系统的I/O子程序,我们称为DOS功能调用。DOS为程序设计人员提供了许多可直接调用的功能子程序。调用时需要使用软中断指令: INT n 其中:n为中断调用类型号,其值为00~FFH。在使用INT指令前,应将调用的功能号送入AH,有关入口参量送入指定寄存器中。若有出口参量,中断调用返回后,结果在指定的寄存器或存储单元中。DOS功能子程序的调用使用软中断指令“INT 21H”。DOS共有84个功能子程序。这些子程序的主要功能是:磁盘的读写控制、文件操作、目录操作、内存管理、基本输入输出管理及设置/读出系统日期、时间等。 DOS功能子程序的调用 下面例举部分常用的DOS功能子程序。 1.带显示的键盘输入(1号功能) 该功能子程序等待键盘输入,直接按下一个键(即输入一个字符),把字符的ASCII码送入AL,并在屏幕上显示该字符。如果按下的键是Ctrl-C组合键,则停止程序运行。如果按下TAB制表键,屏幕上光标自动扩展到紧接着的8个字符位置后面。1号功能调用,不需要入口参量,出口参量在AL中。如: MOV AH,01H INT 21H DOS功能子程序的调用(续) 2.不带显示的键盘输入(7号功能) 与1号功能类似,它仅等待键盘输入一个字符,并将字符的ASCII码送入AL中。但按下Ctrl-C组合键和TAB制表键无反应。调用方法如下: MOV AH,7 INT 21H DOS功能子程序的调用(续) DOS功能子程序的调用(续) 3.字符串输入(0AH号功能) 等待从键盘输入字符串,并存入设定的缓冲区内,同时回显字符串,光标随着移动,回车符使光标回到行首。调用方法如下: MOV AH,0AH INT 21H 缓冲区第一个字节存放它能保存的最大字符数(1~255,不能为‘0’!),该值由用户程序自己事先设置。如果键如的字符数比此数大,那就会发出“嘟嘟”声,而且光标不再向右移动。 缓冲区第二个字节存放用户本次调用时实际输入的字符数(回车键除外),这个数由DOS返回时自动填入。用户从键盘输入的字符从第三个字节开始存放,直到用户输入回车键为止,并将回车键码(0DH)加在刚才输入字符串的末尾上。 调用时,用DS:DX寄存器指向输入缓冲区的段基值:偏移量。例如在数据区定义的字符缓冲区如下: MAX_LEN DB 18 ACT_LEN DB ? STRING DB 18 DUP(0) DOS功能子程序的调用(续) 则输入串的指令如下: MOV AX,SEG MAX_LEN MOV DS,AX MOV DX,OFFSET MAX_LEN MOV AH,0AH INT 21H DOS功能子程序的调用(续) 4.字符显示(2号功能) 本功能子程序仅在屏幕上显示单个字符。要显示字符的ASCII码存放在DL中。如果DL中存放退格键编码,在屏幕上便向左移一个字符位置,并使该位置成为空格。移动后光标停留在那里。如要显示字符‘A’,可用下列几条指令调用: MOV DL,‘A’ MOV AH,2 INT 21H 5.字符打印(5号功能) 5号功能子程序把DL中的字符(ASCII码)送入打印机接口,打印输出。功能调用为: MOV DL,‘A’ MOV AH,5 INT 21H DOS功能子程序的调用(续) 6.字符串显示(9号功能) 9号功能子程序能在屏幕上显示多于一个的字符串。要显示的字符串必须先放在内存一数据区中,且字符串以美元符号‘$’作为结束标志。非显示字符,可以用它的ASCII码插入字符串中间。进行9号功能调用时,先把待显示的字符串首地址的段基值和偏移量分别存入DS和DX中。 在数据段中定义一个待显示符号串如: STRING DB “THIS IS A PROGRAM”,0AH,0DH,“$” 则显示该符号串的指令为: LEA DX,STRING MOV AH,9 INT 21H DOS功能子程序的调用(续) 7.取中断向量(35H号功能) 35H号功能把由AL指定的中断类型号的中断向量从中断向量表中取到ES:BX中。即必须把要取出的中断类型号N送给AL,调用35H功能后,与中断类型号N对应的中断向量则保存在ES:BX中。其调用示例如下: MOV AL,N MOV AH,35H INT 21H 8.设置中断向量(25H号功能) 25H号功能把由AL指定的中断类型的中断向量DS:DX放置在中断向量表中。具体设置过程为:首先将要设置的中断类型号送AL,然后把要设置的中断服务程序的段地址和偏移量分别送DS、DX,最后
您可能关注的文档
- bqconf20121117敏捷地做测试share.pptx
- BZA矿用隔爆型控制按钮.ppt
- C language第15章 C++面向对象基础.ppt
- b金属的腐蚀和防护.ppt
- c 第5章 c面向对象编程基础.ppt
- c 第五章创建值类型.ppt
- C++在非面向对象方面的特性.ppt
- c#面向对象程序设计11(循环进阶).ppt
- C++课件 第七章 面向对象程序设计概述 1.ppt
- c++面向对象程序设计(第二版)第十章 项目设计——校园信息管理系统.ppt
- CN118809551B 一种环抱式管道外爬行机器人及其爬行、避障、转弯方法 (安徽省特种设备检测院).pdf
- CN118708673B 基于ai模型的行政事业单位内控信息管理方法及系统 (北京正成科技有限公司).pdf
- CN118822845B 一种基于描述符匹配的视频图像拼接方法 (山东科技大学).pdf
- CN118840698B 一种提高监控视频ai分析准确度和效率的方法及系统 (朗坤智慧科技股份有限公司).pdf
- CN118703438B 一种活化和扩增自然杀伤细胞的方法及其用途 (星奕昂(上海)生物科技有限公司).pdf
- CN118693860B 一种基于全品类电源接入模型的能流平衡控制方法及装置 (广东电网有限责任公司汕尾供电局).pdf
- CN118689840B 一种申威平台根文件系统写入筛选的实现方法 (中电科申泰信息科技有限公司).pdf
- CN118676344B 一种锂离子电池用长循环石墨负极材料的制备方法 (青岛泰达华润新能源科技有限公司).pdf
- CN118831585B 一种具有近红外光催化性能的富含空穴的氧化钼纳米片及其制备方法和应用 (上海交通大学).pdf
- CN118823880B 基于信息熵导向的无监督人体动作识别方法及装置 (深圳大学).pdf
原创力文档

文档评论(0)