汇编程序有点小毛病,大家帮忙看看!!

题目:编写统计学生程序,设有十个学生成绩分别是:566984827388996310080,统计低于60分,60~69,70~79,80~89,90~99及100分的人数... 题目:编写统计学生程序,设有十个学生成绩分别是: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的单元中,并显示。

我的程序是:DATA SEGMENT
NUMBER DB 56,69,84,82,73,88,99,63,100,80
S5 DB 0
S6 DB 0
S7 DB 0
S8 DB 0
S9 DB 0
S10 DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
AND BX,0000H
AND AL,00H
MOV BX,OFFSET NUMBER

AGAIN:MOV AL,[BX]
CMP AL,100
JS NEXT0
INC S5
JMP STO

NEXT0:CMP AL,90
JS NEXT1
INC S6
JMP STO

NEXT1:CMP AL,80
JS NEXT2
INC S7
JMP STO

NEXT2:CMP AL,70
JS NEXT3
INC S8
JMP STO

NEXT3:CMP AL,60
JS NEXT4
INC S9
JMP STO

NEXT4:INC S10

STO: INC BX
LOOP AGAIN

DISP:
CMP S5,0AH
JS DONE
ADD AL,7

DONE: ADD S5,30
MOV DL,S5
MOV AH,02
INT 21H
MOV DL,32
MOV AH,02
INT 21H

DISP1: CMP S6,0AH
JS DONE1
ADD S6,7

DONE1: ADD S6,30H
MOV DL,S6
MOV AH,02
INT 21H
MOV DL,32
MOV AH,02
INT 21H

DISP2: CMP S7,0AH
JS DONE2
ADD S7,7

DONE2: ADD S7,30H
MOV DL,S7
MOV AH,02
INT 21H
MOV DL,32
MOV AH,02
INT 21H

DISP3: CMP S8,0AH
JS DONE3
ADD S8,7

DONE3:ADD S8,30H
MOV DL,S8
MOV AH,02
INT 21H
MOV DL,32
MOV AH,02
INT 21H

DISP4: CMP S9,0AH
JS DONE4
ADD S9,7

DONE4:ADD S9,30H
MOV DL,S9
MOV AH,02
INT 21H
MOV DL,32
MOV AH,02
INT 21H

DISP5: CMP S10,0AH
JS DONE5
ADD S10,7

DONE5: ADD S10,30H
MOV DL,S10
MOV AH,02
INT 21H
MOV DL,32
MOV AH,02
INT 21H

MOV AH,4CH
INT 21H

CODE ENDS
END START
输出结果: s5,s6,s7,s8,s9,s10的数值都不对.
请各位朋友帮忙,谢谢!
我没有学过汇编语言, 但这句话里js不需要换成jB,错误我已经改好了,是没有控制循环的次数, 现在显示正确了, 多谢大家的帮忙。
展开
 我来答
百度网友d684527
2007-05-24 · 超过25用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:0
展开全部
大概看了下你的程序,应该是JS用错了

如:
MOV AL,[BX]
CMP AL,100
JS NEXT0
INC S5
JMP STO

JS与SF标志位相关,这里不应该用JS.
程序原意应该是AL<100时跳转,应该用JB,表示AL<100时跳转

同理,程序中所有JS都应该用JB替换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
深圳思驰科技有限公司_
2024-10-23 广告
深圳思驰科技是国内先进入芯片解密领域的公司,拥有数十年的丰富经验,成功帮助国内外企业、政府及知名科研机构攻克多个技术难题。在医疗电子、工控设备、军事航天、通信设备、广电设备、交通设备、汽车电子、家用电子等行业都成功推出了多款创新产品,熟悉这... 点击进入详情页
本回答由深圳思驰科技有限公司_提供
mengshijie2007
2007-05-27 · 超过45用户采纳过TA的回答
知道答主
回答量:170
采纳率:0%
帮助的人:0
展开全部
经过修改后在程序如下:

DATA SEGMENT
NUMBER DB 56,69,84,82,73,88,99,63,100,80
S5 DB 30H ;0-59
S6 DB 30H ;60-69
S7 DB 30H ;70-79
S8 DB 30H ;80-89
S9 DB 30H ;90-99
S10 DB 30H ;100
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
AND BX,0000H
AND AL,00H
MOV BX,OFFSET NUMBER

mov cx,S5-NUMBER ;总人数

AGAIN:MOV AL,[BX]
CMP AL,100
JS NEXT_90 ;如果AL等于100(0110 0100),没有产生借位
INC S10
JMP STO

NEXT_90:CMP AL,90
JS NEXT_80
INC S9
JMP STO

NEXT_80:CMP AL,80
JS NEXT_70
INC S8
JMP STO

NEXT_70:CMP AL,70
JS NEXT_60
INC S7
JMP STO

NEXT_60:CMP AL,60
JS NEXT_50
INC S6
JMP STO

NEXT_50:INC S5

STO: INC BX
LOOP AGAIN

MOV CX,6H
MOV BX,OFFSET S5

DISP:
MOV DL,[BX]
INC BX
MOV AH,02
INT 21H

MOV DL,0 ;在各级人数之间显示空格
MOV AH,02
INT 21H

LOOP DISP

MOV AH,4CH
INT 21H

CODE ENDS
END START

运行结果:

1 2 1 4 1 1
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卖蟀
2007-05-23 · TA获得超过703个赞
知道答主
回答量:342
采纳率:0%
帮助的人:0
展开全部
嗯。。看到汇遍真的想睡。
第一看不懂
第二还是看不懂
第三还是个看不懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
楓奇
2007-05-23 · TA获得超过238个赞
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:87.2万
展开全部
看了你写的程序~~
我才发现·~啊
我们现在学的C真的太简单了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
抬头_阳光
2007-05-23 · TA获得超过250个赞
知道答主
回答量:115
采纳率:0%
帮助的人:0
展开全部
就是,你好强啊,我们都是刚学c语言呢!想帮都帮不了啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式