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

📄 系统时间.asm

📁 用汇编编写的
💻 ASM
字号:
      STACK1  SEGMENT   STACK
              DW        200 DUP (?)
      STACK1  ENDS
        DATA  SEGMENT
       SPACE  DB        1000 DUP (' ')
     PATTERN  DB        6 DUP (' '),0C9H,26 DUP (0CDH),0BBH,6 DUP (' ')
              DB        6 DUP (' '),0BAH,26 DUP (20H),0BAH,6 DUP (' ')
              DB        6 DUP (' '),0C8H,26 DUP (0CDH),0BCH,6 DUP (' ')
     DBUFFER  DB        8 DUP (':'),12 DUP (' ')
    DBUFFER1  DB        20 DUP (' ')
        STR1  DB        0DH,0AH, 'PLEASE INPUT DATE(1) OR TIME(2) OR QUIT(3): $'
        DATA  ENDS
        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA,ES:DATA,SS:STACK1
      START:  MOV       AX,0001H
              INT       10H
              MOV       AX,DATA
              MOV       DS,AX
              MOV       ES,AX
              MOV       BP,OFFSET SPACE
              MOV       DX,0B00H
              MOV       CX,1000
              MOV       BX,0040H
              ;MOV       AX,1300H
              ;INT       10H
              MOV       BP,OFFSET PATTERN
              MOV       DX,0B00H
              MOV       CX,120
              MOV       BX,004EH
              ;MOV       AX,1301H
              ;INT       10H
              LEA       DX,STR1
              MOV       AH,9
              INT       21H
              MOV       AH,1
              INT       21H
              CMP       AL,31H
              JNE       A
              CALL      DATE
          A:  CMP       AL,32H
              JNE       B
              CALL      TIME
          B:  CMP       AL,33H
              JNE       START
              MOV       AH,4CH
              INT       21H

        DATE  PROC      NEAR
   DISPLAY2:  MOV       AH,2AH
              INT       21H
              MOV       SI,0
              MOV       AX,CX
              MOV       BX,100
              DIV       BL
              MOV       BL,AH
              CALL      BCDASC1
              MOV       AL,BL
              CALL      BCDASC1
              INC       SI
              MOV       AL,DH
              CALL      BCDASC1
              INC       SI
              MOV       AL,DL
              CALL      BCDASC1
              MOV       BP,OFFSET DBUFFER1
              MOV       DX,0C0DH
              MOV       CX,20
              MOV       BX,004EH
              MOV       AX,1301H
              INT       10H
              MOV       AH,02H
              MOV       DX,0300H
              MOV       BH,0
              INT       10H
              MOV       BX,0018H
      REPEA:  MOV       CX,0FFFFH
     REPEAT:  LOOP      REPEAT
              DEC       BX
              JNZ       REPEA
              MOV       AH,01H
              INT       16H
              JE        DISPLAY2
              JMP       START
              MOV       AX,4C00H
              INT       21H
              RET
        DATE  ENDP

        TIME  PROC      NEAR        ;显示时间子程序
   DISPLAY1:  MOV       SI,0
              MOV       BX,100
              DIV       BL
              MOV       AH,2CH      ;取时间
              INT       21H
              MOV       AL,CH
              CALL      BCDASC      ;将时间数值转换成ASCII码字符
              INC       SI
              MOV       AL,CL
              CALL      BCDASC
              INC       SI
              MOV       AL,DH
              CALL      BCDASC
              MOV       BP,OFFSET DBUFFER
              MOV       DX,0C0DH
              MOV       CX,20
              MOV       BX,004EH
              MOV       AX,1301H
              INT       10H
              MOV       AH,02H
              MOV       DX,0300H
              MOV       BH,0
              INT       10H
              MOV       BX,0018H
         RE:  MOV       CX,0FFFFH
        REA:  LOOP      REA
              DEC       BX
              JNZ       RE
              MOV       AH,01H
              INT       16H
              JE        DISPLAY1
              JMP       START
              MOV       AX,4C00H
              INT       21H
              RET
        TIME  ENDP

      BCDASC  PROC      NEAR        ;时间数值转换成ASCII码字符子程序
              PUSH      BX
              CBW
              MOV       BL,10
              DIV       BL
              ADD       AL,'0'
              MOV       DBUFFER[SI],AL
              INC       SI
              ADD       AH,'0'
              MOV       DBUFFER[SI],AH
              INC       SI
              POP       BX
              RET
      BCDASC  ENDP

     BCDASC1  PROC      NEAR        ;日期数值转换成ASCII码字符子程序
              PUSH      BX
              CBW
              MOV       BL,10
              DIV       BL
              ADD       AL,'0'
              MOV       DBUFFER1[SI],AL
              INC       SI
              ADD       AH,'0'
              MOV       DBUFFER1[SI],AH
              INC       SI
              POP       BX
              RET
     BCDASC1  ENDP
        CODE  ENDS
              END       START



⌨️ 快捷键说明

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