blezpseudo

blez

pseudo
Assembly RISC-V Riferimento

lyszt.net tratta blez e altre istruzioni RISC-V in modo più dettagliato.

Descrizione

blez esegue un salto quando il valore in un registro è zero o negativo. Il nome significa «salta se minore o uguale a zero». La forma seguente salta alla posizione etichettata quando rs è al massimo zero, e altrimenti prosegue con l'istruzione successiva.

blez rs, label

L'assembler la tratta come una pseudo-istruzione e la riscrive nell'istruzione seguente, che chiede se zero è maggiore o uguale al registro.

bge zero, rs, label

Gli operandi sono scambiati perché RISC-V non ha un salto minore-o-uguale, quindi bge fa il lavoro, allo stesso modo in cui è costruito ble. Il confronto è con segno. Zero salta, il che distingue blez da bltz, ed è l'opposto di bgtz, quindi per qualsiasi valore esattamente uno dei due esegue il salto. Vedi bge per il salto sottostante.

blez si adatta a un controllo che non resti nulla da fare. Un ciclo che elabora un conteggio di elementi rimanenti può uscire non appena il conteggio è zero o è sceso sotto.

blez t0, done

La riga sopra salta a done quando t0 è 0 o negativo.

Si espande in

bge zero, rs, label

L'assembler sostituisce questa pseudoistruzione con la o le istruzioni reali elencate sopra.

Esempio

li t0, 0
blez t0, done   # t0 <= 0, so jump to 'done'