编译环境:masm
运行结果:正确
assume cs:code
data segment
db 9,8,7,4,2,0
data ends
code segment
start:mov ax,data
mov ds,ax
mov dx,0b800H
mov es,dx
mov cx,6
mov bx,0
mov si,0
ns: mov al,[bx]
out 70H,al
in al,71H
mov ah,al
push cx
mov cl,4
shr ah,cl
and al,00001111b
add ah,30H
add al,30H
mov byte ptr es:[160*12+40*2+si],ah
mov byte ptr es:[160*12+40*2+2+si],al
cmp byte ptr [bx],7
jna fok
mov byte ptr es:[160*12+40*2+4+si],'/'
fok:nop
cmp byte ptr [bx],7
jnb sok
cmp byte ptr [bx],0
je sok
mov byte ptr es:[160*12+40*2+4+si],':'
sok:nop
inc bx
add si,6
pop cx ;弹出保存循环次数信息的cx值
loop ns
mov ax,4c00H
int 21H
code ends
end start
注:如果想要时钟走起来,只需在最后面加上jmp跳转到最开始,循环执行该程序即可