assume cs:codesg
codesg segment
;CMOS RAM 中 时间信息的存放单元为 秒:0 分:2 日:7 月:8 年:9
start:
mov ax,0b800h
mov es,ax
mov si,160*12
;***********************年份的读取**********************************************
mov al,9 ;读取年份信息
out 70h,al ;将9号单元放入70h端口 写入用out
in al,71h ;从71h端口 中读取年份信息 只存放了19年 用al接受
mov ah,al
mov cl,4
shr ah,cl
add ah,30h ;转化位十进制数字
mov es:[si+0],ah ;显示年份的最高位
mov byte ptr es:[si+1],2 ;显示的数字颜色
and al,00001111b
add al,30h
mov es:[si+2],al
mov byte ptr es:[si+3],2
mov byte ptr es:[si+4],47 ;年份分隔符 /
mov byte ptr es:[si+5],2
;***********************月份的读取**********************************************
mov al,8 ;读取月份信息
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
add ah,30h ;转化位十进制数字
mov es:[si+6],ah ;显示年份的最高位
mov byte ptr es:[si+7],2 ;显示的数字颜色
and al,00001111b
add al,30h
mov es:[si+8],al
mov byte ptr es:[si+9],2
mov byte ptr es:[si+10],47 ;月分隔符 /
mov byte ptr es:[si+11],2
;***********************日的读取**********************************************
mov al,7 ;读取日的信息
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
add ah,30h ;转化位十进制数字
mov es:[si+12],ah ;显示年份的最高位
mov byte ptr es:[si+13],2 ;显示的数字颜色
and al,00001111b
add al,30h
mov es:[si+14],al
mov byte ptr es:[si+15],2
mov byte ptr es:[si+16],32 ;空格字符
mov byte ptr es:[si+17],0
;***********************时的读取**********************************************
mov al,4
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
add ah,30h ;转化位十进制数字
mov es:[si+18],ah ;显示年份的最高位
mov byte ptr es:[si+19],2 ;显示的数字颜色
and al,00001111b
add al,30h
mov es:[si+20],al
mov byte ptr es:[si+21],2
mov byte ptr es:[si+22],58 ; : 字符
mov byte ptr es:[si+23],2
;***********************分的读取**********************************************
mov al,2
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
add ah,30h ;转化位十进制数字
mov es:[si+24],ah ;显示年份的最高位
mov byte ptr es:[si+25],2 ;显示的数字颜色
and al,00001111b
add al,30h
mov es:[si+26],al
mov byte ptr es:[si+27],2
mov byte ptr es:[si+28],58 ;空格字符
mov byte ptr es:[si+29],2
;***********************秒的读取**********************************************
mov al,0
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
add ah,30h ;转化位十进制数字
mov es:[si+30],ah ;显示年份的最高位
mov byte ptr es:[si+31],2 ;显示的数字颜色
and al,00001111b
add al,30h
mov es:[si+32],al
mov byte ptr es:[si+33],2
mov ax,4c00h
int 21h
codesg ends
end start
汇编语言 第14章实验
最新推荐文章于 2024-02-29 21:31:45 发布