您的位置:首页 > 编程语言

王爽 汇编语言 第三版 实验14 访问 CMOS RAM

2017-03-16 17:04 330 查看

题目

编程,以“年/月/日 时:分:秒”的格式,显示当前的日期、时间。

源代码

assume cs:code

data segment
db 'yy/MM/dd HH:mm:ss',0
data ends

index segment
db 9,8,7,4,2,0
index ends

code segment
main:	mov ax,data
mov ds,ax
mov ax,index
mov es,ax

mov cx,6					;循环6次
mov di,0					;es段的偏移地址
mov si,0					;ds段的偏移地址

s:	push cx
mov byte ptr al,es:[di]		;设置要访问的单元地址
call getASCII				;调用getASCII
mov byte ptr ds:[si],ah		;写入时间值的十位
mov byte ptr ds:[si+1],al	;写入时间值的个位
inc di						;自增1
add si,3					;每次增加3,指向下一个时间值
pop cx
loop s

call showTime				;打印系统时间信息

mov ax,4C00H
int 21H

;--------------------------------------------
;名称:getASCII
;功能:取得COMS RAM中存储的时间信息
;参数:(al)=要访问的单元地址
;返回:(ah)=ASCII码:十位,(al)=ASCII码:个位
;--------------------------------------------
getASCII:	out 70H,al			;向70H端口写入要访问的单元地址
in al,71H			;从71H端口取得指定单元中的数据

mov ah,al
mov cl,4
shr ah,cl			;十位数码值
and al,00001111B	;个位数码值

add ah,30H
add al,30H
ret

;--------------------------------------------
;名称:showTime
;功能:向屏幕打印系统时间信息
;参数:(ds)=数据的段地址
;返回:无
;--------------------------------------------
showTime:	mov ax,0B800H
mov es,ax
mov si,0
mov di,0
mov ch,0
print:	mov cl,ds:[si]
jcxz finish
mov byte ptr es:[di],cl
inc si
add di,2
jmp short print
finish:	ret

code ends

end main


程序运行示例图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息