• [汇编] 屏幕中间显示数字时钟


     

      1 ;显示系统时间程序
      2 
      3 data segment
      4     ; add your data here! 
      5     hour db '?'
      6     minute db '?'
      7     second db '?'
      8     time db   "00:00:00$"  
      9     temp db '?'  
     10     now  db '?'
     11     want db '?'
     12     pkey db "press any key...$"
     13 ends
     14 
     15 stack segment
     16     dw   128  dup(0)
     17 ends
     18 
     19 code segment
     20 ;---------------------------------------------
     21 main proc far
     22     call init_register  ;初始化 
     23 SiXunHuan:
     24     mov want,1D         ;延时3S
     25     call delay                  
     26     call setshow
     27     call show_time      ;显示  
     28     loop SiXunHuan
     29     
     30     call last_show      ;结果
     31     ret
     32 main endp;    
     33 ;---------------------------------------------
     34 init_register proc near;set segment registers:
     35     mov ax, data
     36     mov ds, ax
     37     mov es, ax 
     38     ret   
     39 init_register endp
     40 ;---------------------------------------------
     41 show_time proc near ;时间子程序   
     42     mov ah,2Ch
     43     int 21h         ;获取时间
     44     mov hour,ch
     45     mov minute,cl
     46     mov second,dh
     47 
     48     mov ax,0        ;计算到字符串时间
     49     mov al,hour 
     50     mov temp,10D
     51     div temp
     52     add al,30H
     53     mov time[0],al
     54     add ah,30H
     55     mov time[1],ah
     56       
     57     mov ax,0
     58     mov al,minute 
     59     mov temp,10D
     60     div temp
     61     add al,30H
     62     mov time[3],al
     63     add ah,30H
     64     mov time[4],ah   
     65     
     66     mov ax,0
     67     mov al,second 
     68     mov temp,10D
     69     div temp
     70     add al,30H
     71     mov time[6],al
     72     add ah,30H
     73     mov time[7],ah   
     74         
     75     lea dx,time     ;10中断显示时间
     76     mov ah,09H
     77     int 21H 
     78     
     79     ret
     80 show_time endp   
     81 ;---------------------------------------------
     82 last_show proc near ;最后显示东西  
     83     lea dx, pkey   ; output string at ds:dx
     84     mov ah, 9
     85     int 21h        
     86     
     87     ; wait for any key....and end    
     88     mov ah, 1
     89     int 21h
     90     
     91     mov ax, 4c00h ; exit to operating system.
     92     int 21h  
     93     ret
     94 last_show endp  
     95 ;---------------------------------------------  
     96 delay proc near     ;延时函数,放在want为想要延时的秒数
     97     mov ah,2Ch
     98     int 21h         ;获取时间 
     99     mov now,dh
    100     
    101     mov ax,0
    102     mov al,now 
    103     add al,want
    104     mov temp,60D
    105     div temp
    106     mov want,ah  
    107 del:
    108     mov ah,2Ch
    109     int 21h
    110     cmp dh,want
    111     jz  next
    112     loop del
    113 next:
    114     ret
    115 delay endp      
    116 ;--------------------------------------------- 
    117 setshow proc near   ;设置光标位置位置  
    118     mov dh,12      ;row-1
    119     mov dl,34      ;columun-1
    120     mov bh,0
    121     mov ah,2
    122     int 10h
    123 setshow endp  
    124 ;--------------------------------------------- 
    125 clear proc near
    126     ret
    127 clear endp
    128 ;--------------------------------------------- 
    129 end code
    130 end
  • 相关阅读:
    ovs QOS
    OpenvSwitch端口镜像
    MyCat入门指南
    Mycat跨分片Join
    MyCAT 命令行监控
    MyCat的分片规则
    FreeMarker初探--介绍
    FreeMarker初探--安装FreeMarker
    linux 安装配置zookeeper
    Maven 环境搭建及相应的配置
  • 原文地址:https://www.cnblogs.com/zjutlitao/p/3770837.html
Copyright © 2020-2023  润新知