bltz
pseudolyszt.net tratta bltz e altre istruzioni RISC-V in modo più dettagliato.
Descrizione
bltz esegue un salto quando un registro contiene un numero negativo. Il nome significa salta se minore di zero. La forma seguente salta alla posizione etichettata se rs è minore di zero, e altrimenti continua con l'istruzione successiva.
bltz rs, label
L'assembler riscrive questa pseudo-istruzione in un'istruzione reale. Diventa l'istruzione seguente, che confronta il registro con zero, il registro che contiene sempre 0.
blt rs, zero, label
Il confronto è con segno, quindi i 32 bit nel registro vengono letti come un numero che può essere negativo. Un salto confronta due registri e non può accettare una costante scritta nell'istruzione, ed è per questo che lo 0 proviene dal registro zero. Vedi blt per i salti che confrontano due valori e beq per come funzionano le etichette.
Per verificare se un valore è minore di zero, inserisci il valore in un registro e usa bltz su di esso. I casi usuali sono verificare il risultato di una sottrazione per vedere se è andato sotto zero, e verificare il risultato di una funzione che segnala un errore come numero negativo.
sub t0, t1, t2 bltz t0, smaller
Le righe sopra saltano a smaller quando il risultato della sottrazione è minore di zero. Un risultato esattamente 0 non è negativo e continua con l'istruzione successiva. Il salto opposto, che accetta anch'esso zero, è bgez.
Si espande in
blt rs, zero, label
L'assembler sostituisce questa pseudoistruzione con la o le istruzioni reali elencate sopra.
Esempio
li t0, -3 bltz t0, done # t0 < 0, so jump to 'done'
