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

📄 keshe.asm

📁 汇编语言多编写的 ASM 能够实现三级菜单 完整的课程设计论文 可以交的
💻 ASM
📖 第 1 页 / 共 2 页
字号:
              JMP       BEGIN7

    BEGIN20:
              CALL      CLEARSCREEN
              JE        BEGIN21
    BEGIN21:
              MOV       BX,OFFSET MSGB
              CALL      DISPLAY1
              CALL      S_BXCHG
              CALL      EXIT2
     BEGIN9:  MOV       AH,1        ;对输入的5个数进行排序
              INT       21H
              MOV       BX,0
              MOV       AH,0
              MOV       A[BX],AX
              CALL      DISPCHAR
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
              MOV       AH,1
              INT       21H
              ADD       BX,2
              MOV       AH,0
              MOV       A[BX],AX
              CALL      DISPCHAR
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
              MOV       AH,1
              INT       21H
              ADD       BX,2
              MOV       AH,0
              MOV       A[BX],AX
              CALL      DISPCHAR
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
              MOV       AH,1
              INT       21H
              ADD       BX,2
              MOV       AH,0
              MOV       A[BX],AX
              CALL      DISPCHAR
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
              MOV       AH,1
              INT       21H
              ADD       BX,2
              MOV       AH,0
              MOV       A[BX],AX
              CALL      DISPCHAR
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
              CALL      COMPOSITOR1 ;调用从大到小排序程序
              CALL      DISPA
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
              CALL      EXIT2       ;调用退出程序
    BEGIN10:  MOV       AH,1        ;读入从小到大排序时输入的5个数
              INT       21H
              MOV       BX,0
              MOV       AH,0
              MOV       A[BX],AX
              CALL      DISPCHAR
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
              MOV       AH,1
              INT       21H
              ADD       BX,2
              MOV       AH,0
              MOV       A[BX],AX
              CALL      DISPCHAR
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
              MOV       AH,1
              INT       21H
              ADD       BX,2
              MOV       AH,0
              MOV       A[BX],AX
              CALL      DISPCHAR
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
              MOV       AH,1
              INT       21H
              ADD       BX,2
              MOV       AH,0
              MOV       A[BX],AX
              CALL      DISPCHAR
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
              MOV       AH,1
              INT       21H
              ADD       BX,2
              MOV       AH,0
              MOV       A[BX],AX
              CALL      DISPCHAR
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
              CALL      COMPOSITOR2 ;调用从小到大排序程序
              CALL      DISPA
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
       EXIT2  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,MSG9
              MOV       AH,9
              INT       21H
              MOV       AH,1
              INT       21H
              CMP       AL,79H      ;比较 y
              JZ        QUIT
          Q:
              CMP       AL,6EH      ; 比较n
              JZ        C
          C:
              CALL      CLEARSCREEN
              CALL      BEGIN0
    BEGIN14:
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
       QUIT:
              MOV       AH,4CH
              INT       21H
       EXIT2  ENDP
        MAIN  ENDP
;*******子程序***************************************
 COMPOSITOR1  PROC      NEAR        ; 从大到小比较程序
              MOV       CX,5
              DEC       CX
      LOOP1:
              MOV       DI,CX
              MOV       BX,0
      LOOP2:
              MOV       AX,A[BX]
              CMP       AX,A[BX+2]
              JGE       CONTINUE1
              XCHG      AX,A[BX+2]
              MOV       A[BX],AX
  CONTINUE1:  ADD       BX,2
              LOOP      LOOP2
              MOV       CX,DI
              LOOP      LOOP1
              RET
 COMPOSITOR1  ENDP
 COMPOSITOR2  PROC      NEAR        ; 从小到大比较程序
              MOV       CX,5
              DEC       CX
      LOOP3:
              MOV       DI,CX
              MOV       BX,0
      LOOP4:
              MOV       AX,A[BX]
              CMP       AX,A[BX+2]
              JBE       CONTINUE2
              XCHG      AX,A[BX+2]
              MOV       A[BX],AX
  CONTINUE2:  ADD       BX,2
              LOOP      LOOP4
              MOV       CX,DI
              LOOP      LOOP3
              RET
 COMPOSITOR2  ENDP
;==========================================================
    DISPLAY1  PROC      NEAR        ;输出整行字信息
              MOV       CX,25H
      DISP1:  MOV       DL,[BX]
              CALL      DISPCHAR
              INC       BX
              LOOP      DISP1
              MOV       DL,0DH
              CALL      DISPCHAR
              MOV       DL,0AH
              CALL      DISPCHAR
              RET
    DISPLAY1  ENDP
;===========================================================
    DISPCHAR  PROC      NEAR        ;输出字符
              MOV       AH,2
              INT       21H
              RET
    DISPCHAR  ENDP
;==========================================================
       DISPA  PROC      NEAR        ;对排序后的五个数进行输出
              MOV       BX,0
              MOV       DX,A[BX]
              CALL      DISPCHAR
              ADD       BX,2
              MOV       DX,A[BX]
              CALL      DISPCHAR
              ADD       BX,2
              MOV       DX,A[BX]
              CALL      DISPCHAR
              ADD       BX,2
              MOV       DX,A[BX]
              CALL      DISPCHAR
              ADD       BX,2
              MOV       DX,A[BX]
              CALL      DISPCHAR
              RET
       DISPA  ENDP
;=================================================
     S_BXCHG  PROC      NEAR        ;小写字母向大写字母转换
      NEXT3:  MOV       AH,01
              INT       21H
              CMP       AL,61H
              JL        EXIT
              CMP       AL,7AH
              JG        EXIT
              MOV       BL,AL
              MOV       DL,0DH
              MOV       AH,02
              INT       21H
              MOV       DL,0AH
              MOV       AH,02
              INT       21H
              SUB       BL,20H
              MOV       DL,BL
              MOV       AH,02
              INT       21H
              MOV       DL,0DH
              MOV       AH,02
              INT       21H
              MOV       DL,0AH
              MOV       AH,02
              INT       21H
              JMP       SHORT   NEXT3
       EXIT:  RET
     S_BXCHG  ENDP
;=============================================
     B_SXCHG  PROC      NEAR        ;大写字母向小写字母转换
      NEXT4:  MOV       AH,01
              INT       21H
              CMP       AL,41H
              JL        EXIT1
              CMP       AL,5AH
              JG        EXIT1
              MOV       BL,AL
              MOV       DL,0DH
              MOV       AH,02
              INT       21H
              MOV       DL,0AH
              MOV       AH,02
              INT       21H
              ADD       BL,20H
              MOV       DL,BL
              MOV       AH,02
              INT       21H
              MOV       DL,0DH
              MOV       AH,02
              INT       21H
              MOV       DL,0AH
              MOV       AH,02
              INT       21H
              JMP       SHORT   NEXT4
      EXIT1:  RET
     B_SXCHG  ENDP
;====================================================
 CLEARSCREEN  PROC      NEAR        ;清屏程序
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              MOV       AH,6
              MOV       AL,0
              MOV       BH,30
              MOV       CH,0
              MOV       CL,0
              MOV       DH,200
              MOV       DL,50
              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 + -