[汇编] 在屏幕中央显示时钟

简介:

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

(1)

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

(2) 

  用来设置光标的位置

[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  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
  在CODE上查看代码片 派生到我的代码片
  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
相关文章
|
7月前
|
存储 Unix 编译器
汇编语言----X86汇编指令
汇编语言----X86汇编指令
240 2
|
2月前
|
存储 移动开发 C语言
【ARM汇编速成】零基础入门汇编语言之指令集(三)
【ARM汇编速成】零基础入门汇编语言之指令集(三)
|
2月前
|
编译器 C语言 计算机视觉
【ARM汇编速成】零基础入门汇编语言之指令集(二)
【ARM汇编速成】零基础入门汇编语言之指令集(二)
177 0
|
7月前
|
存储 机器学习/深度学习 移动开发
汇编语言指令系列
汇编语言指令系列
750 0
几组汇编指令的比较
几组汇编指令的比较
|
5月前
|
存储 机器学习/深度学习 芯片
8086 汇编笔记(十二):int 指令 & 端口 & 直接定址表
8086 汇编笔记(十二):int 指令 & 端口 & 直接定址表
|
5月前
|
存储 算法 安全
深入理解汇编语言:基础语法和常用指令介绍
深入理解汇编语言:基础语法和常用指令介绍
|
6月前
汇编语言(第四版) 实验一 查看CPU和内存,用机器指令和汇编指令编程
汇编语言(第四版) 实验一 查看CPU和内存,用机器指令和汇编指令编程
8086 汇编笔记(九):call 指令 和 ret 指令
8086 汇编笔记(九):call 指令 和 ret 指令