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

📄 zonghe.asm

📁 此为期末综合实验
💻 ASM
字号:
print	MACRO	a
	  MOV AH,2
	  MOV DL,a
	  ADD DL,30h
	  INT 21h
	  ENDM
	  
crlf	MACRO
	  MOV AH,2
	  MOV DL,0dh
	  INT 21h
	  MOV AH,2
	  MOV DL,0ah
	  INT 21h
	  ENDM

data SEGMENT
	mes1 DB 'please input grade: $'
	mes2 DB 'no    grade    rank$'
	mes3 DB '     $'
	grade DB 50 DUP(?)
	rank  DB 50 DUP(1)
	zancun DW ?
	count DW ?
	no	DB ?
data ENDS
code SEGMENT
ASSUME CS:code,DS:data
start:	MOV AX,data
	MOV DS,AX
	MOV AH,9
	MOV DX,OFFSET mes1
	INT 21h
	CALL input	
    crlf
	CALL compare
	crlf
    MOV AH,9
	MOV DX,OFFSET mes2
	INT 21h	
    crlf
	CALL output
	MOV AH,1
	INT 21h
	MOV AH,4ch
	INT 21h
	
input	PROC
				
				LEA SI,grade
shu:          MOV       AH,01h
              INT       21h
              CMP  AL,0dh
              JE   exit
              SUB AL,30h
              SHL       AX,1
              MOV       BX,AX
              SHL       AX,1
              SHL       AX,1
              ADD       BX,AX
              MOV       AH,01h
              INT       21h
              SUB		AL,30h
              ADD       AL,BL
              MOV       [SI],AL
              INC  SI
              MOV AH,2        
              MOV DL,20h
              INT 21h 
              INC count
              LOOP shu
exit:              RET
input	ENDP

compare	PROC			
	  MOV CX,count
	  LEA SI,grade
	  MOV DI,0
lop1:
	  MOV zancun,CX
	  MOV AL,[SI]
	  MOV CX,count
	  MOV BX,0
lop2:
	  CMP AL,grade[BX]
	  JL	mczz
	  INC BX
	  LOOP	lop2
	  JMP	next
mczz:
	  INC rank[DI]
	  INC BX
	  LOOP	lop2
next:
	  INC SI
	  INC DI
	  MOV CX,zancun
	  LOOP	lop1
	  RET
compare	ENDP				

output	PROC      
      MOV SI,0
      MOV BX,0
	  MOV CX,count
shuchu:
	  MOV zancun,CX
	  CALL xh
	  MOV AH,9
	MOV DX,OFFSET mes3
	INT 21h 
	  CALL	cj 
     	MOV AH,9
	MOV DX,OFFSET mes3
	INT 21h
      CALL mc
      crlf
      MOV CX,zancun
	  LOOP	shuchu
	  RET
output	ENDP

cj	PROC			
		MOV AX,0		
		MOV AL,grade[SI]
		MOV CL,10
        	DIV CL
        	MOV DH,AH	 				
        	print AL
		print DH
        	INC SI
        	
    	   	RET
cj	ENDP
mc	PROC
			
		MOV AX,0		
		MOV AL,rank[BX]
		MOV CL,10
        	DIV CL
        	MOV DH,AH	 				
        	print AL
		print DH
        	INC BX
    	   	RET
mc	ENDP
xh	PROC
	ADD no,1
	  MOV AX,0		
	  MOV AL,no
	  MOV CL,10
      DIV CL
      MOV DH,AH	 				
      print AL
	print DH
	  RET
xh	  ENDP  
code	ENDS
	END	start




⌨️ 快捷键说明

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