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

📄 control.lib

📁 学生成绩管理系统
💻 LIB
字号:
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

;huyisong 20053449 12110502
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
JUMP MACRO STRING
	    PUSH AX
	    MOV   AH,1
	    INT   21H
            JMP   STRING
	    POP AX
	ENDM


PUTS 	MACRO 	ROW,COL,S
		PUSH	CX  
   		PUSH 	DX
    		PUSH 	BX
   		PUSH	AX
    		MOV 	AH,2					
    		XOR 	BH,BH
   		MOV 	DH,ROW
   		MOV 	DL,COL
    		INT 		10H
   		MOV 	AH,9
   		LEA 		DX,S
   		INT 		21H 
   		POP 		AX
    		POP 		BX
  		POP 		DX
		POP		CX
  		ENDM   

GETS	MACRO	X,Y,S
	PUSH	AX
	PUSH	BX
	PUSH	CX
	PUSH	DX
	xor	bx,bx
	MOV	AX,X
	MUL	Y
	mov	bx,ax
	MOV	AH,0AH
	LEA	DX,S[bx]
	INT	21H
	MOV	CL,S[bx+1]
	XOR	CH,CH
	ADD	CX,2
	ADD	BX,CX
	MOV	BYTE PTR S[bx],'$'
	POP	DX
	POP	CX
	POP	BX
	POP	AX
	ENDM

NEWFILE 	MACRO 	PATHNAM,FILEHANDLE,N_ERR
  		LOCAL 	N_ERROR,N_QUIT
   		PUSH 	BX
   		PUSH 	CX
   		PUSH 	DX
              
               
                MOV 	AH,3CH
   		MOV 	CX,0
   		LEA 		DX,PATHNAM
   		INT 		21H
   		JC 		N_ERROR					
  	 	MOV 	FILEHANDLE,AX			
   		MOV 	AL,1

   		JMP 		N_QUIT
N_ERROR: 
                PUTS 15,1,N_ERR
                MOV 	AL,0	
N_QUIT:         POP 		DX
    		POP 		CX
    		POP 	        BX
   		ENDM  
  
OPENFILE	MACRO 	PNAME, FILEHANDLE
   		LOCAL 	O_ERROR,O_QUIT
   		PUSH 	DX
   		MOV 	AH,3DH
   		LEA 	DX,PNAME
   		MOV 	AL,2
   		INT 		21H
   		JC 		O_ERROR
   		MOV 	FILEHANDLE,AX
   		MOV 	AL,0
   		JMP 		O_QUIT
O_ERROR: MOV 	AL,1
O_QUIT: 	POP 		DX
		ENDM 

 

WRITEFILE  MACRO  LENGTH,BUF,FILEHANDLE
     		LOCAL 	W_ERROR,W_QUIT
     		PUSH 	BX
     		PUSH 	CX
     		PUSH 	DX
     		MOV 	BX,FILEHANDLE
     		MOV 	CX,LENGTH        
     		MOV 	AH,40H  
     		LEA 		DX,BUF    
     		INT 		21H
     		JC 		W_ERROR
     		MOV 	AL,0
     		JMP 		W_QUIT
W_ERROR: MOV 	AL,1
W_QUIT: 	POP 		DX
     		POP 		CX
     		POP 		BX
    		ENDM

funcasctobin	MACRO	VAL,S,ROW
	LOCAL	IN_CX
	LOCAL	END_L
	PUSH	DX
	PUSH	CX
	PUSH	BX
	PUSH	AX
	MOV	AL,ROW
	SUB	AL,1
	MOV	DL,P
	MUL	DL
	LEA	BX,S
	ADD	BX,AX
	MOV	VAL,0
	MOV	CL,[BX+1]
	XOR	CH,CH
	MOV	SI,BX
	XOR	AX,AX
	XOR	BX,BX
	XOR	DX,DX
IN_CX:	MOV	BL,[SI+2]
	XOR	BH,BH
	SUB	BL,30H
	ADD	AL,BL
	CMP	CX,1
	JZ	END_L
	MOV	DL,10
	MUL	DL
END_L:	MOV	VAL,AL
	INC	SI
	LOOP	IN_CX
	POP	AX
	POP	BX
	POP	CX
	POP	DX
		ENDM

READFILE MACRO  	LENGTH,BUF,FILEHANDLE
     		LOCAL 	R_ERROR,R_QUIT
       	PUSH 	BX
       	PUSH 	CX
       	PUSH 	DX
       	LEA 		DX,BUF
       	MOV 	AH,3FH
       	MOV 	BX,FILEHANDLE
       	MOV 	CX,LENGTH
       	INT 		21H          
       	JC 		R_ERROR
       	MOV 	AL,0
       	JMP 		R_QUIT 
R_ERROR: MOV 	AL,1
R_QUIT: 	POP 		DX
    		POP 		CX
       	POP 		BX
  		ENDM


