微机原理汇编语言,对输入的一些成绩进行分类汇总

时间:2025-02-21

(a)所有数字由键盘输入;(b)输入的成绩个数为任意个(小于100);(c)对成绩进行归类并输出显示在屏幕:·显示最高成绩、最低成绩、平均成绩·显示90-100分人数,80-89分人数,70-79分人数,60-69分人数,低于60分人数,·显示无效数字个数(非数字或大于100数字个数)

汇编语言程序

成绩汇总

对输入的一些成绩进行分类汇总。

要求:

(a)所有数字由键盘输入;

(b)输入的成绩个数为任意个(小于100);

(c)对成绩进行归类并输出显示在屏幕:

·显示最高成绩、最低成绩、平均成绩

·显示90-100分人数,80-89分人数,70-79分人数,60-69分人数,低于60分人数,

·显示无效数字个数(非数字或大于100数字个数)

data segment

save DW 100 dup(0) ;输入数据的存放位置

buffer dw 0 ;暂时存放当前输入的数字

n db 1 ; 总共输入的数字个数

highest dw 0

lowest dw 0

average dw 0

0to60 dw 0

60to70 dw 0

70to80 dw 0

80to90 dw 0

90to100 dw 0

wrong dw 0

shuzi_w db 0

shuzi_q db 0

shuzi_b db 0

shuzi_s db 0

shuzi_g db 0 ;将排序好的数字显示出来,需要每一位转换成ASCII码

string db 'input numbers:',0dh,0ah,24h

string1 db 'output: ',0dh,0ah,24h

string2 db 'highest:',0dh,0ah,24h

string3 db 'lowest: ',0dh,0ah,24h

string4 db '0~59: ',0dh,0ah,24h

(a)所有数字由键盘输入;(b)输入的成绩个数为任意个(小于100);(c)对成绩进行归类并输出显示在屏幕:·显示最高成绩、最低成绩、平均成绩·显示90-100分人数,80-89分人数,70-79分人数,60-69分人数,低于60分人数,·显示无效数字个数(非数字或大于100数字个数)

string5 db '60~69: ',0dh,0ah,24h

string6 db '70~79: ',0dh,0ah,24h

string7 db '80~89: ',0dh,0ah,24h

string8 db '90~99: ',0dh,0ah,24h

string9 db 'wrong: ',0dh,0ah,24h

string10 db 'average:',0dh,0ah,24h

kongge db 0dh, 0ah,24h

ends

stack segment

dw 128 dup(0)

ends

code segment

start:

; set segment registers:

xor ax,ax

push ax

mov ax, data

mov ds, ax

mov es, ax

lea dx , string

mov ah, 09h

int 21h ;显示请输入数据

;>>>>>>>>>>>>>>>>>>>>数

入>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

mov di , offset save

mov ax , 0

mov buffer,ax

shurushuzi:

mov ah,01h

int 21h

cmp al,0dh

je stopinput

据的输

(a)所有数字由键盘输入;(b)输入的成绩个数为任意个(小于100);(c)对成绩进行归类并输出显示在屏幕:·显示最高成绩、最低成绩、平均成绩·显示90-100分人数,80-89分人数,70-79分人数,60-69分人数,低于60分人数,·显示无效数字个数(非数字或大于100数字个数)

cmp al,'0'

jb shurukongge

cmp al,'9'

ja shurukongge

;将输入的字符转为对应的数字

sub al,30h ;ascll码转为相应的十进制数

mov ah,0

mov bx,ax ;buffer保存的为前一个数字,ax为当前输入的字符,buffer*10+ax即为输入的十进制数

mov dx,buffer

mov ax,10

mul dx

add ax,bx

mov buffer,ax

mov [di],ax ;将转化好的数字放入储存空间

jmp shurushuzi; 输入大于10 的数字的下一位

;输入了空格,开始为输入下一个数字做准备

shurukongge:

call konggexianshi

add di,2 ;指向下一个储存单元

inc n

mov ax,0

mov buffer,ax ;当前数字存入缓冲区等待处理

jmp shurushuzi

stopinput:

call konggexianshi

;>>>>>>>>>>>>>>>>>>>>数据处理部分>>>>>>>>>>>>>>>>>>>>>>>>>

;比较全部数据,找出最高成绩

mov cl,n

mov ch,0

(a)所有数字由键盘输入;(b)输入的成绩个数为任意个(小于100);(c)对成绩进行归类并输出显示在屏幕:·显示最高成绩、最低成绩、平均成绩·显示90-100分人数,80-89分人数,70-79分人数,60-69分人数,低于60分人数,·显示无效数字个数(非数字或大于100数字个数)

mov bx,offset save

mov ax,[bx]

lab1:

cmp ax,[bx]

ja lab2

mov ax,[bx]

lab2:

inc bx

inc bx

loop lab1

mov highest,ax

;比较全部数据,找出最低成绩

mov cl,n

xor ch,ch

mov bx,offset save

mov ax,[bx]

lab3:cmp ax,[bx]

jb lab4

mov ax,[bx]

lab4:

inc bx

inc bx

loop lab3

mov lowest,ax

;求平均值

mov cl,n

xor ch,ch

mov bx,offset save

mov ax,0

lab5:

add ax,[bx]

adc AX,0

inc bx

inc bx

loop lab5

mov bl,n

(a)所有数字由键盘输入;(b)输入的成绩个数为任意个(小于100);(c)对成绩进行归类并输出显示在屏幕:·显示最高成绩、最低成绩、平均成绩·显示90-100分人数,80-89分人数,70-79分人数,60-69分人数,低于60分人数,·显示无效数字个数(非数字或大于100数字个数)

xor ah,ah

mov average,ax

;各段人数统计

mov cl,n

mov bx,offset save

L12:

cmp [bx],0

…… 此处隐藏:4322字,全部文档内容请下载后查看。喜欢就下载吧 ……

微机原理汇编语言,对输入的一些成绩进行分类汇总.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219