linha0 发表于 2011-7-17 20:54:12

实验14,代码+注释

;实验14:编程,以“年/月/日 时:分:秒” 的格式,显示当前日期、时间
assume cs:code

code segment
start:
                mov ax,0b800h
                mov ds,ax
                mov di,12*160+30*2                ;设置显示位置
                mov dh,2                                ;设置显示属性
               
                mov al,9
                mov bl,'/'
                call readTime
               
                mov al,8
                mov bl,'/'
                call readTime
               
                mov al,7
                mov bl,' '
                call readTime
               
                mov al,4
                mov bl,':'
                call readTime
               
                mov al,2
                mov bl,':'
                call readTime
               
                mov al,0
                mov bl,0
                call readTime
               
                mov ax,4c00h
                int 21h
               
showTime:;显示数据,dl为要显示的字符;dh为显示的属性
                mov ,dx
                add di,2
ret

;参数(al:端口号;bl:附加符号) 功能:读取CMOS RAM的端口(al)的信息,并显示到屏幕上
readTime:
                ;读取CMOS RAM的端口(al)的信息
                out 70h,al
                in al,71h
               
                ;获取高4位二进制信息
                mov ah,al
                mov cl,4
                shr ah,cl
               
                ;获取低4位二进制信息
                and al,00001111b
               
                ;转换为ASCII码
                add ah,30h
                add al,30h
               
                mov dl,ah
                call showTime
               
                mov dl,al
                call showTime
               
                mov dl,bl
                call showTime
ret
code ends
end start

三田学校 发表于 2012-8-5 00:26:59

呵呵,学习了。
页: [1]
查看完整版本: 实验14,代码+注释