简单的汇编排序输出程序

datarea segment
 grade dw 
88 , 75 , 95 , 63 , 98 , 78 , 87 , 73 , 90 , 60
 rank  dw 
10  dup(?)
 printn db 
30  dup(?), 13 , 10 , ' $'
datarea ends
;
****************

prognam segment

main proc far
     assume cs:prognam,ds:datarea
start:
     push ds
     
sub  ax,ax
     push ax

     mov ax,datarea
     mov ds,ax

     mov si,
10
     mov bx,
0
loopp:
     mov ax,grade[bx]
     mov dx,
0
     mov cx,
10
     lea di,grade
next :
     cmp ax,[di]
     jg no_count
     inc dx              
no_count:
     add di,
2
     
loop   next

     mov rank[bx],dx
 
     
     dec dx
     mov di,dx
     add di,dx
     add di, dx
     mov cl,
10
     div cl
     add al,30H
     add ah,30H
     mov printn[di],al
     inc di
     mov printn[di],ah
     inc di
     mov printn[di],20H
     add bx ,
2


     dec si
     jne loopp
     
     lea dx,printn
     mov ah,
09
     
int  21H


     ret

     main endp
prognam ends
      
end  start

你可能感兴趣的:(简单的汇编排序输出程序)