微机原理课程设计报告 学生成绩排序名次

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

姓名: XX 班级: XXXXX 学号: XXXXXXXXXX

课程设计

微WEI 机JI 原YUAN 理LI

2011 年 7 月 8 日

微机原理课程设计

目的:

结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对计算机原理知识的具体应用,学会对系统中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的学生的名次。

微机原理课程设计下面着重介绍程序5——学生成绩名次表设计:

流程图:

主程序流程图SCAN子函数程序流程图

微机原理课程设计

程序代码及注释:

CRLF MACRO ;宏定义,回车换行

MOV AH,02H

MOV DL,0DH

INT 21H

MOV AH,02H

MOV DL,0AH

INT 21H

ENDM

DATA SEGMENT

STUNUM EQU 30 ;学生数

MESS1 DB 'Please input 30 score',0DH,0AH,'$' ;提示信息

ERROR DB 'Input error,try again',0DH,0AH,'$' ;报错信息

MESS2 DB 'The order is:',0DH,0AH,'$'

EMARK DB ? ;报错标志

ORG 1000H ;存放成绩地址

SCORE DB 30 DUP(?) ;成绩表

ORG 2000H ;存放名次地址

SEQU DB 30 DUP(?) ;名次表

DATA ENDS

STACK SEGMENT

STA DW 32 DUP(?)

TOP DW ?

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK

START: MOV AX,DATA

MOV DS,AX

MOV ES,AX

MOV SP,TOP

MOV AH,09H ;显示提示信息

MOV DX,OFFSET MESS1

INT 21H

MOV SI,OFFSET SCORE ;成绩表首址

MOV CX,STUNUM

MOV EMARK,0 ;报错标志清0

UUU: CALL GETNUM ;调用子函数读取成绩

CMP EMARK,01H ;判断是否出错

JE START ;出错则重新开始

MOV [SI],DL ;没出错则存入成绩

微机原理课程设计

INC SI ;指向下一个成绩单元地址

LOOP UUU ;判断30个成绩是否读取完

MOV CX,STUNUM

MOV DI,OFFSET SEQU ;名次表首址

VVV: CALL SCAN ;调用扫描子程序

MOV AL,STUNUM ;学生总数

SUB AL,CL ;计算名次

INC AL

MOV BX,DX ;学号

PUSH AX ;将名次转换成压缩BCD码方便显示

PUSH BX

PUSH CX

XOR AH,AH

MOV BH,0AH

DIV BH

MOV CL,4

SHL AL,CL

ADD AL,AH

MOV DH,AL

POP CX

POP BX

POP AX

MOV [DI+BX],DH ;存入名次

LOOP VVV ;判断是否存完

MOV AH,09H ;显示名次提示信息

LEA DX,MESS2

INT 21H

MOV CX,STUNUM

MOV SI,OFFSET SEQU

WWW: MOV AL,[SI]

CALL DISPI ;调用子函数显示名次

PUSH DX

PUSH AX

MOV AH,02 ;显示空格

MOV DL,20H

INT 21H

POP AX

POP DX

INC SI ;指向名次表的下一个地址

LOOP WWW ;判断是否输出所有名次

MOV AH,4CH ;返回DOS

INT 21H

相关文档
最新文档