|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 tinymelody 于 2014-5-27 21:31 编辑
题目:设有10个学生成绩分别为56,69,84,82,73,88,99,63,100和80试编写程序分别统计低于60分,60~69分,70~79分,80~89分,90~99分及100分的人数存放在S1,S2,S3,S4,S5,S6单元中(已经有部分参考代码了,就是不会写显示代码,程序用masm编译)
datarea segment
grade dw 56,69,84,82,73,88,99,63,100,80
s1 dw 0
s2 dw 0
s3 dw 0
s4 dw 0
s5 dw 0
s6 dw 0
datarea ends
prognam segment
main proc far
assume cs:prognam,ds:datarea
start:
;set up stack for return
push ds
sub ax,ax
push ax
;set DS register to current data segment
mov ax,datarea
mov ds,ax
;main part of program goes here
mov s1,0
mov s2,0
mov s3,0
mov s4,0
mov s5,0
mov s6,0
mov cx,10
mov bx,offset grade
compare:
mov ax,[bx]
cmp ax,60
jl one
cmp ax,70
jl two
cmp ax,80
jl three
cmp ax,90
jl four
cmp ax,100
jne five
inc s6
jmp short change_addr
five: inc s5
jmp short change_addr
four:inc s4
jmp short change_addr
three:inc s3
jmp short change_addr
two:inc s2
jmp short change_addr
one:inc s1
jmp short change_addr
change_addr:
add bx,2
loop compare
。。。。。。。
(这里是要写显示代码的,TAT不会写!)
(显示出S1=*,S2=*,S3=*,S4=*,S5=*,S^=* ——*表示人数)
main endp
prognam ends
end start
|
|