利用汇编语言统计学生成绩,按优秀、良好、中等、及格、不及格加以区分

供稿:hz-xin.com     日期:2025-01-13
利用汇编语言统计学生成绩,按优秀、良好、中等、及格、不及格加以区分,画出程序流程图,编制程序清单。

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入分数");
switch (Console.ReadLine())
{
case"5":
Console.WriteLine("优秀");
break;
case"4":
Console.WriteLine("良好");
break;
case"3":
Console.WriteLine("及格");
break;
default: //3分以下均不及格
Console.WriteLine("不及格");
break;


}
}
}
}


照着这个改就是了, 我用的C#

DATA SEGMENT
STRING1 DB 'Please Input Score:','$' ;提示输入
STRING2 DB 'The Order From MAX To MIN:','$'
;输出排序从大到小
SCORE DW 60 DUP(0) ;分配存放空间
S5 DW 0 ;定义变量
S6 DW 0
S7 DW 0
S8 DW 0
S9 DW 0
S10 DW 0

DATA ENDS

STACK SEGMENT ;堆栈段
DW 64 DUP(0)
STACK ENDS

CODE SEGMENT ;代码段
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV DX,OFFSET STRING1 ;显示提示输入
MOV AH,09H
INT 21H

XOR BX,BX ;寄存器清零
XOR CX,CX
XOR SI,SI
XOR DI,DI

INPUT: MOV AH,1 ;输入一个字符
INT 21H
CMP AL,0DH ;是否为回车键
JZ OVER ;是就跳到OVER
CMP AL,20H ;是否为空格
JZ SAVE ;是就跳到SAVE
SUB AL,30H ;变为真数
MOV CL,4
SHL BX,CL ;左移四位,变为BCD码
ADD BL,AL
JMP INPUT


SAVE: MOV SCORE[SI],BX ;保存到SCORE中
ADD SI,2
INC DI
XOR BX,BX
JMP INPUT

OVER: MOV SCORE[SI],BX ;保存最后一个数据,并存放到SCORE中
INC DI
MOV DL,0AH
MOV AH,02H
INT 21H
MOV CX,DI
DEC CX
XOR BX,BX

COMP1: MOV SI,2 ;指向下一个数
MOV DX,CX

COMP2: MOV AX,SCORE[BX]
CMP AX,SCORE[BX+SI] ;比较前后两个数
JNC COMP3 ;小于就跳到COMP3
XCHG AX,SCORE[BX+SI] ;交换位置
MOV SCORE[BX],AX

COMP3: ADD SI,2 ;指向下一个数
DEC DX
JNZ COMP2
ADD BX,2 ;指向下一个数
LOOP COMP1

MOV DX,OFFSET STRING2
MOV AH,09H
INT 21H
SUB SI,SI ;把SI清零

OUT_PUT1:
MOV BX,SCORE[SI] ;输出百位数
MOV DL,BH
AND DL,0FH
ADD DL,30H
MOV AH,02H
INT 21H

MOV DL,BL ;输出十位数
MOV CL,4
SHR DL,CL
ADD DL,30H
MOV AH,02H
INT 21H

MOV DL,BL ;输出个位数
AND DL,0FH
ADD DL,30H
MOV AH,02H
INT 21H

MOV DL,20H ;输出空格
MOV AH,02H
INT 21H
ADD SI,2
DEC DI
OUT_PUT2:MOV BX,SCORE[SI] ;输出十位数
MOV DL,BL
MOV CL,4
SHR DL,CL
ADD DL,30H
MOV AH,02H
INT 21H

MOV DL,BL ;输出个位数
AND DL,0FH
ADD DL,30H
MOV AH,02H
INT 21H

MOV DL,20H ;输出空格
MOV AH,02H
INT 21H
ADD SI,2
DEC DI
JNZ OUT_PUT2

MOV CX,10 ;设置计数器为10
MOV BX,OFFSET SCORE

COMPARE: MOV AX,[BX]
CMP AX,60 ;与60比较
JL FIVE ;小于就跳到FIVE
CMP AX,70 ;与70比较
JL SIX ;小于就跳到SIX
CMP AX,80 ;与80比较
JL SEVEN ;小于就跳到SEVEN
CMP AX,90 ;与90比较
JL EIGHT ;小于就跳到EIGHT
CMP AX,100 ;与100比较
JNE NINE ;不为0就是90到99
INC S10 ;100时【S10+1】
JMP NEWDATA ;跳到NEWDATA
FIVE: INC S5 ;小于60时【S5+1】
JMP NEWDATA ;跳到NEWDATA
SIX: INC S6 ;大于等于60小于70时【S6+1】
JMP NEWDATA ;跳到NEWDATA
SEVEN: INC S7 ;大于等于70小于80时【S7+1】
JMP NEWDATA ;跳到NEWDATA
EIGHT: INC S8 ;大于等于80小于90时【S8+1】
JMP NEWDATA ;跳到NEWDATA
NINE: INC S9 ;大于等于90小于100时【S9+1】

NEWDATA: ADD BX,2 ;取下个数
LOOP COMPARE ;循环COMPARE

MOV AH,4CH ;返回DOS
INT 21H

