⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 排序.asm

📁 用汇编语言实现人名排序问题,根据字母的顺序排列,先比较首字母,如果相同则比较之后的字母
💻 ASM
字号:
;PROGRAM TITLE GOES HERE--result
;******************************************
    .model small
    .stack 40h
;******************************************
    .data
  put    db  'Please input scores:'
  sc     dw  100,?,100 dup(?)
  s5     dw  0
  s6     dw  0
  s7     dw  0
  s8     dw  0
  s9     dw  0
  s10    dw  0
  num    dw  ?
  max    dw  ?
  min    dw  ?
  ave    dw  ?

;*******************************************
.code 
;-------------------------------------------
begin proc far
     mov   ax,@data
     mov   ds,ax
     mov   es,ax

     lea  dx,put 
     mov  ah,02h
     int  21h
     
     lea  dx,sc
     mov  ah,0ah
     int  21h
     call crlf
     mov  cx,'$'/2
     mov  num,cx
     
     
     lea  di,sc
     call count
     call crlf
     call sort

     ret

begin  endp
;---------------------------------------------     
count  proc   near

     mov   s5,0
     mov   s6,0  
     mov   s7,0 
     mov   s8,0
     mov   s9,0 
     mov   s10,0
     mov   cx,num
     lea   bx,sc
AGAIN:
     mov   ax,ds:[bx]
     cmp   ax,60
     jl    five
     cmp   ax,70
     jl    six
     cmp   ax,80
     jl    seven
     cmp   ax,90
     jl    eight
     cmp   ax,100
     jne   nine
     inc   s10
     jmp   short change_addr
nine:inc   s9
     jmp   short change_addr
eight:inc  s8
     jmp   short change_addr
seven:inc  s7
     jmp   short change_addr
six: inc   s6
     jmp   short change_addr
five:inc   s5
change_addr:
         add   bx,2
         loop  AGAIN
     
     add  s5,30h
     call crlf
          
     add  s6,30h
     call crlf
     
     add  s7,30h
     call crlf
     
     add  s8,30h
     call crlf
          
     add  s9,30h
     call crlf
     
     add  s10,30h
     call crlf
     ret
count  endp
;---------------------------------------------
sort    proc   near
        mov  bx,0
        mov  cx,num
loop1:  
        mov  ax,sc[bx]
        cmp  ax,sc[bx+2]
        jge  continue 
        xchg ax,sc[bx+2]
        mov  sc[bx],ax
continue:add bx,2
        loop loop1

        mov  ax,sc[bx]
        mov  min,ax    
        add  min,30h
        call crlf
        mov  ax,sc[bx+2]
        call crlf
        ret
        
sort endp


;-------------------------------------------------
crlf   proc near

       mov  dl,0ah
       mov  ah,02h
       int  21h
       
       mov  dl,0dh
       mov ah,02h
       int 21h
       
       ret
       
crlf   endp
;--------------------------------------------------
      

end    begin


















    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -