汇编语言-实验十四解析

;该实验中使用了call-ret结构来调用十进制转换函数convert和屏幕显示函数show。同时使用了cmp来比较判断是否输入'/'还是':'。
;在屏幕的中间位置显示时间
assume cs:code
code segment
start:
	;get year,month,day data
	mov di,0

	mov dl,9
	mov cx,6
s:
	mov al,dl
	out 70h,al
	in al,71h

	call convert	;convert to tens digits
	call show	;show the data in screen
	loop s
	mov ax,4c00h
	int 21h
convert:
	push cx
	mov cx,0
	mov ah,al
	mov cl,4
	shr ah,cl
	and al,00001111b

	add ah,30h
	add al,30h
	pop cx
	ret
show:
	mov bx,0b800h
	mov es,bx
	mov byte ptr es:[160*12 + 40*2 + di],ah
	mov byte ptr es:[160*12 + 40*2 + di + 2],al
	cmp dl,7
	ja next01
	cmp dl,7
	je next02
	cmp dl,7
	jb next03
next01:
	mov byte ptr es:[160*12 + 40*2 + di + 4],'/'
	add di,6
	dec dl
	ret
next02:
	mov byte ptr es:[160*12 + 40*2 + di + 4],' '
	add di,6
	mov dl,4
	ret
next03:
	cmp dl,0
	je next02
	mov byte ptr es:[160*12 + 40*2 + di + 4],':'
	add di,6
	sub dl,2
	ret

code ends
end start


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值