80X86上时钟显示程序问题
杨季文汇编书上194页的一个例子,我运行后跳出MESSAGEBOX提示指令错误
这是代码
COUNT_VAL = 18
DPAGE =0
ROW =0
COLUMN =80-BUFF_LEN
COLOR = 07H
CODE SEGMENT
COUNT DW COUNT_VAL
HHHH DB ?,?,':'
MMMM DB ?,?,':'
SSSS DB ?,?
BUFF_LEN =$ - OFFSET HHHH
CURSOR DW ?
ASSUME CS:CODE,DS:CODE
NEWCH:
CMP CS:COUNT,0
JZ NEXT
DEC CS:COUNT
IRET
NEXT: MOV CS:COUNT,COUNT_VAL
STI
push ds
push es
push ax
push bx
push cx
push dx
push bp
push cs
pop ds
pop es
call get_t
mov bh,DPAGE
mov ah,03h
int 10h
mov CURSOR,dx
mov al,0
mov bh,DPAGE
mov bl,COLOR
mov cx,BUFF_LEN
mov dh,ROW
mov dl,COLUMN
lea bp,HHHH
mov ah,13h
int 10h
mov bh,DPAGE
mov dx,CURSOR
mov ah,02h
int 21h
pop bp
pop dx
pop cx
pop bx
pop ax
pop es
pop ds
iret
get_t proc
mov ah,02h
int 1ah
mov al,ch
call ttasc
xchg ah,al
mov WORD ptr HHHH,ax
mov al,cl
call ttasc
xchg ah,al
mov WORD ptr MMMM,ax
mov al,dh
call ttasc
xchg ah,al
mov WORD ptr SSSS,ax
ret
get_t endp
ttasc proc
push cx
mov ah,al
and al,0fh
mov cl,4
shr ah,cl
add ax,3030h
pop cx
ret
ttasc endp
OLDCH1 DD ?
START:PUSH CS
POP DS
MOV AL,1CH
MOV AH,35H
INT 21H
MOV WORD ptr OLDCH1,BX
MOV WORD ptr OLDCH1 +2 ,ES
MOV DX,offset NEWCH
MOV AL,1CH
MOV AH,25H
INT 21H
MOV AH,0;键盘等待,等待时钟中断
INT 16H
LDS DX,OLDCH1
MOV AL,1CH
MOV AH,25H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
请帮忙看看,调了很久了,也不知道哪里错了