这是东南大学《微机原理与接*术》里第三章的习题,请各位编程高手帮帮忙~~~~

发布网友 发布时间:2022-04-23 09:59

我来回答

1个回答

热心网友 时间:2023-10-10 13:48

帮你看了下,下面这段程序应该可以
DATA SEGMENT
N DB 5 DUP(?) 内存空间开辟5个字节分别存放5个分数段的人数
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE; DS:DATA;
MOV CX 10
LEA BX N
MOV SI 1000H
A:MOV AX [SI] 取第一个学生成绩
CMP AX 60; JB P1 与60比较,低于60则执行P1,下面至P4相类似
CMP AX 70; JB P2
CMP AX 80; JB P3
CMP AX 90; JB P4
CMP AX 90; JZ P5 与90比较,等于90则执行P5
JMP NEXT
P1:INC[BX]; JMP NEXT 将<60分的人数加1,以下至P5类似
P2:INC[BX+1]; JMP NEXT
P3:INC[BX+2]; JMP NEXT
P4:INC[BX+3]; JMP NEXT
P5:INC[BX+4]; JMP NEXT
NEXT: INC SI SI加1使之指向下一个学生成绩
LOOP A 将CX置数器减一,CX≠0则循环A段
MOV CX 6
MOV DI 0 A段完成统计工作,B段将完成存放工作
B:MOV AL [BX+DI] 取变量第一单元,即小于60分人数
MOV [2000H+DI] AL 存入2000H单元
INC DI DI加一,指向变量下一单元,及存放空间的下一单元
LOOP B; 将CX置数器减一,CX≠0则循环B段,直至结束
MOV AH 4CH;
INT 21H
CODE ENDS
END A
程序结束后,2000H-2005H单元分别存放<60.60-69,70-79,80-,90分的人数

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com