汇编实验(四) 统计学生成绩程序

汇编实验(四) 统计学生成绩程序

    • 问题
    • 流程图
    • 源代码
    • 截图

问题

设有10个学生的成绩分别为56、69、84、82、73、88、99、63、100和80分。试编制程序分别统计低于60分、60~69分、70~79分、80~89分、90~99分及100分的人数存放到s5、s6、s7、s8、s9及s10单元中。

流程图

汇编实验(四) 统计学生成绩程序_第1张图片

源代码

    include io.inc
DATAS SEGMENT
    ;此处输入数据段代码  
    grade dw  56,69,84,82,73,88,99,63,100,80
    s5 dw 0
    s6 dw 0
    s7 dw 0
    s8 dw 0
    s9 dw 0
    s10 dw 0
    msg1 db 's5 = $'
    msg2 db 's6 = $'
    msg3 db 's7 = $'
    msg4 db 's8 = $'
    msg5 db 's9 = $'
    msg6 db 's10 = $'
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    ;此处输入代码段代码
    push ds
    sub ax,ax
    push ax
    MOV AX,DATAS
    MOV DS,AX
    mov cx,lengthof grade
    mov bx,offset grade
compare:mov ax,[bx]
    cmp ax,60
    jl five
    cmp ax,70
    jl six
    cmp ax,80
    jl seven
    cmp ax,90
    jl eight
    cmp ax,100
    jne nine
    inc s10
    jmp  addrr
nine:inc s9
    jmp  addrr
eight:inc s8
    jmp  addrr
seven:inc s7
    JMP  addrr
six:inc s6
    jmp  addrr
five:inc s5
addrr:add bx,2
    loop compare
    mov dx, offset msg1
    mov ah,9
    int 21h
    mov ax,s5
    call dispuiw
    call dispcrlf
    mov dx,offset msg2
    mov ah,9
    int 21h
    mov ax,s6
    call dispuiw
    call dispcrlf
    mov dx,offset msg3
    mov ah,9
    int 21h
    mov ax,s7
    call dispuiw
    call dispcrlf
    mov dx,offset msg4
    mov ah,9
    int 21h
    mov ax,s8
    call dispuiw
    call dispcrlf
    mov dx,offset msg5
    mov ah,9
    int 21h
    mov ax,s9
    call dispuiw
    call dispcrlf
    mov dx,offset msg6
    mov ah,9
    int 21h
    mov ax,s10
    call dispuiw
    call dispcrlf
    pop ax
    pop ds
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

截图

dosbox环境下运行b.exe
汇编实验(四) 统计学生成绩程序_第2张图片

你可能感兴趣的:(汇编语言,汇编)