bgtzpseudo

bgtz

pseudo
Assembly RISC-V Riferimento

lyszt.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'