
汇编语言怎么实现输出功能
从10个成绩中分别统计60以下,60-70.。。90-100和100分的人数,存放在s5到s10中,并把s5到s10的内容输出,代码如下,请实现输出datareasegm...
从10个成绩中分别统计60以下,60-70.。。90-100和100分的人数,存放在s5到s10中,并把s5到s10的内容输出,代码如下,请实现输出
datarea segment
grade dw 56,69,84,82,73,88,99,63,100,80;
s5 dw
s6 dw 0;
s7 dw 0;
s8 dw 0;
s9 dw 0;
s10 dw 0;
datarea ends
prognam segment
main proc far
assume cs:prognam,ds:datarea;
start:
push ds;
sub ax,ax;ax=0
push ax;
mov ax,datarea;
mov ds,ax;
mov s5,0;初始化数据
mov s6,0;
mov s7,0;
mov s8,0;
mov s9,0;
mov s10,0;
mov cx,10;初始化循环次数
mov bx,offset grade;初始化首地址
compare:
mov ax,[bx];
cmp ax,60;ax的当前值与60相比较
jl five;如果低于60,跳转到five
cmp ax,70;
jl six;
cmp ax,80;
jl seven;
cmp ax,90;
jl eight;
cmp ax,100;
jne nine;如果不等于100,跳转到nine
inc s10;上面都不满足,则说明等于100,s10自增
jmp short change_addr;
nine: inc s9 ;
jmp short change_addr;
eight: inc s8 ;
jmp short change_addr;
seven: inc s7 ;
jmp short change_addr;
six: inc s6 ;
jmp short change_addr;
five: inc s5;
change_addr:
add bx,2;找到下一个数据
loop compare;循环
ret;
JMP OVER
OVER:
MOV AH,09
MOV DX,OFFSET datarea
ADD DX,2
INT 21H
EXIT:
MOV AH,4CH;退出
INT 21H
main endp
prognam ends
end start 展开
datarea segment
grade dw 56,69,84,82,73,88,99,63,100,80;
s5 dw
s6 dw 0;
s7 dw 0;
s8 dw 0;
s9 dw 0;
s10 dw 0;
datarea ends
prognam segment
main proc far
assume cs:prognam,ds:datarea;
start:
push ds;
sub ax,ax;ax=0
push ax;
mov ax,datarea;
mov ds,ax;
mov s5,0;初始化数据
mov s6,0;
mov s7,0;
mov s8,0;
mov s9,0;
mov s10,0;
mov cx,10;初始化循环次数
mov bx,offset grade;初始化首地址
compare:
mov ax,[bx];
cmp ax,60;ax的当前值与60相比较
jl five;如果低于60,跳转到five
cmp ax,70;
jl six;
cmp ax,80;
jl seven;
cmp ax,90;
jl eight;
cmp ax,100;
jne nine;如果不等于100,跳转到nine
inc s10;上面都不满足,则说明等于100,s10自增
jmp short change_addr;
nine: inc s9 ;
jmp short change_addr;
eight: inc s8 ;
jmp short change_addr;
seven: inc s7 ;
jmp short change_addr;
six: inc s6 ;
jmp short change_addr;
five: inc s5;
change_addr:
add bx,2;找到下一个数据
loop compare;循环
ret;
JMP OVER
OVER:
MOV AH,09
MOV DX,OFFSET datarea
ADD DX,2
INT 21H
EXIT:
MOV AH,4CH;退出
INT 21H
main endp
prognam ends
end start 展开
2个回答
展开全部
s6 dw 0;
s7 dw 0;
s8 dw 0;
s9 dw 0;
s10 dw 0;
datarea ends
prognam segment
main proc far
assume cs:prognam,ds:datarea;
start:
push ds;
sub ax,ax;ax=0
push ax;
mov ax,datarea;
mov ds,ax;
s7 dw 0;
s8 dw 0;
s9 dw 0;
s10 dw 0;
datarea ends
prognam segment
main proc far
assume cs:prognam,ds:datarea;
start:
push ds;
sub ax,ax;ax=0
push ax;
mov ax,datarea;
mov ds,ax;
更多追问追答
追问
这是什么
追答
456564546546
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2023-06-12 广告
MAIN: MOV SP,#50H MOV DPTR,#TAB;读入字模指针 MOV 30H,DPL; 存起来 ;堆栈低8位 MOV 31H,DPH ;堆栈高8位 MOV 32H,30H;再记录指针,留作移动了多少位的判断 用。 MOV 3...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
与下位机项连
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询