CODE ENDS
END START

设内存中有一个字节数组SCORE,存有10个学生的考试成绩,编写多分支程序,统计大于(含等于,以下同)90分,大于80分,大于70分,大于60分,小于60分的人数,结果分别置于A、B、C、D、E字节单元。
.model small
.486
.stack
.data
score 70,86,90,45,60,96,100,65,72,87
count equ 10 ;总人数
score_E db ? ;0--59分人数
score_D db ? ;60--69分人数
score_C db ? ;70--79分人数
score_B db ? ;80--89分人数
score_A db ? ;90--99分人数
.code
.startup
lea bx, score
mov cx, count
again: mov al,[bx] ;取一个成绩
call tjrs ;调用统计分段人数
inc bx ;调整指针
loop again ;cx-cx-1,cx=0退出循环
.exit 0

tjrs proc ;统计分段人数
cmp al, 60
jae next0 ;al>= 60转
inc score_E ;al<60,0--59分的人数加1
jmp next4
next0: cmp al, 70
jae next1
inc score_D
jmp next4
next1: cmp al, 80
jae next2
inc score_C
jmp next4
next2: cmp al, 90
jae next3
inc score_B
jmp next4
next3: inc score_A
next4: ret
tjrs endp
end

c语言作业 编写一个输出学生成绩等级的程序
\/* 求出序号是num的学生的成绩 *\/ printf("\\nPlease input the num of student(0-3):\\n");scanf("%d", &num);printf("The score of the %dth student is:\\n",num);StudentScore(score,num);getch();return 0;} 七、程序运行结果 c语言:C语言是一种计算机程序设计语言,它既具有高级...

c语言计算学生的平均成绩
C++中全局main函数的书写格式与C语言完全相同,功能也完全相同,且同一C++程序同样只能有一个全局main函数。C语言:编写程序,输入10个学生的成绩数据,计算并输出平均分及低于平均分的学生的人数。&s[i]);sum+=s[i];if(s[i]=60)j++;}printf(总分:%d大于等于60的人数:%d\\n,sum,j);...

汇编语言,设有五门课程,5个学生对应这五门课程的成绩定义为一张成绩表...
80x86 汇编语言,程序如下:

求助:一道简单的汇编语言程序设计
8086汇编语言,使用masm5汇编器编译通过 data segment score db 30,40,50,60,70,80,90,67,70 ;9个学生的分数 num_under60 db 0 ;60以下的人数 num_60to69 db 0 ;60到69的人数 num_70to79 db 0 ;70到79的人数 num_80to89 db 0 ;80到89的人数 num_90to99 db 0 ;90到99的人数 ...

根据给定的10个学生的成绩(成绩在数据段自己设定),统计出60分,70分...
data segment credit dw 10 dup (?) ;10个学生功课成绩 v1 db 0 ;100人数计数器 v2 db 0 ;99-90段人数计数器 v3 db 0 ;89-80段人数计数器 v4 db 0 ;79-70段人数计数器 v5 db 0 ;69-60段人数计数器 v6 db 0 ;59-0段人数计数器 data ends code segment assum...

用汇编语言编写程序:分别统计下列成绩中及格不及格和缺考的人数_百度知 ...
debug 执行,查看运行结果。 06是及格的数量,02是不及格的数量,01是缺考数量。dseg segment scores db 87,94,76,52,71,83,-1,66,41 cnt equ $-scores ;成绩的个数 p db 0 ;>=60 q db 0 ;<60 r db 0 ;-1dseg endscseg segmentassume cs:cseg, ds:dsegstart...

用汇编语言编写学生成绩分别为76,58,95,84,82,71,60,85的平均分统计程序...
push cs pop ds lea si,buf mov cx,8 xor ax,ax lp:mov bl,[si]xor bh,bh add ax,bx inc si loop lp mov bl,8 div bl int 3 buf db 76,58,95,84,82,71,60,85

用汇编语言,在键盘里输入10个学生的成绩,用冒泡排序法从大到小进行排...
BX ROR AX,1 MOV WORD PTR[NUM],AX DEC WORD PTR[NUM] MOV WORD PTR[I],0 ; 以下采用冒泡排序 LEA DI,ARRAY LINE1: INC WORD PTR[I] MOV AX,WORD PTR[I] CMP AX,WORD PTR[NUM] ...

...A8090输出B可以重复输入有退出键功能用汇编语言谢谢您了
成绩等级判断程序设计:90以上输出A,80~90输出B……;可以重复输入,有退出键功能。用汇编语言,谢谢您了?从网上找的,我已经修改正确,生成的exe只能在dos下运行。但不能重复输入 ;给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90 分以上为A,80-89 ;分为B,70-79 分为C,60-69...

用汇编语言实现:总成绩=0.2平时成绩+0.4讲课成绩+0.4考试成绩(计算机原理...
10*(总成绩=0.2平时成绩+0.4讲课成绩+0.4考试成绩)10*总成绩=2*平时成绩+4*讲课成绩+4*考试成绩 即将左移1位的平时成绩+左移2位的讲课成绩+左移2位的考试成绩 ---再除10即得总成绩