-教育精选-
微型计算机原理课程设计
学院
专业
班级
学号
可编辑
-教育精选-
姓名
一、目的
结合微型计算机课程的学习,进一步巩固已学的知识,同时针对计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。学会使用屏幕编辑程序——EDIT,弄懂汇编程序的上级过程以及如何运用DEBUG软件进行汇编程序的调试。
二、内容
1.字符串的匹配
为掌握提示信息的设置方法及读取键入信息的方法。编写程序事先两个字符串的比较。如相同,则显示“MATCH”,否则,则显示“NO MATCH”
2.从键盘输入数据并显示的设计
为掌握接受键盘数据的方法,并了解将键盘数据显示时必须转化为ASCII码的原理。编写程序,将键盘接受到的四位十六进制数据转化为等值的二进制数,再显示在终端上。
可编辑
-教育精选-
3.响铃设计
为掌握响铃的使用方法。编写程序,从键盘接受输入字符,如是数字N,则响铃N次,如果不是数字,则不响。
4.将键盘输入的小写字母转化成大写字母的设计
为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换,编写程序,接受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。
5. 学生成绩名次表设计
为进一步熟悉排序方法,编写程序,将100以内的30个成绩存入首址为1000H的存储区中。1000H+i表示学号为i的学生成绩。编写程序使得在2000H开始的区域排出名次表,2000H+i为学号i的学生的名次。 编写程序如下
学生成绩名次表流程图
可编辑
-教育精选-
入口 CX入栈保存 学生数送CS AL送0分 BX和SI发向成绩表首址 AL>=[SI] Y N [SI]送AL,DX记录对应学号 SI+1 N CX-1=0 Y 将本次扫描的最高成绩清0 CX出栈 返回
编写程序如下
CRLF MACROA
MOV AH,02H AS MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AH INT 21H ENDM
DATA SEGMENT
可编辑
开始 初始化 显示提示信息 SI指向成绩表首址 学生送数CX 调GETNUN,该成绩送[SI] N SI+1 Y CX-1=0 学生送数CX DI指向名次表首址 调SCAN子程序,扫描成绩表 计算名次,填入DX举号对应的名次单元 N CX-1=0 Y 显示学生名次 返回DOS -教育精选-
STUNUM EQU 30
MESS1 DB 'PLEASE INPUT THE 30 SCORE '0DH,0AH,'$' ERROR DB 'ERROR!',0DH,0AH,'$'
MESS2 DB 'THE ORDER :'0DH,0AH ,'$' EMARK DB ? ORG 1000H SCORE DB 30 DUP(?) ORG 2000H SEQU DB 30 DUP(?) DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA ;程序初始化 MOV DS,AX MOV ES,AX MOV AH,09H MOV DX,OFFSET MESS1 INT 21H ; 9号功能调用,显示提示信息 MOV SI,OFFSET SCORE ; 成绩表首址赋给SI MOV CX,STUNUM ;学生数送CX MOV EMARK,0
UUU: CALL GETNUM ;读取键入成绩值送DX CMP EMARK,01H ;如果输入不符合要求则重新输入 JZ START MOV [SI],DL ; 存入成绩表缓冲区中 INC SI ;指向下一单元 LOOP UUU MOV CX,STUNUM ;学生数 MOV DI,OFFSET SEQU ;名次表首地址赋给DI VVV: CALL SCAN ;扫描子程序 MOV AL,STUNUM ;学生数送给AL SUB AL,CL INC AL ;计算名次,并把名次赋给AL MOV BX,DX MOV [DI+BX],AL ;把名次再赋给对应的DX学号 LOOP VVV ; MOV AH,09H LEA DX,MESS2 INT 21H MOV CX,STUNUM ;学生数赋给CX MOV SI,OFFSET SEQU ;名次表首地址赋给SI WWW: MOV AL,[SI] CALL DISPI PUSH DX
可编辑