教材上有一个关于在屏幕上显示实时时钟的一段程序,但运行后看不到结果,请各位专家赐教:
data  segment
  count_val  equ  18
  row=7
  column=12
  color=07h
  old1ch  dd  0
  hour  db  0,0,':'
  min  db  0,0,':'
  sec  db  0,0
  len  equ  $-hour
  count dw count_val
data  ends
code  segment
  assume  cs:code,ds:data,es:data
start:  mov ax,data
        mov ds,ax
        mov es,ax
        mov ax,351ch
        int 21h
        mov word ptr old1ch,bx
        mov word ptr old1ch+2,es
        mov ax,code
        mov ds,ax
        mov dx,offset  new1ch
        mov ax,251ch
        int 21h
lp:     mov ah,0
        int 16h
        cmp al,'q'
        jnz lp
        lds dx,old1ch
        mov ax,251ch
        int 21h
        mov ah,4ch
        int 21h
bcdtoasc  proc
       push cx
       mov ah,al
       and al,0fh
       mov cl,4
       shr ah,cl
       add ax,3030h
       pop cx
       ret
bcdtoasc  endp
gettime  proc
      mov ah,2
      int 1ah
      mov al,ch
      call  bcdtoasc
      xchg ah,al
      mov word ptr hour,ax
      mov al,cl
      call  bcdtoasc
      xchg ah,al
      mov word ptr min,ax
      mov  al,dh
      call  bcdtoasc
      xchg ah,al
      mov word ptr sec,ax
      ret
gettime endp
new1ch  proc
      cmp  count,0
      jz  next
      dec  count
      iret
next: mov count,count_val
      sti
      push ds
      push es
      push ax
      push bx
      push cx
      push dx
      push si 
      push bp
      call gettime
      mov  bh,0
      mov  bl,color
      mov  dh,row
      mov  dl,column
      mov  cx,len
      mov  bp,offset hour
      mov  al,0
      mov  ah,13h
      int  10h
      pop  bp
      pop  si
      pop  dx
      pop  cx
      pop  bx
      pop  ax
      pop  es
      pop  ds
      iret
new1ch  endp
code  ends
      end start