📄 control.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 + -