Differenze tra le versioni di "Personal computer"

m
Ovviamente si può sostituire ADDI R3,R3,-1 con SUBI R3,R3,1
 
==== Creazione di uno Stack pointer che supporti l'aanidamentoannidamento ====
 
Abbiamo visto che il DLX non supporta l'annidamento ( ''nesting'' ) delle chiamate a procedura poichè non ha un stack ed utilizza come unitounico registro di rotorno R31, con questo codice si può implementare via software uno stack pointer con il registro R30.
R30 rappresenta l'indirizzo dell'ultima word di 32 bit (4 byte) inserita nello stack, per cui decresce man mano che lo stack si riempie e cresce man mano che si svuota.
 
... istruzioni della procedura ...
 
Al termine della procedura sono necessarie alcune righe aggiuntive per permettere il ritorno all'istruzione mappanamappata nell'ultimo indirizzo di memoria dello stack pointer
 
LW R31, 0(R30) ; Preleva l'indirizzo a cui fare ritorno
ADDI R30, R30, 4 ; Incrementa lo stack visto che sto uscendo dalla procedura
JR R31
 
 
 
==== Gestione di word (32 bit) ====
1

contributo