;编程,以“年/月/日 时:分:秒“的格式,显示当前的日期、时间。
data segment
s db 9,8,7,4,2,0
data ends
stack segment stack
db 10h dup (?)
stack ends
assume cs:code
assume ds:data
code segment
start: mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov bx,160*12+35*2 ;定位显存12行35列
mov si,0
mov dl,'/' ;年月日分割符
mov cx,6 ;循环6次
s1: push cx ;cx入栈,保护
mov al,s[si] ;从数据段取要访问的单元号
out 70h,al
in al,71h ;从端口读取相应单元数据到al
mov ah,al
mov cl,4
shr ah,cl ;分解al中BCD码为十位数码值和个位数码值
and al,00001111b
add ah,30h
add al,30h ;转换成ASCLL字符码
mov es:[bx],ah ;显示十位数码
mov es:[bx+2],al ;显示个位数码
mov es:[bx+4],dl ;显示分隔符
pop cx ;出栈
cmp cx,5 ;在第二次循环结束以前改变分隔符为空格
je change ;以便第三次显示年月日和时分秒的分隔符
jb change1 ;两次以上则分隔符为:
s2:inc si
add bx,6
loop s1
mov ax,4c00h
int 21h
change:mov dl,20h ;改年月日和十分秒的分隔
jmp short s2 ;转至loop内继续
change1:cmp cx,2 ;第5次循环结束以前改分隔符为空格,因结尾不需要分隔
je s3 ;检测是否第5次循环,是则转s3
mov dl,':' ;不是第5次显示分隔符:
jmp short s2
s3:mov dl,' ' ;改分隔符为空格
jmp short s2
code ends
end start
- [somniumchase] 大佬NB,不知道为什么,我在dosbox里面运行,那个笑脸显示在左上角,而且还卡住了 01/01 11:40
- [runxsystem] smaile.asm:2: error: parser: instruction expected 07/18 10:27
- [游客] 你说你妈呢 06/04 15:11
- [zkkpkk] 注意日期,很早以前的代码了,谁都一样,谁在第一个项目就写得漂亮的 05/11 11:56
- [qqqun238564439] 厉害! 04/10 10:54
- [游客] 二〇一五年六月七日 16:23:17 06/07 16:23
- [游客] 说句实话,代码写的非常垃圾。你缺乏基本的编程素养,不积跬步无以至千里,建议先把基础打扎实。 03/25 13:48
- [游客] www.aibiancheng.cn 爱编程 02/20 21:21
- [dreamsever] 大神,请问汇编语言可以编写或者调用窗口吗 12/19 19:19
- [dgkepu] 佩服佩服!!!谢谢分享! 12/06 06:57
- [qqqun238564439] 非常好 04/10 10:50
- [dreamsever] 求帮助,大神,请问汇编语言可以编写或者调用窗口吗,怎么实现,给点指导性的提示吧。 12/19 19:21
- [xiaofan086] 你好,本人初学汇编,请问汇编需要什么编译环境,即相应的软件等等,谢谢 01/03 15:02
- [hl458461178] 求帮助 如何让一个程序循环1000次 循环到255次后就与自己的思路叉开了 10/11 12:15
- [lizhengyong1217] 汇编学几回了,都是学着学着放弃了。由于立志做一名优秀的嵌入式编程人员,为了移植系统的需要,不得不,再 04/04 08:57