+ -
当前位置:首页 → 问答吧 → 这道题做的我快疯了!

这道题做的我快疯了!

时间:2010-12-06

来源:互联网

;将GRADE名次存入RANK并显示
assume cs:code,ds:data

data segment
grade dw 12,23,45,67,78,89,90,89,34,56
rank dw 10 dup(?)
data ends

code segment
start:mov ax,data
  mov ds,ax

  mov di,0
  mov bx,0
  lop1:mov ax,grade[bx]
  mov dx,1
  mov cx,10
  lea si,grade
  lop2:cmp ax,[si]
  jge lop3
  inc dx
  lop3:add si,2
  loop lop2
  mov rank[bx],dx
  add bx,2
  inc di
  cmp di,10
  jb lop1
   
  mov cx,10
  lea si,rank
out1: MOV DL,[si]
  AND DL,0FH
  CMP DL,9
  JBE NEXT1
  ADD DL,7
NEXT1: ADD DL,30H
  MOV AH,2
  INT 21H ;显示低位ASCII码
  add si,2
  loop out1

code ends
end start

各位帮我看下哪里错了?

作者: dongfengkuayue   发布时间: 2010-12-06

你可以写个注释么 我怎么看不懂?

作者: znxllyuan   发布时间: 2010-12-06

assume cs:code,ds:data

data segment
grade dw 12,23,45,67,78,89,90,89,34,56
rank dw 10 dup(?)
data ends

  code segment
start:mov ax,data
  mov ds,ax
  mov ex,ax
 
  lea si,grade
  lea di,rank
  mov cx,0ah
  cld
  rep movsw  
  这不就是传送么?

 还有输出 十进制的形式输出还是16进制的呢?  
 

作者: znxllyuan   发布时间: 2010-12-06

首先是程序的最后没有正常的“结束程序返回DOS”的功能调用

作者: zara   发布时间: 2010-12-06