[8086] problema con CMP

di il
2 risposte

[8086] problema con CMP

Ciao a tutti,
ho un problema a confrontare due numeri.
All'inizio del programma definisco una variabile
NUM               DW    0  ;numero convertito
poi leggo una stringa, la trasformo in numero e la metto in questo NUM. Fin qui dovrebbe essere tutto giusto perchè poi mi faccio stampare il numero memorizzato ed è sempre corretto.
Infine devo verificare che questo NUM sia minore di 64000, quindi avevo pensato di fare semplicemente
				  CMP	NUM,64000
				  JLE   OK
				  CALL  ERRORE
				  JMP   INIZIO
              ...
ma non funziona. Ad esempio mi accetta (giustamente) 45678 ma non 34 o 1000.
Qualcuno sa dirmi come mai?
Grazie!

2 Risposte

  • Re: [8086] problema con CMP

    Aggiungo una cosa: ho anche provato a definire
    NUM_MAX			  DW	64000
    Poi per il confronto ho messo
    
    				  MOV	AX,NUM
    				  CMP	AX,NUM_MAX
    				  JLE   OK
    				  CALL  ERRORE
    				  JMP   INIZIO
    
    ma il risultato è lo stesso.
  • Re: [8086] problema con CMP

    Ciao di nuovo, ho trovato la soluzione: al posto di JLE si doveva usare JBE che tratta i numeri come unsigned.

Devi accedere o registrarti per scrivere nel forum
2 risposte