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

📄 3.asm

📁 用汇编编写的仓库零件管理系统
💻 ASM
字号:
DATA     SEGMENT
MESS1    DB ' STUDENT GRADE MANAGEMENT SYSTEM ',0AH,0DH,'$'
MESS2    DB ' THIS IS THE MAIN MENU',0AH,0DH,'$'
MESS3    DB'INSERT(I)       PLEASE INPUT:',0AH,0DH,'$'
MESS4    DB'MODIFY(M)       NAME    :',0AH,0DH,'$'
MESS5    DB'DELETE(D)       MATHS   :',0AH,0DH,'$'
MESS6    DB'QUERY (Q)       ENGLISH :',0AH,0DH,'$'
MESS7    DB'COUNT (C)       COMPUTER:',0AH,0DH,'$'
MESS8    DB'PRINT (P)       CHINESE :',0AH,0DH,'$'
MESS9    DB'EXIT  (E) ',0AH,0DH,'$'
MESS10   DB'**************************************$'
MESS11   DB'NAME         MA    EN   CO   CH',0AH,0DH,'$'
MESS12   DB'MATHS  <60  <70  <80  <90  <100',0AH,0DH,'$'
MESS13   DB'LIST  (L)',0AH,0DH,'$'
ERR1     DB'THERE IS NO THIS STUDENT$'
ERR2     DB'FILE CLOSE WRONG$'
FNAME    DB"F:\MASM\SCORE.TXT"
BUFFER1  DB 23 DUP(?)
BUFFERR  DB 0AH,0DH,'$'
BUFFER2  DB 30 DUP(?)
BUFFER3  DB 8  DUP('0')
COUNT    DB 5

HANDLE   DW ?
DEL      DB 8 DUP(?)
X        DB ?
DATA     ENDS

SCORE    STRUC
NAMES    DB 15 DUP('')
MATHS    DB 0,0
ENGLISH  DB 0,0
COMPUTER DB 0,0
CHINESE  DB 0,0
SCORE    ENDS

SHOW     MACRO ADDRS         ;显示字符串
         LEA DX,ADDRS
         MOV AH,9
         INT 21H
         ENDM
SET_P1   MACRO A              ;显示光标位置0页11行37列
         MOV AH,2
         MOV DH,A
         MOV DL,36
         MOV BH,0
         INT 10H
         ENDM
SET_P2   MACRO                 ;显示光标位置0页13行2列
         MOV AH,2
         MOV DH,12
         MOV DL,2
         MOV BH,0
         INT 10H
         ENDM
SET_P3   MACRO                  ;显示光标位置0页2行31列
         MOV AH,2
         MOV DH,1
         MOV DL,30
         MOV BH,0
         INT 10H
         ENDM
CLEAR    MACRO                  ;清屏
         MOV AL,0
         MOV CL,0
         MOV CH,0
         MOV DH,24
         MOV DL,79
         MOV BH,7
         MOV AH,6
         INT 21H
         ENDM
         
CLEAR1   MACRO            ;清除定义的靠左边部分
         MOV AL,0
         MOV BH,7
         MOV CH,4
         MOV CL,36
         MOV DH,10
         MOV DL,79
         MOV AH,6
         INT 10H
         ENDM 
         
CLEAR2   MACRO            ;清除定义的靠下边部分屏幕
         MOV AL,0
         MOV BH,7
         MOV CH,12
         MOV CL,0
         MOV DH,24
         MOV DL,79
         INT 10H
         ENDM         
          
NEWLINE  MACRO            ;换行
         PUSH AX
         PUSH DX
         MOV  DL,0DH
         MOV  AH,2
         INT  21H
         MOV  DL,0AH
         MOV  AH,2
         INT  21H
         POP  DX
         POP  AX
         ENDM
         
SHOW_ITEM MACRO ADDRS                    ;显示一行数据
         LOCAL ILOOP,W10
         PUSH  BX
         PUSH  CX
         MOV   BX,0
         
ILOOP:   MOV   DL,ADDRS[BX]               ;前15位NAMES
         MOV   AH,2
         INT   21H
         INC   BX
         CMP   BX,15
         JL    ILOOP
         MOV   CX,4
W10:     MOV   DL,''                      ;后8位成绩
         MOV   AH,2
         INT   21H
         MOV   DL,''
         MOV   AH,2
         INT   21H
         MOV   DL,''
         MOV   AH,2
         INT   21H    
         MOV   DL,ADDRS[BX]
         MOV   AH,2
         INC   BX
         MOV   DL,ADDRS[BX]
         MOV   AH,2
         INT   21H
         INC   BX
         LOOP  W10
         NEWLINE
         POP   CX
         POP   BX
         ENDM
GETIN    MACRO  ADDRS,COUNT2
LOCAL    ZEROIT,LP,INPUT_END,EXIT
         PUSH BX
         PUSH AX
         MOV  BX,0
ZEROIT   MOV  ADDRS[BX],''            ;清零names
         INC  BX
         CMP  BX,15
         JL   ZEROIT
         MOV  BX,0
LP:      MOV  AH,1
         INT  21H
         CMP  AL,0AH
         JZ   INPUT_END
         CMP  AL,0DH
         JZ   INPUT_END
         MOV  ADDRS[BX],AL
         INC  BX
         CMP  BX,COUNT2
         JL   LP
INPUT_END: 
         CMP AL,0DH
         JZ  EXIT
         CMP AL,OAH
         JZ  EXIT
         MOV AH,7
         INT 21H
         JMP INPUT_END
EXIT:    
         POP  AX
         POP  BX
         ENDM
        
CODE     SEGMENT                  
MAIN     PROC    FAR              
         ASSUME  CS:CODE,DS:DATA,ES:DATA
START:   
         MOV  AX,DATA
         MOV  DS,AX
         MOV  AH,0
         MOV  AL,3
         INT  10H
         CLEAR
         SHOW MESS1
         SHOW MESS2
         SHOW MESS13
         SHOW MESS3
         SHOW MESS4
         SHOW MESS5
         SHOW MESS6
         SHOW MESS7
         SHOW MESS8
         SHOW MESS9
         NEWLINE
         SHOW MESS10
         SET_P3
W:
         MOV  AH,7
         INT  21H
         CMP  AL,'I'
         JNZ  N1
         CALL INSERT
         JMP  W
N1:      CMP  AL,'M'
         JNZ  N2
         CALL MODIFY
         JMP  W
N2:      CMP  AL,'D'
         JNZ  N3
         CALL DELETE
         JMP  W
N3:      CMP  AL,'Q'
         JNZ  N4
         CALL QUERY
         JMP  W
N4:      CMP  AL,'C'
         JNZ  N5
         CALL COUN
         JMP  W
N5:      CMP  AL,'P'
         JNZ  N6
         CALL PRINT
         JMP  W
N6:      CMP  AL,'L'
         JNZ  N7
         CALL LIST
         JMP  W
N7:      CMP  AL,'E'
         JZ   EXITF
         JMP  W
EXITF:
         MOV  AH,4CH
         INT  21H
         RET
MAIN     ENDP

INSERT   PROC NEAR
         RET
INSERT   ENDP

MODIFY   PROC NEAR
         RET
MODIFY   ENDP 
        
DELETE   PROC NEAR
         RET
DELETE   ENDP

QUERY    PROC NEAR
         RET
QUERY    ENDP

COUN     PROC NEAR
         RET
COUN     ENDP

PRINT    PROC NEAR
         RET
PRINT    ENDP 
        
LIST     PROC NEAR
         RET         
LIST     ENDP

CODE     ENDS
         END  MAIN

⌨️ 快捷键说明

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