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

📄 2.asm

📁 用汇编编写的仓库零件管理系统
💻 ASM
📖 第 1 页 / 共 2 页
字号:
DATA     SEGMENT
MESS1    DB ' ACCESSORY MANAGEMENT SYSTEM ',0AH,0DH,'$'
MESS2    DB ' THIS IS THE MAIN MENU',0AH,0DH,'$'
MESS3    DB'INSERT(I)       ',0AH,0DH,'$'
MESS4    DB'MODIFY(M)       ',0AH,0DH,'$'
MESS5    DB'DELETE(D)       ',0AH,0DH,'$'
MESS6    DB'QUERY (Q)       ',0AH,0DH,'$'
MESS7    DB'COUNT (C)       ',0AH,0DH,'$'
MESS8    DB'PRINT (P)       ',0AH,0DH,'$'
MESS9    DB'EXIT  (E) ',0AH,0DH,'$'
MESS10   DB'**************************************$'
MESS12   DB'INPUT YOUR ORDER:','$'
MESS13   DB'LIST  (L)',0AH,0DH,'$'
MESS14   DB'ID   NAME          PRI  AMO  TOTAL  MIN',0AH,0DH,'$'
MESS15   DB'ID:',0AH,0DH,'$'
MESS16   DB'NAME:',0AH,0DH,'$'
MESS17   DB'PRICE:',0AH,0DH,'$'
MESS18   DB'AMOUNT:',0AH,0DH,'$'
MESS19   DB'TOTAL:',0AH,0DH,'$'
MESS20   DB'MIN:',0AH,0DH,'$'
MESS21   DB'INSERT SUCCESSFUL!',0AH,0DH,'$'
MESS22   DB'ANY KEY TO CONTINUE',0AH,0DH,'$'
MESS23   DB'CAN NOT FIND THIS RECORDER',0AH,0DH,'$'
MESS24   DB'MODIFY SUCCESSFUL!',0AH,0DH,'$'
O_ERR    DB'FILE OPEN WRONG$'
W_ERR    DB'FILE WRITE WRONG$'
R_ERR    DB'FILE READ WRONG$'
C_ERR    DB'FILE CLOSE WRONG$' 
FNAME    DB"F:\MASM\SCORE.TXT"
BUFFER1  DB 39 DUP(?)
        
BUFFER2  DB 39 DUP(?)
         DB '$'
FILEHANDLE   DW ?
LENG     DW 39
DATA     ENDS

ASSEC    STRUC
ID       DB 3  DUP('')
NAMES    DB 12 DUP('')
PRICE    DB ?
AMOUNT   DB ?
TOTAL    DW ?
MIN      DB ?
ASSEC    ENDS


CURSOR   MACRO ROW,COL       ;置光标row+1行,col+1列
         PUSH AX
         PUSH BX
         PUSH CX
         PUSH DX
         MOV  AH,2
         MOV  BH,0
         MOV  DH,ROW
         MOV  DL,COL
         INT  10H
         POP  DX
         POP  CX
         POP  BX
         POP  AX
         ENDM         
PUTS     MACRO  S            ;显示字符串
         PUSH DX
         PUSH AX
         MOV  AH,9
         LEA  DX,S
         INT  21H
         POP  AX
         POP  DX
         ENDM
OPENFILE MACRO  PNAME,FILEHANDLE,O_ERR    ;打开文件
         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,1
         JMP  O_QUIT
O_ERROR:
         PUTS O_ERR
         MOV  AL,0
O_QUIT:  
         POP  DX
         ENDM
         
WRITEFILE MACRO LENGTH,BUF,FLIEHANDLE,W_ERR   ;写文件
         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,1
         JMP  W_QUIT
W_ERROR: 
         PUTS W_ERR
         MOV  AL,0
W_QUIT:  
         POP  DX
         POP  CX
         POP  BX
         ENDM  

READFILE MACRO LENGTH,BUF,FILEHANDLE,R_ERR   ;读文件
         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,1
         JMP  R_QUIT
R_ERROR: 
         PUTS R_ERR
        ; MOV  AL,0
R_QUIT:  
         POP  DX
         POP  CX
         POP  BX
         ENDM

