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

📄 t3.asm

📁 简单计时器
💻 ASM
字号:
;***********时钟延时##:$$:&&*********************************
data segment
buffer db 10
       db ?
       db 10 dup(?)
data   ends
stack segment  stack
       db 100 dup(?)
stack ends
code segment
      assume cs:code,ds:data,es:data,ss:stack
begin:  
        mov ax,data
        mov ds,ax
       
        mov ch,0    ;时  
        mov dh,0    ;分
        mov dl,0    ;秒

again:  call delay    ;调用延时子程序
        ;call clear   ;调用清屏子程序
        mov al,dl
        add al,01h
        daa
        mov dl,al
        cmp al,60h
        jne dispy
        mov dl,0
        mov al,dh
        add al,1
        daa
        mov dh,al
        cmp al,60h
        jne dispy
        mov dh,0
        mov al,ch
        add al,1
        daa
        mov ch,al
        cmp al,24h
        jne dispy
        mov ch,0
        
dispy: lea bx,buffer    ;放入缓冲区显示
       mov al,0dh       ;回车放入缓冲区
       mov [bx],al
       inc bx
       ;mov al,0ah       ;换行放入缓冲区
       ;mov [bx],al
       ;inc bx
       mov al,ch
       call tran
       inc bx
       mov al,':'
       mov [bx],al
       inc bx
       mov al,dh
       call tran
       inc bx
       mov al,':'
       mov [bx],al
       inc bx
       mov al,dl
       call tran
       inc bx
       mov al,'$'
       mov [bx],al
       push bx
       push cx
       push dx
       lea dx,buffer
       mov ah,9
       int 21h
       pop dx
       pop cx
       pop bx
       jmp again

;*****************转成ASCII码*******************************
tran proc 
       mov cl,al
       shr al,1
       shr al,1
       shr al,1
       shr al,1
       or  al,30h
       mov [bx],al
       inc bx
       mov al,cl
       and al,0fh
       or al,30h
       mov [bx],al
       ret
tran endp
;***********************************************************

;******延时子程序*************************
delay   proc
      push cx
      push dx 
     
    
     mov dx,04ffh
up:   xor cx,cx    
a:      nop  
       loop a
       dec dx      
       jnz up
      
       pop dx
       pop cx
     
       ret
delay   endp
;*****************************************


;**************清屏子程序******************
clear proc near
      push ax
      push bx
      push cx
      push dx

      mov ax,0600h  ;ah=06(滚动) al=00(全屏空白)
      mov bh,0fh    ;黑色背景(0) 白色前景(f)
      sub cx,cx     ;左上角行:列 
      mov dx,184fh  ;右下角行:列
      int 10h

      pop dx
      pop cx
      pop bx
      pop ax
      ret
clear endp
;*******************************************       

code ends
     end begin
       
       
        

⌨️ 快捷键说明

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