预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

微机原理实验 实验二编程实现循环程序 编程实现:自行定义某班30个学生的某课程成绩(0~100分之间),要求: 统计>=90分、80~89分、70~79分、60~69分、60分以下的人数,结果转为ASCII码显示出来(要求有 分数段字符串提示,并每个分数段一行显示)。结果举例: >=90:3 80-89:4 70-79:11 60-69:10 <60:2 实验流程图: 开始 成绩首地址送给SI 存储首地址送给DI (COUNT+1)→CX (SI-2)→SI (SI+2)→SI (CX-1)→CX 取[SI]数据给AX [DI]→BX Y AX<60[BX+1]→BX BX→[DI] N [DI+2]→BX Y AX<70[BX+1]→BX BX→[DI+2] N Y [DI+4]→BX AX<80[BX+1]→BX BX→[DI+4] N Y[DI+6]→BX AX<90 [BX+1]→BX NBX→[DI+6] Y [DI+8]→BX AX<100[BX+1]→BX BX→[DI+8] 显示给分数段的人数 结束 程序: stacksegmentstack'stack' dw100Hdup(0) stackends datasegment BUFDW62,73,32,74,66,54,71,65,97,98 DW75,82,81,59,92,85,88,66,61,89 DW63,98,88,43,39,96,66,45,12,20 COUNTEQU$-BUF;COUNT的值为BUF所占的字节数 STR1DB'<60:','$' STR2DB'60-69:','$' STR3DB'70-79:','$' STR4DB'80-89:','$' STR5DB'>90:','$' RESDW30DUP(?);在存储区RES中设置30个初值为0的数据 dataends codesegment beginprocfar assumess:stack,cs:code,ds:data pushds subax,ax pushax movax,data movds,ax START:MOVCX,COUNT/2+1;设计数器初值 MOVDI,OFFSETRES;取RES的首址 MOVSI,OFFSETBUF-2;取BUF的首址 LURY:INCSI INCSI;修改SI指针 DECCX;设循环次数CX JZOUTPUT;循环结束,则转OUTPUT MOVAX,[SI];取BUF中第一个数放到AX寄存器 CMPAX,60;将AX中数据和60进行比较 JBLOP1;小于60,则转LOP1 CMPAX,70;否则,继续与70进行比较 JBLOP2;小于70,则转LOP2 CMPAX,80;否则,继续与80进行比较 JBLOP3;小于80,则转LOP3 CMPAX,90;否则,继续与90进行比较 JBLOP4;小于90,则转LOP4 CMPAX,100;否则,继续与100进行比较 JBLOP5;小于100,则转LOP5 LOP1:MOVBX,[DI] INCBX MOV[DI],BX;对小与60的数据计数,并把其放在RES的第一个字节中 JMPLURY;转到LURY LOP2:MOVBX,[DI+2] INCBX MOV[DI+2],BX;对60-69的数据计数,并把其放在RES的第二个字节中 JMPLURY;转到LURY LOP3:MOVBX,[DI+4] INCBX MOV[DI+4],BX;对70-79的数据计数,并把其放在RES的第三个字节中 JMPLURY;转到LURY LOP4:MOVBX,[DI+6] INCBX MOV[DI+6],BX;对80-89的数据计数,并把其放在RES的第四个字节中 JMPLURY;转到LURY LOP5:MOVBX,[DI+8] INCBX MOV[DI+8],BX;对90-99的数据计数,并把其放在RES的第五个字节中 JMPLURY;转到LURY OUTPUT:LEADX,STR1;取字符串STR1的首址 MOVAH,9 INT21H;输出字符串STR1 CALLDATCH LEADX,STR2;取字符串STR2的首址 MOVAH,9 INT21H;输出字符串STR2 ADDDI,2 CALLDATCH LEADX,STR3;取字符串STR3的首址 MOVAH,9 INT21H;输出字符串STR3 ADDDI,2 CALLDATCH LEADX,STR4;取字符串STR4的首址 MOVAH,9 INT21H;输出字符串STR4 ADDDI,2 CALLDATC