用汇编语言程序编写程序 对不足250个学生成绩进行统计分析,统计出优秀,及格,和不及格的人数

用汇编语言程序编写程序 对不足250个学生成绩进行统计分析,统计出优秀,及格,和不及格的人数

data segment
DATA1 db 20 dup(55),60 dup(65),80 dup(75),60 dup(85),30 dup(95) ;成绩表
DATA2 db 5 dup(0) ;计数单元
;这里查找表,存储DATA2中计数单元索引
SORCE DB 60 dup(4) ;0~59
DB 10 dup(3) ;60~69
DB 10 dup(2) ;70~79
DB 10 dup(1) ;80~89
DB 11 dup(0) ;90~100
data ends

CODE SEGMENT
ASSUME CS:CODE,DS:data
START:
MOV AX,data
MOV DS,AX
mov si,offset DATA1
xor ax,ax
mov cx,250 ;250个成绩
again:
lodsb ;读分数
mov di,ax ;di<=分数
mov al,byte ptr SORCE [di] ;计数单元索引
mov bx,ax
inc byte ptr DATA2[bx] ;计数加1
loop again
MOV AH,0
INT 16H
MOV AX,4C00H
INT 21H
CODE ENDS
END START
这里统计的是100~90分,80~89分,70~79分,60~69分及<60分的人数存到DATA2单元。
你如果要统计出优秀,及格,和不及格的人数,只需改动一下SORCE的定义,如:
SORCE DB 60 dup(2) ;0~59不及格
DB 25 dup(1) ;60~84及格
DB 16 dup(0) ;85~100优秀
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-23
以下程序是对100个数据进行统计,统计100,90~99,80~89,70~79,60~69,和59以下等分数段的人数,结果存放在RESULT开始的内存单元
DSEG SEGMENT
BUFF DB 98,87,56,12,100,46,79,68,59,98
DB 59,86,69,96,100,13,10,79,76,89 ;100--6个(06)
DB 95,65,85,84,95,76,56,90,92,93 ;不小于90--28个(1C)
DB 100,79,59,12,94,65,32,90,68,96 ;不小于80--12个(0C)
DB 56,75,86,95,94,90,34,67,79,60 ;不小于70--14个 (0E)
DB 98,87,56,12,100,46,79,68,59,98 ;不小于60--14个(0E)
DB 59,86,69,96,100,13,10,79,76,89 ;小于60--26个(1A)
DB 95,65,85,84,95,76,56,90,92,93
DB 100,79,59,12,94,65,32,90,68,96
DB 56,75,86,95,94,90,34,67,79,60
RESUT DB 6 DUP(0)
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:MOV AX,DSEG
MOV DS,AX
MOV CX,100
LEA SI,BUFF
AG: MOV AL,[SI]
LEA DI,RESUT
XOR AH,AH
MOV BL,10
DIV BL
XOR AH,AH
CMP AL,6
JB NEXT
NEG AL
ADD AL,10
ADD DI,AX
INC BYTE PTR[DI]
INC SI
JMP NEXT1
NEXT: ADD DI,5
INC BYTE PTR[DI]
INC SI
NEXT1:LOOP AG
MOV AX,4C00H
INT 21H
CSEG ENDS
END START

你看着改一下,我没弄清你分的优秀和及格的界限,希望对你有用~
第2个回答  2022-12-21

用汇编语言程序编写程序,对不足250个学生成绩进行统计分析,

统计出优秀,及格,和不及格的人数。

可用下列程序:

第3个回答  2010-06-23
用excel做就很容易啊