提示错误发生在跳转的时候:cmp ch,2
jz a4
看了又看也不懂错在哪里,请高人指点。
以下是程序:
data segment
a db ?,?,'$'
b db ?,?,'$'
c db 32 dup(?),'$'
r db 'please input dx(00-99):$'
p db 'please input ax(00-99):$'
q db 'please input the count(1-8):$'
data ends
code segment
assume ds:data,cs:code
start:
mov ax,data
mov ds,ax
lea dx,r
mov ah,9
int 21h
mov ah,7
int 21h
mov a,al
mov ah,2
mov dl,a
int 21h
mov ah,7
int 21h
mov a+1,al
mov ah,2
mov dl,a+1
int 21h
CRLF macro
mov ah,2
mov dl,0dh
int 21h
mov dl,0ah
int 21h
endm
CRLF
lea dx,p
mov ah,9
int 21h
mov ah,7
int 21h
mov b,al
mov ah,2
mov dl,al
int 21h
mov ah,7
int 21h
mov b+1,al
mov ah,2
mov dl,al
int 21h
CRLF
mov si,0
mov cl,4
mov ch,0
mov bl,a
mov dh,a
jmp a3
a4: inc si
mov bl,a+1
mov dh,a+1
jmp a3
a6: inc si
mov bl,b
mov dh,b
jmp a3
a8: inc si
mov bl,b+1
mov dh,b+1
jmp a3
a10: mov cl,32
lea bx,c
mov si,0
a11: mov dl,[bx][si]
add dl,30h
mov ah,2
int 21h
inc si
loop a11
jmp js1
a3: sub bl,30h
shr bl,cl
jmp a5
a1: inc si
mov bl,dh
and bl,0fh
a5: inc ch
mov al,bl
mov ah,0
mov bl,8
div bl
lea bx,c
;add al,30h
mov [bx][si],al
mov al,ah
mov ah,0
inc si
mov bl,4
div bl
;add al,30h
lea bx,c
mov [bx][si],al
mov al,ah
mov ah,0
inc si
mov bl,2
div bl
;add al,30h
lea bx,c
mov [bx][si],al
mov al,ah
inc si
;add al,30h
lea bx,c
mov [bx][si],al
cmp ch,1
jz a1
cmp ch,2
jz a4
cmp ch,3
jz a1
cmp ch,4
jz a6
cmp ch,5
jz a1
cmp ch,6
jz a8
cmp ch,7
jz a1
cmp ch,8
jz a10
js1: mov ah,4ch
int 21h
code ends
end start
错误信息: Jump out of range by 16 bytes(s)
这个错误是什么意思,怎么改。