Witam
mam problem przy zadaniu

Program ma zawierac procedure dokonujaca porównania 2 ciagów znaków .oba ciagi zakńczone sa $.procedura otrzymuje offset przeszukiwanego stringa w rejestrze dx i szukanego w rejestrze bx. index pierwszego wystapienia stringa bx w dx wprzyoadku kiedy bx jest wiekszy od dx procedura zwraca -1

mam program lecz zawsze mi zwraca 36

sts segment 'stack' stack
db 512 dup(0)
sts ends

dane segment

napis1 db 100h DUP (?)
napis2 db 100h DUP (?)

dlugosc1 dw 0
dlugosc2 dw 0

licznik dw 0
indeks1 dw 0
indeks2 dw 0

tekst1 db "Podaj pierwszy ciag znakow", 0dh,0ah, "$"
tekst2 db 0dh,0ah, "Podaj drugi ciag znakow", 0dh,0ah, "$"
tekst3 db 0dh,0ah, "nr indeksu:", 0dh,0ah, "$"
tekst4 db 0dh,0ah, 0dh,0ah, "nacisnij dowolny klawisz...$"

ends

prog segment
assume cs:prog,ds:dane,ss:sts
P486N

odczytaj1:

    mov     ah,0                                            
    int     16h                                             
                                                            
    cmp     al,'$'                                          
    je      koniec1                                                                                                 
                                                                      
    cmp     al,'A'                                                    
    jl      odczytaj1                                                    
                                                                      
    cmp     al,'Z'                                                    
    jle     wczytaj1                                         
                                                                      
    cmp     al,'a'                                                    
    jl      odczytaj1                                                    
                                                                      
    cmp     al,'z'                                                    
    jg     odczytaj1                                                                                 
                                                            

wczytaj1:
mov si,licznik
add [napis1+si],al

    add     dlugosc1,1                                       
                                                            
    mov     ah,0eh                                          
    int     10h                                             
                                                            
    add     licznik,1                                       
                                                            

powtorz1:
jmp odczytaj1

koniec1:
mov si,licznik
add [napis1+si],al

RET

odczytaj2:

    mov     ah,0                                            
    int     16h                                             
                                                            
    cmp     al,'$'                                          
    je      koniec2                                                                                                 
                                                                      
    cmp     al,'A'                                                    
    jl      odczytaj2                                                    
                                                                      
    cmp     al,'Z'                                                    
    jle     wczytaj2                                         
                                                                      
    cmp     al,'a'                                                    
    jl      odczytaj2                                                    
                                                                      
    cmp     al,'z'                                                    
    jg     odczytaj2                                                                                 
                                                            

wczytaj2:
mov si,licznik
add [napis2+si],al

    add     dlugosc2,1                                       
                                                            
    mov     ah,0eh                                          
    int     10h                                             
                                                            
    add     licznik,1                                       
                                                            

powtorz2:
jmp odczytaj2

koniec2:
mov si,licznik
add [napis2+si],al
RET

sprawdz:
mov ax,dlugosc1
cmp dlugosc2,ax
jb sprawdza
mov al,-1
jmp kon
sprawdza:
mov indeks1,0
mov indeks2,0
mov bp,dx

    mov     cx,dlugosc1 
                                                                         

petla:
mov si,indeks1

    mov     al,ds:[bp+si] 
    mov     si,indeks2                                   
                                                                                       
    cmp     al,[bx+si]                                                                                                          	   
           	                     	                                                                                                                                    
    jne     nierowne                                                
                                                                        

rowne:
add indeks2,1
mov ax,indeks2
cmp ax,dlugosc2

    jne     koniec_petli                                      
                                                                                                                  
    jmp     koniec                                          
                                                                        

nierowne:
mov indeks2,0
mov si,indeks2
cmp al,[bx+si]
je rowne

koniec_petli:
add indeks1,1
loop petla

koniec:
mov ax,indeks1
sub ax,1
kon:
RET

wyswietl:
mov ah,0
mov bl,10
div bl

mov dl,ah
add dl,30h
push dx

mov ah,0
div bl
add ax,3030h
push ax
mov dl ,al

mov ah,2
int 21h

pop ax
mov dl,ah
mov ah,2
int 21h

pop dx
mov ah,2
int 21h

RET

start:
mov ax,seg dane
mov ds,ax

   	mov     ah,0                                 
    mov     al,3                                                        
    int     10h                                                         
                                                                        
    mov     dx,offset tekst1                                            
  mov     ah,09h                                                      

int 21h

    mov     licznik,0                                                         
    call    odczytaj1                                      
                                                                        
    mov     dx,offset tekst2                                            

mov ah,09h
int 21h

    mov     licznik,0                                                      
    call    odczytaj2                                                                                
                                                                        
    mov     dx,offset napis1                      
    mov     bx,offset napis2                                                              
    call    sprawdz                                                     
                                                                        
    mov     dx,offset tekst3                                            

mov ah,09h
int 21h

    call    wyswietl                                                        
                                                                        
                                                                                                                                                                                                                                                                                                                                                           
    mov     ah,0                                     
    int     16h                                                         
   	                                                                    

mov ah,4ch
int 21h
prog ends
end start