微机原理与技术实验四:子程序结构

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

实验四:子程序设计

一、实验目的:掌握子程序结构,熟悉汇编上机环境。

二、实验内容:设有数组SCORE存放学生的成绩(0~100分),编写一个子程序统计0~59

分、60~69分、70~79分、80~89分、90~100分的人数,并分别存放到SCOREE、SCORED、SCOREC、SCOREB、SCOREA单元中。编写一个主程序与之配合使用。

三、实验步骤:

1、在“轻松汇编”环境下编写、编译和生成程序;

2、进入DEBUG界面,运行程序,观察SCOREE、SCORED、SCOREC、SCOREB、SCOREA 变量的值是否正确:

在DEBUG下运行程序:F9键

观察多个变量值:“Data”→“Add Watch”→“输入变量1”

“Data”→“Add Watch”→“输入变量2”

……

四、流程图与源程序:

DATA SEGMENT

SCORE DB 80,78,45,81,90,72,60,75

SCOREE DB 0

SCORED DB 0

SCOREC DB 0

SCOREB DB 0

SCOREA DB 0

DATA ENDS

STCK SEGMENT

DB 10 DUP(?)

STCK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA,SS:STCK

START:

补全程序

MOV AH,4CH

INT 21H

;以下为子程序

COUNT PROC

补全程序

RET COUNT ENDP CODE ENDS

END START

主程序开始

设置地址指针指向SCORE 首地址设置循环次数=SCORE 元素个数

调成绩判断子程序地址指针加一循环次数减一

循环次数=0

N

返回DOS

Y

子程序开始

取当前地址指针所指向的元素

当前元素<90

SCOREA 加一

当前元素<80

SCOREB 加一

当前元素<70

SCOREC 加一

当前元素<60

SCORED 加一

SCOREE 加一

子程序返回

N

Y

N

Y

N

Y

N

Y

五、实验小结

说明:实验报告要包涵上述五项

DATA SEGMENT

SCORE DB 80,78,45,81,90,72,60,75 SCOREE DB 0 SCORED DB 0 SCOREC DB 0 SCOREB DB 0 SCOREA DB 0 DATA ENDS

STCK SEGMENT

DB 10 DUP(?) STCK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA,SS:STCK START:

MOV AX,DATA

MOV DS,AX

LEA SI,SCORE

MOV CX,8

A1: CALL COUNT

INC SI

DEC CX

CMP CX,0

JNZ A1

MOV AH,4CH

INT 21H

COUNT PROC

MOV AL,[SI]

CMP AL,90

JNB A2

CMP AL,80

JNB A3

CMP AL,70

JNB A4

CMP AL,60

JNB A5

INC SCOREE

RET

A2: INC SCOREA

RET

A3: INC SCOREB

RET

A4: INC SCOREC

RET

A5: INC SCORED

RET

COUNT ENDP

CODE ENDS

END START

相关文档
最新文档