[汇编] 屏幕中间显示数字时钟
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?