王爽实验14

王爽实验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搞错搞死我一个小时才找出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值