微型计算机原理课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微型计算机原理课程设计学院
专业
班级
学号
姓名
一、目的
结合微型计算机课程的学习,进一步巩固已学的知识,同时针对计算机原理知识的具体应用,学会对系统中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的学生的名次。
编写程序如下
学生成绩名次表流程图
编写程序如下
CRLF MACROA
MOV AH,02H AS MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AH INT 21H ENDM
DATA SEGMENT
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
MOV AH,02
MOV DL,20H
INT 21H
POP AX
POP DX
I NC SI
LOOP WWW ;显示排定的学生名次
MOV AX,4CH
INT 21H
SCAN PROC NEAR ;子程序,每扫描一遍成绩表缓冲区, 找出其成绩最高者 ;(由DX指针指示对应学生),之后将该成绩清除以便下一次扫描 PUSH CX
MOV CX,STUNUM ;学生数
MOV AL,00H ;最低成绩
MOV BX,OFFSET SCORE
MOV SI,BX ;指向成绩表首址
CCC: CMP AL,[SI]
JAE JJJ ;AL中的成绩不低于成绩表指针SI所指单元的成绩则转JJJ
MOV AL,[SI] ;AL存放较高的成绩
MOV DX,SI
SUB DX,BX ;DX为对应学号
JJJ: INC SI ;指向下一单元
LOOP CCC
ADD BX,DX
MOV BYTE PTR [BX],00H ;本次扫描成绩最高者清0,以便后面的比较
POP CX
RET
SCAN ENDP
DISPI PROC NEAR ;显示子程序
PUSH CX
MOV BL,AL
MOV DL,BL
MOV CL,04
ROL DL,CL
AND DL,0FH
CALL DISPL
MOV DL,BL
AND DL,0FH
CALL DISPL
POP CX
RET
DISPI ENDP
DISPL PROC NEAR