利用BIOS中断或DOS中断实现一个显示当前时间的程序

来源:互联网 发布:美团高级java面试题 编辑:程序博客网 时间:2024/05/22 10:23

;***************************************************************
;利用BIOS中断或DOS中断实现一个显示当前时间的程序
;author:野渡无人
;create date:2007-12-31
;***************************************************************
save_reg macro
      push  ax
      push  bx
      push  cx
      push  dx
      push  si
      push  di
endm     
;***************************************************************
ret_reg macro
      pop   di
      pop   si
      pop   dx
      pop   cx
      pop   bx
      pop   ax
      ret
endm
;***************************************************************
print macro x
      mov  ah,02
      mov  dl,x
      int  21h
endm
;***************************************************************
;***************************************************************
data segment
     colon db ':'
data ends
;***************************************************************
prog segment
      assume cs:prog,ds:data
;---------------------------------------------------------------
main proc far
start:
     push ds
     sub  ax,ax
     push ax
     mov  ax,data
     mov  ds,ax

     mov  ah,2ch
     int  21h
     push dx
     mov  bl,ch
     call print_time
     print colon
     mov  bl,cl
     call print_time
     print colon
     pop  dx
     mov  bl,dh
     call print_time

     ret

main endp
;---------------------------------------------------------------
print_time proc near
      save_reg
      mov  al,bl
      mov  ah,0
      mov  cx,10
      div  cl
      mov  bx,ax
      add  bl,30h
      add  bh,30h
      print bl
      print bh
      ret_reg
print_time endp
;---------------------------------------------------------------
prog ends
;***************************************************************
    end start