微型计算机循环结构程序,《微机原理实验五循环结构的程序设计:排序程序设计实验》.doc...

实验五 循环结构的程序设计:排序程序设计实验1、实验目的掌握接收键盘数据的方法。掌握循环结构的程序设计和排序程序设计的方法。

进一步熟练在PC上建立、汇编、链接、调试和运行汇编语言程序的过程。2、实验内容用汇编语言编写学生成绩统计程序:键盘输入学生成绩到SCORE中(0<=分数<=100,设有10个学生成绩分别是56,69,84,82,73,88,99,63,100,80)。编程将它们由大到小排序,存回到原来的SCORE变量中;并统计低于60分、60~69、70~79、80~89、90~99及100分的人数,分别存放在S5、S6、S7、S8、S9、S10单元中。3、实验及报告要求:

要求画出完整的程序流程图。

根据流程图,编写完整的汇编代码源文件,要求写出所有伪指令和指令的注释;

编译、连接生成可执行文件,调试该可执行文件。

写出完整的实验报告,特别是“实验结果”与“实验总结体会”部分,是评分的主要依据。

实验总结中要求结合实验中的经验、教训或体会对汇编语言格式、调试方法、汇编指令及汇编语言编程方法、微机原理学习方法作出总结。

4、思考题:

如何从屏幕输出结果?统计人数的程序流程图:Y

N

N

Y

N

YNYSCORE的输入和排序流程图:N

YN

y输入DATAS SEGMENTBUFFER DB 80,81 DUP(0),'$'SCORE1 DB 10 DUP(0) ;此处输入数据段代码

DATAS ENDS

STACKS SEGMENTSTA DB 64 DUP(0)

SP_TOP DB 0

STACKS ENDS

CODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS

START:MOV AX,DATAS

MOV DS,AX

MOV AX,STACKS

MOV SS,AX

LEA SP,SP_TOP

LEA DX,BUFFER

LEA DI,SCORE1

MOV AH,0AH

INT 21H

LEA SI,BUFFER

ADD SI,2

MOV DL,0

MOV CX,10

JU:MOV AL,[SI]

CMP AL,0DH

JE EXIT

PUSH CX

CMP AL,2CH

JE CH1

POP CX

INC SI

INC DL

LOOP JU

JMP EXIT

CH1:CMP DL,2

JNE CH2MOV AL,[SI-2]

SUB AL,30H

MOV CL,10

MUL CL

MOV AH,0MOV BL,[SI-1]SUB BL,30H

ADD AL,BL

MOV [DI],AL

POP CX

INC DI

INC SI

MOV DL,0

LOOP JU

CH2:MOV [DI],100POP CX

INC DI

INC SI

MOV DL,0

LOOP JU

EXIT: MOV AH,4CHINT 21H

CODES ENDS

END START

记人数DATA SEGMENTSCORE DB 67S5 db 0S6 db 0S7 db 0S8 db 0S9 db 0S10 db 0TABLE DW NP,NP,NP,NP,NP,NP,S60,S70,S80,S90,S100

DATA ENDS

CODE SEGMENT 'CODE'ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AXMOV AH,0

LEA SI,SCORE

SP:MOV AL,[SI]

MOV BL,10

DIV BL

SAL AL,1

MOV BL,AL

MOV BH,0

JMP TABLE[BX]

S100:INC S10

JMP NEXT

S90: INC S9

JMP NEXT

S80:INC S8

JMP NEXTS70:INC S7

JMP NEXT

S60:INC S6

JMP NEXT

NP:INC S5

NEXT:INC SILOOP SP

FINISH:MOV AH,4CH

INT 21H

CODE ENDSEND START排序

DATAS SEGMENT

STR DB 'PLS INPUT SCORE (0-100):',0DH,0AH,'$'SCORE DB 20DB 81 DUP(0)DB '$';此处输入数据段代码SC DB 10 DUP(0)

DATAS ENDS

STACKS SEGMENT;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENTASSUME CS:C

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值