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

📄 zhsy.asm

📁 实验内容: 编制一程序
💻 ASM
字号:
DATA SEGMENT
     GRADE  DB 50 DUP(0)
     RANK   DB 50 DUP(0)
     SNO    DB  ?
     COUNT  DW  ?
     MES1   DB 'INPUT GRADE:$'
     MES2   DB 'SNO  GRADE  RANK$'
DATA ENDS
CODE SEGMENT
     ASSUME CS:CODE,DS:DATA
     
START:MOV AX,DATA
      MOV DS,AX
      CALL INPUT     
       
      MOV DI,0
      MOV CX,COUNT
  B1: PUSH CX
      MOV CX,COUNT
      MOV SI,0
      MOV AL,GRADE[DI]
      MOV DX,1
  B2:CMP GRADE[SI],AL
      JBE CONU
      INC DX
 CONU:ADD SI,1
      LOOP B2
      POP CX
      MOV RANK[DI],DL
      ADD DI,1
      LOOP B1
       
      CALL OUTPUT
      MOV AH,1
      INT 21h
      MOV AX,4CH
      INT 21H
 
INPUT PROC  ;输入子程序
      MOV AH,09H
      MOV DX,OFFSET MES1
      INT 21H
      CALL CRLF
      MOV SI,0
  A1: MOV BX,0    
      MOV CX,2	

  A2: PUSH	CX	
      MOV   AH, 1     ;键盘输入
      INT   21h
      
      SUB   AL,30h         
      JL    EXIT       ; <0退出
      CMP   AL,9
      JG    EXIT       ; >9退出
      CBW
      XCHG  AX,BX
      MOV   CX,10
      MUL   CX
      XCHG  AX,BX
      ADD   BX,AX
      
      POP   CX
      
      LOOP   A2
      
      MOV	GRADE[SI],BL       
      INC	SI
      INC	COUNT
      CALL  SPACE
      JMP	A1	  
  EXIT:   RET
INPUT	ENDP  

OUTPUT PROC  ;输出子程序
      LEA DX,MES2
      MOV AH,09H
      INT 21H
      CALL CRLF
      MOV CX,COUNT
      MOV SI,OFFSET GRADE
      MOV DI,OFFSET RANK
  C1: PUSH CX
      ADD SNO,1
      MOV DL,SNO
      ADD DL,30H
      MOV AH,2
      INT 21H
      MOV CX,5
  C2: CALL SPACE
      LOOP C2
      MOV AL,[SI]
      CALL ZH
      INC SI
      MOV CX,5
  C3: CALL SPACE
      LOOP C3
      MOV AL,[DI]
      CALL ZH
      INC DI
      CALL CRLF
      POP CX
      LOOP C1
      RET
 OUTPUT ENDP   

ZH PROC 
      PUSH BX
      PUSH CX
      PUSH SI
      PUSH DI 
      SUB AH,AH   
      MOV CL,10D
      DIV CL
      MOV BH,AH
      MOV DL,AL
      ADD DL,30H
      MOV AH,02H
      INT 21H
      MOV DL,BH
      ADD DL,30H
      MOV AH,02H
      INT 21H
      POP DI
      POP SI
      POP CX
      POP BX
      RET
 ZH     ENDP

SPACE PROC NEAR  ;空格
    PUSH AX
	PUSH DX
	MOV AH,2
	MOV DL,20H
	INT 21H
	POP DX
	POP AX
	RET
 SPACE ENDP
 
CRLF PROC NEAR  ;回车换行
    PUSH AX
	PUSH DX
	MOV DL,0DH
	MOV AH,2
	INT 21h
	MOV DL,0AH
	MOV AH,2
	INT 21H
	POP DX
	POP AX
	RET
CRLF ENDP

CODE          ENDS
              END       START
  

      
      

    
         
            







⌨️ 快捷键说明

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