注册 登录
编程论坛 汇编论坛

自学汇编,遇到难题,求助

下午两点半 发布于 2010-11-18 12:50, 733 次点击
下面是我对这个题目编的,咋不对啊,望高手指点指点
;设有100个学生的成绩存放在RECORD为首地址的字节数据区中,试编写分支程序
;分别统计成绩为60-69分,70-79分,80-89分,90-99分及100分的人数(假设学生
;的成绩都及格),分别存放到G6,G7,G8,G9,G10单元中。
DATA          SEGMENT
       RE     DB 68H,84H,94H,77H,90H,73H,87H,99H
       G6     DB 0
       G7     DB 0
       G8     DB 0
       G9     DB 0
       G10    DB 0
DATA          ENDS
CODE          SEGMENT
              ASSUME CS:CODE,DS:DATA
        START:MOV AX,DATA
              MOV DS,AX
              LEA DI,RE
              MOV BX,9
            S:MOV AL,[DI+BX]
              CMP AL,70H      
              JL  NEXT1     ;小于70,跳转
              CMP AL,80H
              JL  NEXT2
              CMP AL,90H
              JL  NEXT3
              CMP AL,99H
              JLE NEXT4
              ADD G10,1
        NEXT1:ADD G6,1      ;存在小于60到69的分数,加1
              JMP EXIT
        NEXT2:ADD G7,1
              JMP EXIT
        NEXT3:ADD G8,1
              JMP EXIT
        NEXT4:ADD G9,1
              JMP EXIT
         EXIT:DEC BX
              LOOP S        ;循环
              MOV AH,4CH
              INT 21H
CODE          ENDS
              END START                        

      
4 回复
#2
asdfbjha2010-11-18 20:16
loop 循环没有结束设置   bx的初始值是不是大了点
#3
xiaomarn2010-11-18 20:16
程序代码:
DATA          SEGMENT
       RE     DB 68H,84H,94H,77H,90H,73H,87H,99H
       G6     DB 0
       G7     DB 0
       G8     DB 0
       G9     DB 0
       G10    DB 0
DATA          ENDS
CODE          SEGMENT
              ASSUME CS:CODE,DS:DATA
        START:MOV AX,DATA
              MOV DS,AX
              LEA DI,RE
              dec di
              MOV BX,8        ;9->8
            S:MOV AL,[DI+BX]
              CMP AL,70H     

              jb  NEXT1     ;小于70,跳转
              CMP AL,80H
              jb  NEXT2
              CMP AL,90H
              jb  NEXT3
              CMP AL,99H
              jbe NEXT4
              ADD G10,1
              jmp exit
        NEXT1:ADD G6,1      ;存在小于60到69的分数,加1
              JMP EXIT
        NEXT2:ADD G7,1
              JMP EXIT
        NEXT3:ADD G8,1
              JMP EXIT
        NEXT4:ADD G9,1
              JMP EXIT
         EXIT:DEC BX
              jnz s
              MOV AH,4CH
              INT 21H
CODE          ENDS
              END START
字母小写的地方是我修改的
#4
下午两点半2010-11-21 22:51
受教了,
1