;本程序完成功能如下:
;设有十个学生的成绩分别为56 69 84 82 73
;88 99 63 100 80。编制程序分别统计低于60分,60-90
;67-97,80-89,90-99和100分的人数,并存放于s5,s6,s7,s8,s9,s10中。
data segment
score dw 59,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
data ends
code segment
main proc far
assume ds:data,cs:code
start:
;set stack for return
push ds
sub ax,ax
push ax
;set ds register to current data segment
mov ax,data
mov ds,ax
;main part of code goes here
mov si,offset score
mov cx, 10
next:mov bx,[si] ;取学生的成绩存入bx中
mov ax,60
cmp bx,ax ;与各分数段比较并跳到相应的
jb ss5 ;统计各分数段人数的程序部分
mov ax,70
cmp bx,ax
jb ss6
mov ax,80
cmp bx,ax
jb ss7
mov ax,90
cmp bx,ax
jb ss8
mov ax,100
cmp bx,ax
jb ss9
inc s10
jmp loop1
ss5:inc s5 ;统计各分数段人数
jmp loop1
ss6:inc s6
jmp loop1
ss7:inc s7
jmp loop1
ss8:inc s8
jmp loop1
ss9:inc s9
loop1:add si,2 ;取下一个分数的偏移地址
loop next ;循环十次,对十个分数分类
exit:ret
main endp
;----------------------------
code ends
;**********************************
end start