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

📄 mywork4.asm

📁 学校的一个实验程序。对大学生实验课很有用的。
💻 ASM
字号:
my macro
  mov dl,0ah
   mov ah,2h
  int 21h
   mov dl,0dh
   mov ah,2
   int 21h
   endm

data segment

buffer  db  60 dup(' '),'$'
count db ?
result  db 'xue hao wei    de ming chi wei:  ','$'
message db 'error! $'
string  db 'please input the marks of the students betwwen 0 and 99 ,and the number must have 2 bits','$'

data ends

stack segment stack'stack'
   db 100 dup('s')
stack ends


code segment
assume ds:data,ss:stack,cs:code

sta :
;sta proc 

     push ds
     xor ax,ax
     push ax
     mov ax,data
       mov ds,ax


amain:  
        
       call input
        my 
        lea si,count
        mov [count],bl
     
        call change
            
       call output
       my
        
    ;   ret
;sta endp
 
    


input proc near

begin:   
        lea dx,string
        mov ah,9
        int 21h
          my
     
       mov bl,0
      lea si,buffer
   
        
 main:  mov ah,1
        int 21h

        cmp al,0dh      
          jz retu          ;over
             
        cmp al,30h
        jl exit
        cmp al,39h
         jg exit
          
           inc bl
           mov [si],bl
            inc si

          sub al,30h
          mov [si],al
          mov cl,3
          shl al,cl
          shl byte ptr[si],1
       
          add [si],al

          
  
          
          mov ah,1
          int 21h
         
             
         cmp al,30h
        jl exit
        cmp al,39h
         jg exit
          
       
          sub al,30h
          add [si],al

            mov dl,20h
            mov ah,2
            int 21h
           inc si
        jmp main

   exit: my
     mov dx ,offset message
     mov ah,9
     int 21h
     my   
     jmp begin  

 retu:ret
input endp


change proc near
     
       lea di,buffer

coti:  mov dl,0
       mov cl,count
       mov bl,cl
        mov bh,0
        shl bl,1
        dec bl
        dec cl
agan:
       mov al,[di+bx]    
       mov ah,[di+bx-1]  
       
       cmp al,[di+bx-2]  
       jbe next

xchg al,byte ptr [di+bx-2]
xchg ah,byte ptr [di+bx-3] 
        
       mov  [di+bx-1],ah
       mov  [di+bx],al
       mov dl,-1
next: dec bl
      dec bl
      loop agan
        
       cmp dl,0
       jne coti
        ret
change endp

         
   



 output proc near

          mov cl,count
          lea si,buffer
          mov bl,0

goop:    
          mov al,byte ptr[si]
          mov ah,0
          mov dl,0ah
          div dl
or al,30h
or ah,30h

          mov di,offset result
          mov [di+12],al
          mov [di+13],ah
            inc bl
          mov al,bl
          mov ah,0
          mov dl,0ah
          div dl
or al,30h
or ah,30h
          mov [di+31],al
          mov [di+32],ah
          mov dx ,offset result
          mov ah,9
          int 21h
           my
          inc si
          inc si
         loop goop
         ret 
output endp
  
         ret
   
code ends
end sta
       


⌨️ 快捷键说明

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