CLOSEFILE MACRO FILEHANDLE,C_ERR
         LOCAL  C_ERROR,C_QUIT
         PUSH BX
         PUSH CX
         PUSH DX
         MOV  AH,3EH
         MOV  BX,FILEHANDLE
         INT  21H
         JC   C_ERROR
         MOV  AL,1
         JMP  C_QUIT
C_ERROR: 
         PUTS C_ERROR
         MOV  AL,0         
C_QUIT:  
         POP  DX
         POP  CX
         POP  BX
         ENDM   
MOVCUR   MACRO A,D,FILEHANDLE              ;移动文件指针
         MOV  AL,A
         MOV  DX,D
         MOV  CX,0
         MOV  BX,FILEHANDLE
         MOV  AH,42H
         INT  21H
         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
ZEROIT   MACRO BUF                ;清零缓冲区
         PUSH BX
         PUSH CX
         PUSH DX
         
         MOV  BX,0
         MOV  CX,39
LOPN:    MOV  BUF[BX],' '
         INC  BX
         LOOP LOPN
         POP  DX
         POP  CX
         POP  BX                  
         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
         
CODE     SEGMENT                  
MAIN     PROC    FAR              
         ASSUME  CS:CODE,DS:DATA,ES:DATA
         MOV  AX,DATA
         MOV  DS,AX
START:   
         MOV  AX,DATA
         MOV  DS,AX
         MOV  AH,0
         MOV  AL,3
         INT  10H
         CLEAR
         PUTS MESS1
         PUTS MESS2
         PUTS MESS13
         PUTS MESS3
         PUTS MESS4
         PUTS MESS5
         PUTS MESS6
         PUTS MESS7
         PUTS MESS8
         PUTS MESS9
         NEWLINE
         PUTS MESS10
         NEWLINE
         PUTS MESS12
         CURSOR 12,17
W:
         MOV  AH,1
         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
         MOV  AH,14            ;警告
         MOV  AL,7
         MOV  BH,0
         INT  10H
         JMP  START
EXITF:
         MOV  AH,4CH
         INT  21H
         RET
MAIN     ENDP



INSERT   PROC NEAR
         CURSOR 13,0
         PUSH AX
         PUSH BX
         PUSH CX
         PUSH DX
         
         ZEROIT BUFFER1
         
         PUTS MESS15            ;id输入缓冲区
         CURSOR 13,3
         MOV  BX,0 
LOP2:    MOV  AH,1
         INT  21H
         CMP  AL,0AH
         JZ   CONTINUE1
         CMP  AL,0DH
         JZ   CONTINUE1
         MOV  BUFFER1[BX],AL 
         INC  BX
         CMP  BX,3
         JZ   CONTINUE1
         JMP  LOP2 
CONTINUE1:                    ;NAME输入缓冲区
         NEWLINE
         PUTS MESS16
         CURSOR 14,5
         MOV  BX,5
         
LOP3:    MOV  AH,1
         INT  21H
         CMP  AL,0AH
         JZ   CONTINUE2
         CMP  AL,0DH
         JZ   CONTINUE2
         MOV  BUFFER1[BX],AL 
         INC  BX
         CMP  BX,17
         JZ   CONTINUE2
         JMP  LOP3
CONTINUE2:                  ;PRICE输入
         NEWLINE
         PUTS MESS17
         CURSOR 15,6
         MOV  BX,19
         
LOP4:    MOV  AH,1
         INT  21H
         CMP  AL,0AH
         JZ   CONTINUE3
         CMP  AL,0DH
         JZ   CONTINUE3
         MOV  BUFFER1[BX],AL 
         INC  BX
         CMP  BX,22
         JZ   CONTINUE3
         JMP  LOP4
CONTINUE3:                          ;amount输入
         NEWLINE
         PUTS MESS18
         CURSOR 16,7                             
         MOV  BX,24
         
LOP5:    MOV  AH,1
         INT  21H
         CMP  AL,0AH
         JZ   CONTINUE4
         CMP  AL,0DH
         JZ   CONTINUE4
         MOV  BUFFER1[BX],AL 
         INC  BX
         CMP  BX,27
         JZ   CONTINUE4
         JMP  LOP5
CONTINUE4:                         ;TOTAL输入
         NEWLINE
         PUTS MESS19
         CURSOR 17,6

⌨️ 快捷键说明

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