[汇编] 在屏幕*显示时钟

很简单的一段代码。可能对于刚学习的同学有两点知识需要补充:

(1)

       mov ah,2Ch     ;ch=时,cl=分,dh=秒         用来获取系统的时间,并且分别放在注释中的寄存器中
      int 21h         ;获取时间

(2) 

  用来设置光标的位置

[cpp] view plain copy  [汇编] 在屏幕*显示时钟[汇编] 在屏幕*显示时钟
  1. setshow proc     ;设置光标位置   
  2. mov dh,12  ;行号12      
  3. mov dl,35  ;列号35    
  4. mov bh,0   ;分页  
  5. mov ah,2   
  6.   
  7. int 10h     
  8. ret  
  9. show endp   

下面是完整的程序:

[cpp] view plain copy  [汇编] 在屏幕*显示时钟[汇编] 在屏幕*显示时钟
  1. ;时钟显示  
  2.   
  3. data segment  
  4.     ; add your data here!   
  5.     hour db 0  
  6.     minute db 0  
  7.     second db 0  
  8.     time db "00:00:00$"    
  9.     len equ $-time  
  10.     num db 0      
  11.       
  12. ends  
  13.   
  14. stack segment  
  15.     dw   128  dup(0)  
  16. ends  
  17.   
  18. code segment  
  19. start:  
  20.   
  21.     mov ax, data  
  22.     mov ds, ax  
  23.     mov es, ax    
  24.       
  25.  begin:  
  26.    call  setshow   
  27.    call  get_system_time   
  28.    jmp begin  
  29.      
  30.  get_system_time proc   
  31.   ;----------------------------------  获取系统时间  
  32.     mov ah,2Ch     ;ch=时,cl=分,dh=秒  
  33.     int 21h         ;获取时间  
  34.     mov hour,ch  
  35.     mov minute,cl  
  36.     mov second,dh  
  37.   ;------------------------------------   
  38.     mov ax,0        ;时间显示到字符串  
  39.     mov al,hour     ;商:al,余数:ah  
  40.     mov num,10  
  41.     div num  
  42.     add al,30h  
  43.     mov time[0],al  
  44.     add ah,30h  
  45.     mov time[1],ah   
  46.       
  47.     mov ax,0  
  48.     mov al,minute  
  49.     mov num,10  
  50.     div num  
  51.     add al,30h  
  52.     mov time[3],al  
  53.     add ah,30h  
  54.     mov time[4],ah  
  55.       
  56.     mov ax,0  
  57.     mov al,second  
  58.     mov num,10  
  59.     div num  
  60.     add al,30h  
  61.     mov time[6],al  
  62.     add ah,30h  
  63.     mov time[7],ah  
  64.       
  65.  ;------------------------ 输出系统时间  
  66.     lea dx, time  
  67.     mov ah, 9     
  68.     int 21h    
  69.     ret   
  70.   get_system_time  endp  
  71.   
  72. ;-------------------------- --  
  73.  setshow proc     ;设置光标位置   
  74.     mov dh,12  ;行号12      
  75.     mov dl,35  ;列号35    
  76.     mov bh,0  
  77.     mov ah,2   
  78.       
  79.     int 10h     
  80.     ret  
  81.  setshow endp    
  82.  ;------------------------- ----  
  83.    
  84.     mov ax, 4c00h  
  85.     int 21h      
  86. ends  
  87.   
  88. end start   
  89.            
转自原文:http://blog.csdn.net/nk_test/article/details/45830827
上一篇:自定义初学1——扩展系统控件


下一篇:Scala语言入门四(模式匹配)