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

📄 keshe.asm

📁 汇编语言多编写的 ASM 能够实现三级菜单 完整的课程设计论文 可以交的
💻 ASM
📖 第 1 页 / 共 2 页
字号:
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
              RET
    DISPLAY1  ENDP
;=========================================================
    DISPCHAR  PROC      NEAR
              MOV       AH,2
              INT       21H
              RET
    DISPCHAR  ENDP
;=========================================================
     DECIBIN  PROC      NEAR        ;十进制到二进制
              MOV       BX,0
    NEWCHAR:
              MOV       AH,1
              INT       21H
              SUB       AL,30H
              JL        EXIT
              CMP       AL,9D
              JG        EXIT
              CBW
              XCHG      AX,BX
              MOV       CX,10D
              MUL       CX
              XCHG      AX,BX
              ADD       BX,AX
              JMP       NEWCHAR
       EXIT:
              RET
     DECIBIN  ENDP
     BINIHEX  PROC      NEAR
              MOV       CH,4
     ROTATE:  ROTATE:  MOV       CL,4
              ROL       BX,CL
              MOV       AL,BL
              AND       AL,0FH
              ADD       AL,30H
              CMP       AL,3AH
              JL        PRINTIT
              ADD       AL,7H
    PRINTIT:
              MOV       DL,AL
              MOV       AH,2
              INT       21H
              DEC       CH
              JNZ       ROTATE
              RET
     BINIHEX  ENDP
        CRLF  PROC      NEAR
              MOV       DL,0DH
              MOV       AH,2
              INT       21H
              MOV       DL,0AH
              MOV       AH,2
              INT       21H
              RET
        CRLF  ENDP
;-------------------------------------------------------
      MUSIC2  PROC      NEAR
              MOV       AH, 0
              MOV       AL,00
              INT       10H
              SHOW      INFO1
              SHOW      INFO2
              SHOW      INFO3
              SHOW      MUSLIST
      INPUT:  MOV       AH,01H
              INT       21H
              CMP       AL,'Q'
              JZ        RETU
              CMP       AL,'A'
              JNZ       B0
              ADDRESS   MUS_FREG1,MUS_TIME1
              CALL      MUSIC
              JMP       EXIT1
         B0:  CMP       AL,'B'
              JNZ       C0
              ADDRESS   MUS_FREG2,MUS_TIME2
              CALL      MUSIC
              JMP       EXIT1
         C0:  CMP       AL,'C'
              JNZ       EXIT5
              ADDRESS   MUS_FREG3,MUS_TIME3
              CALL      MUSIC
      EXIT1:  SHOW      INFO5
              JMP       INPUT
      EXIT5:
              CALL      CLEAR
              SHOW      INFO4
              SHOW      INFO5
              SHOW      INFO1
              SHOW      INFO2
              SHOW      INFO3
              SHOW      MUSLIST
              JMP       INPUT
       RETU:  MOV       AH,4CH
              INT       21H
      MUSIC2  ENDP
;******************************************发声 
    GENSOUND  PROC      NEAR
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              PUSH      DI
              MOV       AL,0B6H
              OUT       43H,AL
              MOV       DX,12H
              MOV       AX,348CH
              DIV       DI
              OUT       42H,AL
              MOV       AL,AH
              OUT       42H,AL
              IN        AL,61H
              MOV       AH,AL
              OR        AL,3
              OUT       61H,AL
      WAIT1:  MOV       CX,3314
              CALL      WAITF
     DELAY1:  DEC       BX
              JNZ       WAIT1
              MOV       AL,AH
              OUT       61H,AL
              POP       DI
              POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
    GENSOUND  ENDP
;******************************************** 
       WAITF  PROC      NEAR
              PUSH      AX
     WAITF1:
              IN        AL,61H
              AND       AL,10H
              CMP       AL,AH
              JE        WAITF1
              MOV       AH,AL
              LOOP      WAITF1
              POP       AX
              RET
       WAITF  ENDP
;********************************************* 
       MUSIC  PROC      NEAR
              PUSH      DS
              SUB       AX,AX
              PUSH      AX
       FREG:  MOV       DI,[SI]
              CMP       DI,-1
              JE        END_MUS
              MOV       BX,DS:[BP]
              CALL      GENSOUND
              ADD       SI,2
              ADD       BP,2
              JMP       FREG
    END_MUS:
              RET
       MUSIC  ENDP
;************************************************clear!!! 
       CLEAR  PROC      NEAR
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              MOV       AH,6
              MOV       AL,0
              MOV       BH,7
              MOV       CH,0
              MOV       CL,0
              MOV       DH,24
              MOV       DL,79
              INT       10H
              POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
       CLEAR  ENDP
;-----------------------------------------------------
       EXIT3  PROC      NEAR        ;退出程序
              WIN       0,07H,15,10,17,61
              WIN       0,24H,14,9,16,60
              MOV       DH,15       ;行
              MOV       DL,9        ; 列
              MOV       BH,0        ; 页号
              MOV       AH,2        ; 置光标 位置
              INT       10H
              LEA       DX,MSGC
              MOV       AH,9
              INT       21H
              MOV       AH,1
              INT       21H
              CMP       AL,79H      ;比较 y
              JZ        QUIT
          Q:
              CMP       AL,6EH      ; 比较n
              JZ        C
          C:
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
              CALL      CLEARSCREEN
              CALL      BEGIN0
    BEGIN14:
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
       QUIT:
              MOV       AH,4CH
              INT       21H
       EXIT3  ENDP
;-----------------------------------------------
 CLEARSCREEN  PROC      NEAR        ;清屏程序
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              MOV       AH,6
              MOV       AL,0
              MOV       BH,7
              MOV       CH,0
              MOV       CL,0
              MOV       DH,200
              MOV       DL,100
              INT       10H
              MOV       DX,0
              MOV       AH,2
              INT       10H
              POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
 CLEARSCREEN  ENDP
;------------------------------------------------
     PROGNAM  ENDS
              END       START
;======================================================

⌨️ 快捷键说明

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