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

📄 wjgl.asm

📁 文件管理系统,包括文件夹浏览,文件的复制,建立和删除功能
💻 ASM
字号:
         IOS  MACRO     X,Y
              LEA       DX,X
              MOV       AH,Y
              INT       21H
              ENDM
      STACKS  SEGMENT   STACK
              DB        1024 DUP(?)
      STACKS  ENDS
       DATAS  SEGMENT
       COUNT  =         30
       FILES  DB        COUNT+1 DUP(0)
       SNAME  DB        COUNT+1,0,COUNT+1 DUP(0)
     HANDLE1  DW        0
       FILED  DB        COUNT+1 DUP(0)
       DNAME  DB        COUNT+1,0,COUNT+1 DUP(0)
     HANDLE2  DW        0
         BUF  DB        ?
          M1  DB        'Please choose the service:',13,10
              DB        '1,Check the files(unfilished)',13,10
              DB        '2,Del the files',13,10
              DB        '3,Copy the files',13,10
              DB        '4,Create the files',13,10
              DB        '5,Exit',13,10,'$'
          M2  DB        '1,Another files',13,10
              DB        '2,Back',13,10,'$'
        MSG1  DB        'please input Source File:$'
        MSG2  DB        'please input Destination File:$'
        MSG3  DB        'please input Delling File:$'
        MSG4  DB        'please input creatint File:$'
     ERRMSG1  DB        'Sourse File error!',13,10,'$'
     ERRMSG2  DB        'Destination File error!',13,10,'$'
     ERRMSG3  DB        'Delling File error!',13,10,'$'
     ERRMSG4  DB        'The file has already exist!',13,10,'$'
       CR_LF  DB        13,10,'$'
       DATAS  ENDS
       CODES  SEGMENT
              ASSUME    CS:CODES,DS:DATAS,SS:STACKS
      START:  MOV       AX,DATAS
              MOV       DS,AX
              MOV       ES,AX
       MAIN:  IOS       CR_LF,9
              IOS       M1,9        ;主菜单
              MOV       AH,1
              INT       21H
              CMP       AL,'1'
              JZ        LIULAN
              CMP       AL,'2'
              JZ        GN2
              CMP       AL,'3'
              JZ        GN3
              CMP       AL,'4'
              JZ        GN4
              CMP       AL,'5'
              JZ        EXIT
       EXIT:  MOV       AX,4C00H
              INT       21H
     LIULAN:  IOS       CR_LF,9
              IOS       M2,9        ;功能的重新调用
              MOV       AH,1
              INT       21H
              CMP       AL,'1'
              JZ        LIULAN
              CMP       AL,'2'
              JZ        MAIN
        GN2:  CALL      SHANCHU     ;删除功能调用
              IOS       M2,9        ;功能的重新调用
              MOV       AH,1
              INT       21H
              CMP       AL,'1'
              JZ        GN2
              CMP       AL,'2'
              JZ        MAIN
         Q1:  JMP       MAIN
        GN3:  CALL      FUZHI       ;复制功能调用
              IOS       M2,9        ;功能的重新调用
              MOV       AH,1
              INT       21H
              CMP       AL,'1'
              JZ        GN3
              CMP       AL,'2'
              JZ        MAIN
              JMP       EXIT
        GN4:  CALL      QJIANLI     ;建立功能调用
              IOS       M2,9        ;功能的重新调用
              MOV       AH,1
              INT       21H
              CMP       AL,'1'
              JZ        GN4
              CMP       AL,'2'
              JZ        Q1
              JMP       EXIT

;--------------------------------------------------------------------------------------------------
     SHANCHU  PROC      NEAR        ;删除功能子程序
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              IOS       CR_LF,9
              IOS       MSG3,9
              IOS       SNAME,10
              IOS       CR_LF,9
              LEA       SI,SNAME+2
              LEA       DI,FILES
              MOV       CL,SNAME+1
              MOV       CH,0
              CALL      CHANGE
              MOV       CX,0
              IOS       FILES,4EH
              JC        ERR1
              MOV       AL,0
              IOS       FILES,41H
              JC        ERR1
              JMP       LL2
       ERR1:  IOS       ERRMSG3,9
        LL2:  POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
     SHANCHU  ENDP
;--------------------------------------------------------------------------------------------------
       FUZHI  PROC      NEAR        ;复制功能子程序
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              IOS       CR_LF,9
              IOS       MSG1,9
              IOS       SNAME,10
              IOS       CR_LF,9
              LEA       SI,SNAME+2
              LEA       DI,FILES
              MOV       CL,SNAME+1
              MOV       CH,0
              CALL      CHANGE
              MOV       CX,0
              IOS       FILES,4EH
              JC        ERR2
              MOV       AL,0
              IOS       FILES,3DH
              JC        ERR2
              MOV       HANDLE1,AX
              IOS       MSG2,9
              IOS       DNAME,10
              IOS       CR_LF,9
              LEA       SI,DNAME+2
              LEA       DI,FILED
              MOV       CL,DNAME+1
              MOV       CH,0
              CALL      CHANGE
              MOV       CX,0
              IOS       FILED,3CH
              JC        ERR3
              MOV       HANDLE2,AX
       COPY:  MOV       BX,HANDLE1
              MOV       CX,1
              IOS       BUF,3FH
              CMP       AX,1
              JNE       FILEEOJ
              MOV       BX,HANDLE2
              MOV       CX,1
              IOS       BUF,40H
              JMP       COPY
    FILEEOJ:  MOV       BX,HANDLE2
              MOV       AH,3EH
              INT       21H
     SOURCE:  MOV       BX,HANDLE1
              MOV       AH,3EH
              INT       21H
              JMP       LL3
       ERR2:  IOS       ERRMSG1,9
              JMP       SOURCE
       ERR3:  IOS       ERRMSG2,9
        LL3:  POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
       FUZHI  ENDP

;--------------------------------------------------------------------------------------------------
     QJIANLI  PROC      NEAR        ;建立功能子程序
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              IOS       CR_LF,9
              IOS       MSG4,9
              IOS       SNAME,10
              IOS       CR_LF,9
              LEA       SI,SNAME+2
              LEA       DI,FILES
              MOV       CL,SNAME+1
              MOV       CH,0
              CALL      CHANGE
              MOV       CX,0
              IOS       FILES,4EH
              JNC       ERR4
              MOV       AL,0
              IOS       FILES,3CH
              JC        ERR4
              JMP       LL4
       ERR4:  IOS       ERRMSG4,9
        LL4:  POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
     QJIANLI  ENDP
 
;--------------------------------------------------------------------------------------------------
      CHANGE  PROC                  ;把ASCII路径转实际路径
          S:  LODSB
              STOSB
              LOOP      S
              RET
      CHANGE  ENDP

;--------------------------------------------------------------------------------------------------
       CODES  ENDS
              END       START

⌨️ 快捷键说明

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