博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[汇编] 在屏幕中央显示时钟
阅读量:6420 次
发布时间:2019-06-23

本文共 1324 字,大约阅读时间需要 4 分钟。

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

(1)

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

      int 21h         ;获取时间

(2) 

  用来设置光标的位置

[cpp]   
 
  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]   
 
  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
你可能感兴趣的文章
Spring.net 学习笔记之ASP.NET底层架构
查看>>
C# System.Windows.Forms.WebBrowser中判断浏览器内核和版本
查看>>
Java 动态太极图 DynamicTaiChi (整理)
查看>>
Web APi之Web Host消息处理管道(六)
查看>>
微信公众平台后台编辑器上线图片缩放和封面图裁剪功能
查看>>
git使用教程2-更新github上代码
查看>>
张掖百公里,再次折戟
查看>>
SAP QM Batch to Batch的转移过账事务中的Vendor Batch
查看>>
本期最新 9 篇论文,帮你完美解决「读什么」的问题 | PaperDaily #19
查看>>
图解SSIS监视文件夹并自动导入数据
查看>>
Lucene.Net 2.3.1开发介绍 —— 四、搜索(一)
查看>>
人工智能将如何变革视频监控行业?
查看>>
MyBatis Review——开发Dao的方法
查看>>
阿里云容器宣布开放支持Kubernetes托管服务
查看>>
只在UnitTest和WebHost中的出现的关于LogicalCallContext的严重问题
查看>>
Linux_FTP服务器
查看>>
Django里自定义用户登陆及登陆后跳转到登陆前页面的实现
查看>>
技术研发国产化进程加快 看传感器企业如何展示十八般武艺
查看>>
技术助力第三次革命
查看>>
《HTML与CSS入门经典(第8版)》——2.6 总结
查看>>