bgtz
pseudolyszt.net tratta bgtz e altre istruzioni RISC-V in modo più dettagliato.
Descrizione
bgtz esegue un salto quando il valore in un registro è positivo. Il nome significa branch if greater than zero (salta se maggiore di zero). La forma seguente salta alla posizione etichettata quando rs è maggiore di zero e, in caso contrario, passa all'istruzione successiva.
bgtz rs, label
L'assembler la tratta come una pseudoistruzione e la riscrive nell'istruzione seguente, che chiede se zero è minore del registro.
blt zero, rs, label
RISC-V non ha un salto per il maggiore di, quindi gli operandi vengono scambiati e il salto minore di fa il lavoro, allo stesso modo in cui è costruito bgt. Il confronto è con segno. Zero non salta, il che distingue bgtz da bgez. Vedi blt per il salto sottostante.
bgtz è adatto a un ciclo che deve continuare finché resta qualcosa da elaborare, come un conteggio di elementi rimanenti maggiore di zero. Verifica anche se un risultato è maggiore di zero.
bgtz a0, found
La riga precedente salta a found quando a0 contiene 1 o più. Un valore di 0 o qualsiasi numero negativo passa all'istruzione successiva.
Si espande in
blt zero, rs, label
L'assembler sostituisce questa pseudoistruzione con la o le istruzioni reali elencate sopra.
Esempio
li t0, 4 bgtz t0, done # t0 > 0, so jump to 'done'
