Salve a tutti questo è il mio primo post, vorrei avere una delucidazione su un programma in assembly che ho stilato, trattasi di un labirinto dove in esso vi è la possibilità di muovere una faccina ( in tutte le direzioni possibili ).
L'intero codice è questo:

codice:
;descrizione del problema
dati segment
mess  db "  トトトトトトトトトトソ"
mess1 db "            ウ"
mess2 db "  トソ  レトトトトトル"
mess3 db "   ウ  ウ      "
mess4 db " レトル  タトトソ   "
mess5 db " タトソ  レトトル   "
Riga  db ?
Colonna db ?
dati ends
sistema segment stack
 dw 100 dup(?)
 top label word
sistema ends
codice segment
 assume cs:codice, ss:sistema, ds:dati, es:dati
 
 inizio:
     mov ax,sistema
     mov ss,ax
     lea ax,top
     mov sp,ax
     mov ax,dati
     mov ds,ax
     mov es,ax
  ;programma
  ;azzera schermo
   mov ah,06
   mov al,0
   mov bh,0
   mov ch,0
   mov cl,0
   mov dh,24
   mov dl,79
   int 10h
  ;posizionamento cursore
   mov Riga,10
   mov Colonna,20
   call viscurs
  ;visualizzazione labirinto
   lea bp,mess
   call vis
   inc Riga
   call viscurs
   lea bp,mess1
   call vis
   inc Riga
   call viscurs
   lea bp,mess2
   call vis
   inc Riga
   call viscurs
   lea bp,mess3
   call vis
   inc Riga
   call viscurs
   lea bp,mess4
   call vis
   inc Riga
   call viscurs
   lea bp,mess5
   call vis
 
  ;visualizzazione faccina
   mov riga,11
   mov colonna,20
   call viscurs
   mov al,""
   call faccina
 
         
            
CICLO:
      pop cx
      push cx
      loop ciclo
call muovi
alto: mov al," "
 dec riga
 call viscurs
 cmp al," "
 je sposta
 inc riga
 call viscurs
 jmp CICLO
sposta:
        inc riga
 call canc
 dec riga
 call faccina
 jmp CICLO
destra:
 inc colonna
 call viscurs
 cmp al," "
 je sposta1
 dec colonna
 call viscurs
 jmp CICLO
sposta1:
        dec colonna
 call canc
 inc colonna
 call faccina
 jmp CICLO
sinistra:
 dec colonna
 call viscurs
 cmp al," "
 je sposta2
 inc colonna
 call viscurs
 jmp CICLO
sposta2:
 inc colonna
 call canc
 dec colonna
 call faccina
 jmp CICLO
basso:
 inc riga
 call viscurs
 cmp al," "
 je sposta3
 dec riga
 call viscurs
 jmp CICLO
sposta3:
 dec riga
 call canc
 inc riga
 call faccina
 jmp CICLO

  ;ritorno al dos
        mov al,00h
        mov ah,4ch
        int 21h
vis proc
  mov ax,ds
    mov es,ax
    mov ah,13h
    mov al,01h
    mov bh,0
    mov bl,2h
    mov cx,13
    mov dh,Riga
    mov dl,Colonna
    int 10h
    ret                             
    endp
viscurs proc
       
      mov ah,02
           mov bh,0
        mov dh,Riga
        mov dl,Colonna
        int 10h
        ret
        endp
faccina proc
          
            mov ah,09
        mov bh,0
        mov bl,48h
        mov cx,1
        int 10h
        ret
        endp
muovi proc
 
      mov ah,0
       int 16h
       je alto
       cmp ah,80d
       je basso
       cmp ah,75d
       je destra
       cmp ah,72d
       je sinistra
        cmp ah,77d
       jmp muovi
           ret
           endp
canc proc
    mov ah,02
    mov bh,0
    mov dh,riga
           mov dl,colonna
           int 10h

           mov al,09h
           mov al," "
           mov bh,0
           mov bl,00001111b
           mov cx,1
           int 10h
           ret
           endp
  codice ends
end inizio


riscontra un problema di lunghezza di salto ( jmp ), troppo lungo, all'istruzione - je basso - e non riesce ad eseguire il programma. Mi e' stato detto di ridurre il salto utilizzando un jmp tra il je basso e il suo richiamo, per ridurre la lunghezza da saltare in modo da poter eliminare il problema. E' una cosa semplice e stupida, ma non mi ricordo proprio dove farlo.
Grazie in anticipo.

P.S.: Dov'è la sezione presentazioni?