CLOSEFILE  MACRO 	FILEHANDLE
   		LOCAL 	C_ERROR,C_QUIT
   		PUSH 	BX
   		PUSH 	CX
   		PUSH 	DX
   		MOV 	AH,3EH
   		MOV 	BX,FILEHANDLE
   		INT 		21H
   		JC 		C_ERROR
   		MOV 	AL,0
   		JMP 		C_QUIT
C_ERROR: MOV 	AL,1	
C_QUIT: 	POP 		DX	       
   		POP 		CX
   		POP 		BX
		ENDM





PUT	MACRO	C
	PUSH	AX
	PUSH	DX
	MOV	AH,2
	MOV	DL,C
	INT	21H
	POP	DX
	POP	AX
	ENDM

funclistonerow  MACRO  X
	PUSH	AX
	PUSH	BX
	PUSH	CX
	PUSH	DX

	MOV	DL,X
	MOV	AX,P
	MUL	DL
	MOV	SI,AX
	MOV	BX,2

	XOR	AX,AX
	MOV	AL,DL
	ADD	AL,1
	MOV	DL,10
	DIV	DL
	ADD	AH,30H
	ADD	AL,30H
	MOV	NUMBER,AL
	MOV	NUMBER+1,AH
	PUTS	1,1,NUMBER
	PUTS	1,5,STU.order[SI]
	PUTS	1,11,STU.sno[SI][BX]
	PUTS	1,22,STU.NAM[SI][BX]
	PUTS	1,32,STU.math[SI][BX]
	PUTS	1,38,STU.chin[SI][BX]
	PUTS	1,45,STU.phy[SI][BX]
        PUTS	1,55,STU.eng[SI][BX]
	PUTS	1,62,STU.sum[SI]

	
	POP	DX
	POP	CX
	POP	BX
	POP	AX
	ENDM


funclistsomerow  MACRO   X
	LOCAL	listsomerowlop1
	LOCAL	END_DISPLAY
	LOCAL	FIRST
	LOCAL	NEXTPAGE
	LOCAL	NUMBER2
	LOCAL	END_NUM
	PUSH	AX
	PUSH	BX
	PUSH	DX
	PUSH	CX
	PUSH	SI
	PUSH	DI
	MOV	DX,0
	MOV	NUMBER,'0'
	MOV	NUMBER+1,'0'
FIRST:	
	PUTS	0,1,STU_NUMBER
	PUTS	0,5,strorder
	PUTS	0,11,strsno
	PUTS	0,22,strNAME
	PUTS	0,32,strmath
	PUTS	0,38,strchin
	PUTS	0,45,strphy
        PUTS	0,55,streng
	PUTS	0,62,strsum


	

	CMP	DL,15
	JNB	listsomerowlop1			;跳到下一页

	MOV	CL,X
	XOR	CH,CH
	ADD	CL,1
	MOV	DL,2
	XOR	DH,DH
	MOV	BX,0
	MOV	DI,0
	MOV	BX,2
listsomerowlop1:

	PUSH	AX
	MOV	AH,NUMBER
	MOV	AL,NUMBER+1
	SUB	AL,30H
	SUB	AH,30H
	CMP	AL,9
	JZ	NUMBER2
	ADD	AL,1
	ADD	AH,30H
	ADD	AL,30H
	MOV	NUMBER,AH
	MOV	NUMBER+1,AL
	POP	AX
	JMP	END_NUM
NUMBER2:	ADD	AH,1
	MOV	AL,0
	ADD	AH,30H
	ADD	AL,30H
	MOV	NUMBER,AH
	MOV	NUMBER+1,AL
	POP	AX
	JMP	END_NUM


END_NUM:	MOV	AX,P
	PUSH	DX
	MUL	DI
	MOV	SI,AX
	POP	DX
	SUB	DL,DH
	PUTS	DL,1,NUMBER
	PUTS	DL,5,STU.order[SI]
	PUTS	DL,11,STU.sno[SI][BX]
	PUTS	DL,22,STU.NAM[SI][BX]
	PUTS	DL,32,STU.math[SI][BX]
	PUTS	DL,38,STU.chin[SI][BX]
	PUTS	DL,45,STU.phy[SI][BX]
        PUTS	DL,55,STU.eng[SI][BX]
	PUTS	DL,62,STU.sum[SI]

	CMP	DL,15
	JA	NEXTPAGE
	ADD	DL,DH
	CMP	DL,CL
	JNB	END_DISPLAY
	ADD	DL,1
	ADD	DI,1
	JMP	listsomerowlop1
NEXTPAGE:
	CMP	DL,CL
	JNB	END_DISPLAY
	PUTS	24,0,MSG0
	PUSH	AX
	MOV	AH,1
	INT	21H
	POP	AX
	ADD	DL,1
	ADD	DI,1
	MOV	DH,15
	CLRSCR
	JMP	FIRST
END_DISPLAY:	
	PUTS	24,0,MSG0
	POP	DI
	POP	SI
	POP	CX
	POP	DX
	POP	BX
	POP	AX

	ENDM	






⌨️ 快捷键说明

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