微机原理课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1设计概述
此次课程设计为键盘录入转换程序设计,满足以下要求:通过键盘连续录入可显示多个字符,遇“.”时终止;字符串以空格和“.”分隔,输入完成后,空格前的字符串以正向在屏幕上显示,“.”前的字符串以反向在屏幕上显示。
程序设计主要包括调用DOS系统的INT 21H功能从键盘输入字符然后显示字符,通过调用相应的字程序判断输入的字符是否为空格和“.”,当输入“.”时终止字符的输入,配合调用另一子程序来实现空格前的字符串在屏幕向以正序显示,“.”前的字符串在屏幕上以反序显示,从而完成此次课程设计。
由于本程序设计大量使用调用DOS系统的INT 21H功能,本报告书将首先介绍DOS 系统的INT 21H功能,然后进行详细的程序设计。
2 程序设计相关知识介绍
2.1 DOS及其功能调用
DOS操作系统从两个层次上向用户提供与操作系统的接口,普通用户可以通过键盘命令在命令处理模块层次上和操作系统互交,高级用户可以通过软件中断的方式在DOS的较低层次上合操作系统交互,包括DOS中断调用和BIOS功能调用。
DOS操作系统将输入输出管理程序编制成一系列子程序,不仅系统可以使用,用户也可以像调用子程序一样方便的调用它们。这些子程序或常驻内存,或固化在系统的ROM 中。
目前DOS常用的9类中断(20H~27H和2FH)分为两种:
1.DOS专用中断:INT22H、INT23H和INT24H,用户不能使用。
2.DOS可调用中断:INT20H、INT27H(程序退出)、INT21H(系统功能调用)、INT25H、INT26H(磁盘R/W中断)、INT 2FH(假脱机打印文件)。
DOS系统功能调用的方式是通过执行软中断指令INT21H来实现的。当寄存器AX中设置不同的值时,该指令将完成不同的功能。在21H类型所对应的中断程序中包含了一系列最常用的功能子程序,这些子程序分别分别实现外部设备管理功能、文件读写和管理功能、目录管理功能等,所以21H类型中断几乎包括了整个系统的功能,系统功能调用的名称也就由此而来。
DOS启动成功后,INT21H的中断向量(中断处理程序首地址)被初始化在中断向量表中向量地址为84H到87H的4个字节单元内。所有系统功能调用的各自功能的介绍见表1,有些系统调用功能简单,不需要设置入口参数,或者说没有出口参数。详细的功能、入口参数、出口参数要求可见专门的手册。通常,默认标准设备为:标准输入设备(控制台输入)是键盘;输出设备(控制台输出)是显示器;标准辅助设备是第一个RS232串口异步通讯接口,打印输出为第一个并行接口等。
表1 字符I/O系统功能调用
1.功能01H、07H和08H
功能描述:从标准输入设备(如:键盘)读入一个字符。该中断在处理过程中将一直处于等待状态直到有字符可读为止。该输入还可被重定向,如果这样做,则无法判断文件是否已到文件尾。
入口参数:AH=01H,过滤掉控制字符,并回显。
AH=07H,不过滤掉控制字符,不回显。
AH=08H,过滤掉控制字符,不回显。
出口参数:AL=输入字符的ASCII码。
例如:读键盘输入一个字符并且回显的程序。
MOV AH,1
INT 21H
2.功能02H
功能描述:向标准输出设备(如:屏幕)输出一个字符。该输出还可被重定向,如果这样做,则将无法判断磁盘是否满。
入口参数:AH=02H,DL=待输出字符的ASCII码。
出口参数:无。
其基本格式如下:
MOV AH,2
MOV DL,要显示的字符的ASCII
INT 21H
3.功能03H
功能描述:从辅助设备读入一个字符,该辅助设备的缺省值为COM1。
入口参数:AH=03H。
出口参数:AL=读入字符的ASCII码。
4.功能04H
功能描述:向辅助设备输出一个字符,该辅助设备的缺省值为COM1
入口参数:AH=04H,DL=待输出字符的ASCII码。
出口参数:无。
5.功能06H
功能描述:控制台(如:键盘、屏幕)输入/输出。如果输入/输出操作被重定向,那么,将无法判断文件是否已到文件尾,或磁盘已满。
入口参数:AH=06H,DL=输入/输出功能选择。
出口参数:若DL=00H-FEH,则此功能为输出,DL为待输出字符的ASCII码;若DL =0FFH,则此功能为输入,此时:若ZF=1,则无字符可读,否则,AL=读入字符的ASCII 码。
6. 功能09H
功能描述:输出一个字符串到标准输出设备上。如果输出操作被重定向,那么,将无法判断磁盘已满。
入口参数:AH=09H,DS:DX=待输出字符的地址,待显示的字符串以’$’作为其结束标志,否则会引起屏幕混乱。显示时在字符串结束前加上回车及换行的ASCII码0DH和0AH,可使光标自动换行。
出口参数:无。
其基本格式如下:
MOV AH,9
LEA DX,<字符串>
INT 21H
7.功能0AH
功能描述:从标准输入设备上读入一个字节字符串,遇到“回车键”结束输入(输入的字符在标准的输出设备上有回显)。如果该输入操作被重定向,那么,将无法判断文件是否已到文件尾。
入口参数:AH=0AH,DS:DX=存放输入字符的起始地址。第一个字节为缓冲区的最大容量,可认为是入口参数;第二个字节为实际输入的字符数(不包括回车键),可看作出口参数;从第三个字节开始存放实际输入的字符串;字符串以回车键结束,回车符是接受的最后一个字符;若输入的字符数超过缓冲区的最大容量,则多出的部分被丢弃,系统并发出响铃,直到输入“回车”键才结束输入。
出口参数:无。
例如:用DOS系统调用0AH从键盘输入一个字符串
STR1 DB 10,? 10 DUP(?)
……
LEA DX,STR1
MOV AH,OAH
INT 21H
8.功能0BH
功能描述:检查标准输入设备上是否有字符可读,该输入操作可被重定向。