sub cl,minutes sub dh,seconds sub dl,persec
mov hour,ch ;保存时间差 mov minutes,cl mov seconds,dh mov persec,dl inc cont
cmp cont,2 ;显示2次时间 jz out1
cursor 7,10 ;置输入光标 mov dx,offset input ;键盘输入 mov ah,10 int 21h
cursor 3,50 ;置光标 ;显示串2 mov ah,9
mov dx,offset letter2 int 21h jmp sss
out1: cursor 4,50 ;置光标 mov ah,9
mov dx,offset letter3 ;显示串3 int 21h ;显示时间差 mov cx,3
mov si,offset hour mov bx,0
www: mov bl,[si] ;取出时、分、秒 call disp_2_10 ;3次调用 displ ':' ;显示: inc si loop www mov ah,4ch int 21h
;子程序。二-十进制数转换。bx值用十进制显示。 disp_2_10 proc store_ss ;保护现场
mov ax,bx ;bx传参 mov cx,0
mov bx,10 ;将ax变为十进制数 let1: mov dx,0 inc cx ;统计余数个数 idiv bx
push dx ;保存余数 cmp ax,0 jnz let1 let2: ;显示结果
pop ax ;将余数弹入ax add ax,0030h ;调整为ascii码 mov dl,al mov ah,2 int 21h loop let2
restore_ss ;恢复现场 ret
disp_2_10 endp end start
39 编写80H号中断处理程序。中断发生时,显示彩色的0~9十个数字。