王爽实验14
实验本身并不难,但是值得有两个点我出现了错误:
- 1.实现在读取小时,分钟,秒的时候,存储在CMOS中也是1字节,而不是2字节,书上说的很清楚:
- 2.调用子函数的时候一定要注意
push
使用到的寄存器
(debug 了一小时才发现,是个大教训)
;获取格式为年/月/日 时:分:秒
assume cs:code,ds:data
data segment
db '00/00/00 00:00:00','$'
data ends
code segment
start: mov ax,data
mov ds,ax
mov si,0
;进行三次循环将数字放在data中,从9号内存开始
mov al,9
mov cx,3
s: call fun1
add si,3
dec al
loop s
mov al,4
mov cx,3
s1: call fun1
add si,3
sub al,2
loop s1
mov ah,2
mov bh,0
mov dh,5
mov dl,12
int 10h
mov ax,data
mov ds,ax
mov dx,0
mov ah,9
int 21h
mov ax,4c00h
int 21h
fun1: push ax
push cx
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
and al,00001111b
add ah,30h
add al,30h
mov byte ptr ds:[si],ah
mov byte ptr ds:[si+1],al
pop cx
pop ax
ret
code ends
end start
;一定要检查好寄存器,cx搞错搞死我一个小时才找出