当前位置:编程学习 > 汇编语言 >>

汇编语言四个错误不会改,程序在下面

SEG SEGMENT DATA DB 76,69,84,90,73,54,99,63,100,80 S5 DB 0 S6 DB 0 S7 DB 0 S8 DB 0 S9 DB 0 S10 DB 0 DSEG ENDS; CSEG SEGMENT ASSUME DS:DSEG,CS:CSEG STA:MOV AX,DSEG MOV DS,AX LEA SI,DATA MOV CX,10 A1: MOV AL,[SI] CMP AL,0 JB A2 CMP AL,59 JA P1 INC S5 JMP A2 P1: CMP AL,69 JA P2 INC S6 JMP A2 P2: CMP AL,79 JA P3 INC S7 JMP A2 P3: CMP AL,89 JA P4 INC S8 JMP A2 P4: CMP AL,99 JA P4 INC S9 JMP A2 P5: INC S10 A2: INC SI LOOP A1 MOV BH,S5 ADD BH,30H MOV DL,BH MOV AH,02H INT 21H MOV BH,S6 ADD BH,30H MOV DL,BH MOV AH,02H INT 21H MOV BH,S7 ADD BH,30H MOV DL,BH MOV AH,02H INT 21H MOV BH,S8 ADD BH,30H MOV DL,BH MOV AH,02H INT 21H MOV BH,S9 ADD BH,30H MOV DL,BH MOV AH,02H INT 21H MOV BH,S10 ADD BH,30H MOV DL,BH MOV AH,02H INT 21H MOV AH,4CH INT 21H CSEG ENDS END START
追问:他们帮我改错了,但是没运行结果,
答案:数据段的定义名字不统一
应该是dseg segment
。。。
dseg ends
然后是代码段的开头的标号应该是start,因为你最后用的是end start
其他:data segment
s5 db 0
s6 db 0
s7 db 0
s8 db 0
s9 db 0
s10 db 0
store db 56,78,83,67,39,48,95,76,86,62,100,57,85,71,92,'$'
count equ $-store-1
data ends
code segment
    assume cs:code,ds:data
start:mov ax,data
      mov ds,ax
      xor ax,ax
      xor cx,cx
      mov cx,count
      lea bx,store
again:cmp byte ptr[bx],60d     ;将成绩与60比较
      jb s5j
      cmp byte ptr[bx],70d     ;将成绩与70比较
      jb s6j
      cmp byte ptr[bx],80d     ;将成绩与80比较
      jb s7j
      cmp byte ptr[bx],90d     ;将成绩与90比较
      jb s8j
      cmp byte ptr[bx],100d     ;将成绩与100比较
      jb s9j
      inc s10                  ;若到此,则说明成绩为100,s10++
      inc bx                   ;切不可忘记地址加1
      loop again
      jmp done
  s5j:inc s5                   ;成绩小于60,s5++
      inc bx
      loop again
      jmp done                 ;此处可能成为程序出口,下同
  s6j:inc s6                   ;成绩不小于60小于70,s6++
      inc bx
      loop again
      jmp done
  s7j:inc s7                   ;成绩不小于70小于80,s7++
      inc bx
      loop again
      jmp done
  s8j:inc s8                   ;成绩不小于80小于90,s8++
      inc bx
      loop again
      jmp done
  s9j:inc s9                   ;成绩不小于90小于100,s9++
      inc bx
      loop again
 done:mov ah,4ch
      int 21h
   code ends
    end start
      
      
      我们刚好也做了这个题目,你把我的store里面的分数改成你题目的就可以了。

上一个:用汇编语言编写一个加法程序
下一个:汇编语言除法,AX里的内容是0BB8H。BL里的内容是05H。为什么命令DIV BL,结果会出现除法溢出呢??求解……

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,