微型计算机原理课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档