广东工业大学微机实验报告 三 分支、循环及子程序设计实验

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

实验三分支、循环及子程序设计实验

一、实验目的

1)了解分支、循环、子程序等程序的基本结构

2)掌握分支程序、循环结构程序的设计和调试方法

3)掌握子程序的定义和调试方法

二、实验内容

数据块的传送

题目:设计一数据块的搬移程序。使用数据串操作指令实现

程序运行结果:

0208:0200 00 01 02 03 04 05 06 07

0208:0208 08 09 10 11 12 13 14 15

三、编程练习

题目:设数据段SCORE单元开始连续存放着20个学生的成绩,编写程序统计<60,60~69,70~79,80~89,>90分数段的人数,并把统计结果存放到从TOT开始的数据块中。

(数据64H,41H,5DH,55H,52H,51H,44H,45H,47H,48H,4DH,4FH,3CH,3FH,40H,41H,33H,56H, 59H,30H)

程序清单:

STACK SEGMENT STACK ;堆栈段

DW 128 DUP(?) ;注意这里只有128个字节

STACK ENDS

DATA SEGMENT ;数据段

;定义数据段

ORG 1000H

SCORE DB 64H,61H,5DH,55H,52H,51H,44H,45H,47H,48H

DB 4DH,4FH,3CH,3FH,40H,41H,33H,56H,59H,30H

ORG 1030H

TOT DB 5 DUP(?)

DATA ENDS

CODE SEGMENT ;代码段

ASSUME CS: CODE, DS: DATA

START: MOV AX,DATA ;初始化

MOV DS, AX

;代码

MOV CX, 20 ;学生个数

MOV SI, 0 ;SI指向学生成绩

MOV DI, 0 ;DI指向统计结果

AA: MOV AL, SCORE[SI] ;取一个成绩

CMP AL, 90

JC N1 ;若不大于90分,则跳转到N1

INC TOT [DI] ;若大于90分, 90分人数加1

JMP LAST

N1: CMP AL, 80

JC N2 ;若不大于80分,则跳转到N2

INC TOT[DI+1] ;若大于80分, 80分人数加1

JMP LAST

N2: CMP AL, 70

JC N3 ;若不大于70分,则跳转到N3

INC TOT[DI+2] ;若大于70分, 70分人数加1

JMP LAST

N3: CMP AL,60

JC N4 ;若不大于60分,则跳转到N4

INC TOT[DI+3] ;若大于60分, 60分人数加1

JMP LAST

N4: INC TOT[DI+4] ; 60分以下人数加1

LAST: INC SI

LOOP AA ;循环,直到所有成绩都统计完

MOV AX,4C00H ;退出程序

INT 21H

CODE ENDS

END START

运行结果:

0208:1030:03 05 04 06 02

程序流程图如下:

四、实验心得

通过本次实验,了解了分支、循环、子程序等程序的基本结果,通过编程练习,我掌握了分支程序和循环程序的设计和调试方法。这次实验相比于前一次实验,更有难度,要用到的指令的条数也多了以来,不过事先在宿舍已经基本调试好了,所以,做起来还不是太难。

相关文档
最新文档