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

📄 know.asm

📁 该文件是用MASM开发的
💻 ASM
字号:
DATA     SEGMENT
temp1     dw   ?
temp2     dw   ?
char1     DB   ?
char2     DB   ?
char3     DB   ?
char4     DB   ?
char5     DB   ?
char6     DB   ?
char7     DB   ?
char8     DB   ?
char9     DB   ?
char10    DB   ?
char11    DB   ?
char12    DB   ?
char13    DB   ?
char14    DB   ?
char15    DB   ?

led1    DB   ?
led2    DB   ?
led3    DB   ?
led4    DB   ?
led5    DB   ?
led6    DB   ?
led7    DB   ?
led8    DB   ?
led9    DB   ?
led10   DB   ?
led11   DB   ?
led12   DB   ?
led13   DB   ?
led14   DB   ?
led15   DB   ?
led16   DB   ?
led17   DB   ?
led18   DB   ?
led19   DB   ?
led20   DB   ?
led21   DB   ?
led22   db   ?
led23   db   ?
led24   db   ?
led25   db   ?
DATA     ENDS
;----------------------------------------
CODE     SEGMENT
MAIN     PROC  FAR
         ASSUME  CS:CODE,DS:DATA

START:  
         MOV   AX,DATA
         MOV   DS,AX
         
          mov   temp1,0000h
          mov   temp2,184fh
          mov   bh,37h                    ;set background color
          call  clr_screen
         
bigloop:
         MOV   AH,1
         INT   16H                       ;判断有无字符输入
         JZ    time
         MOV   AH,0                      ;读键盘
         INT   16H
         
         CMP   AL,1BH                    ;esc键的ascii码       
         JNE   TIME              
         JMP   EXIT
;----------------------------------------------------------------------------
time:     MOV  AH,2CH                    ;读时间  (cx:dx)=time (ch)=hour  
          INT  21H                       ;(cl)=minute (dh)=second (dl)=百分秒
                                         
          mov   al,ch		
          mov   ah,0		
          mov   bh,10		
          div   bh		
          add   al,30h		
          mov   led15,al	        
          add   ah,30h	
          mov   led16,ah         
         
          mov   al,cl		
          mov   ah,0		
          mov   bh,10		
          div   bh		
          add   al,30h		
          mov   led18,al	        
          add   ah,30h	
          mov   led19,ah
         
          mov   al,dh		
          mov   ah,0		
          mov   bh,10		
          div   bh		
          add   al,30h		
          mov   led21,al	        
          add   ah,30h	
          mov   led22,ah
         
          mov   al,dl		
          mov   ah,0		
          mov   bh,10		
          div   bh		
          add   al,30h		
          mov   led24,al	        
          add   ah,30h	
          mov   led25,ah

          mov   led3,3ah
          mov   led6,3ah
          mov   led9,3ah
;------------------------------------------------------------------------------
          MOV  AH,2AH                   ;取日期  (cx:dx)=date (cx)=year(1980-2099)
          INT  21H                     ;(dh)=month(1-12) (dl)=day(1-31) (al)=week

          mov  temp1,al
          and  temp1,30h     		      
          mov  led13,temp1		;week
 ;-------------------------------------------------------------------------------
         mov     ah,04h          ;read date  CH=century(BCD),CL=year(BCD)
         int     1aH             ;DH=month,DL=day

         mov     temp1,cx                   ;year
         mov     al,cl
         and     al,0f0h
         mov     cl,4
         ror     al,cl
         add     al,30h
         mov     led3,al                 
         mov     cx,temp1
         and     cl,0fh
         add     cl,30h
         mov     led4,cl

         mov     al,dh             ;month
         and     al,0f0h
         mov     cl,4
         ror     al,cl
         add     al,30h
         mov     led6,al
         and     dh,0fh
         add     dh,30h
         mov     led7,dh

         mov     al,dl              ;day
         and     al,0f0h
         mov     cl,4
         ror     al,cl
         add     al,30h
         mov     led9,al
         and     dl,0fh
         add     dl,30h
         mov     led10,dl

         mov    led1,32h          ;'2'
         mov    led2,30h          ;'0'
         mov    led5,2dh          ;'-'
         mov    led8,2dh
         MOV    led14,00H         ;空格                
         mov    led12,30h         ;'0'
         
          MOV  char1,57H             ;W
          MOV  char2,45H             ;E
          MOV  char3,4CH             ;L
          MOV  char4,43H             ;C
          MOV  char5,4FH             ;O
          MOV  char6,4DH             ;M
          MOV  char7,45H             ;E
          MOV  char8,21H             ;!
          MOV  char9,4EH             ;N
          MOV  char10,4FH            ;O
          MOV  char11,57H            ;W
          MOV  char12,00H            ;空格
          MOV  char13,49H            ;I
          MOV  char14,53H            ;S
          MOV  char15,00H            ;空格
         
          MOV  led17,3AH             ;':'
          MOV  led20,3AH           
          MOV  led23,3AH
          MOV  led11,2FH            ;'/'
          
          MOV  AH,02H              ;置光标位置  
          MOV  dh,05h
          mov  dl,10h              ;dh=row dl=column
          MOV  BH,0
          INT  10H
          
          call  disp_all
                             
EXIT:     mov  ah,4ch
          int  21h
                 
MAIN  ENDP
;----------------------------------
disp_all proc near
          LEA  SI,char1      ;'W'
          MOV  bh,15
disp_cha:
          MOV  AL,[SI]
          CALL display
          INC  SI
          DEC  bh
          CMP  bh,0
          jnz  disp_cha      

          lea  si,led1   
          mov  bh,25
disp_td :
          mov   al,[si]
          call  display
          inc   si
          dec   bh
          cmp   bh,0
          jnz   disp_td        
          jmp   bigloop
          ret
disp_all  ENDP
;----------------------------------------------------------
display PROC  NEAR
          PUSH  AX
          PUSH  BX
          
          MOV   AH,0EH             ;写字符到当前光标位置,且光标位置前进一格
          MOV   BL,07H             ;bl=color
          MOV   BH,0               ;bh=页号
          INT   10H                
         
          POP   BX
          POP   AX
          RET
display   ENDP
;----------------------------------
clr_screen  proc  near
         mov   ah,06h          
         mov   cx,temp1                    ;top=row*col
         mov   dx,temp2                    ;botten=row*col
         int   10h
         mov   ah,02h
         mov   dh,24
         mov   dl,80
         mov   bh,0
         int   10h
         ret
clr_screen     endp
;---------------------------------
CODE   ENDS
    END    START

⌨️ 快捷键说明

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