La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Architettura degli Elaboratori II (canale P-Z) Modi di Indirizzamento Dott. Franco Liberati.

Presentazioni simili


Presentazione sul tema: "Architettura degli Elaboratori II (canale P-Z) Modi di Indirizzamento Dott. Franco Liberati."— Transcript della presentazione:

1 Architettura degli Elaboratori II (canale P-Z) Modi di Indirizzamento Dott. Franco Liberati

2 Argomenti Assoluto Immediato A Registro IncrementoSISTEMASALTO LOGICO- ARITMETICHE SPOSTAMENTO

3 Modi di indirizzamento Un modo di indirizzamento è un modo per esprimere un indirizzo di memoria NB: alla fine il risultato è sempre un indirizzo di memoria dove si andrà a leggere (load) o scrivere (store) un dato. La struttura è Nel linguaggio macchina MIPS, esiste un solo modo di indirizzamento imm(register) dove lindirizzo è dato dalla somma del valore immediato imm più il contenuto del registro register Esempio: lw $t0, 4($sp) (legge una word dallindirizzo $sp + 4) OPCODE MODO DI INDIRIZZAMENTO

4 Modi di Indirizzamento in SPIM

5 Modi di indirizzamento Lassembler fornisce per comodità più modi di indirizzamento Un indirizzo si può esprimere come somma di: una etichetta + una espressione + un registro Esempio: lw $t1, array + 0x100($t0) ( mette nel registro $t1, la word sita allindirizzo 0x10010104 assumendo: array = 0x10010000 e $t0 = 4 )

6 A REGISTRO (base register) Specifica un indirizzo tramite registro base, assumendo un offset 0. Lindirizzo è dato dal contenuto del base register Esempio: lb $t0,($a0)

7 A REGISTRO lb $t0,($a0) 10001101 00000010 $t0

8 IMMEDIATO (expression) Specifica un indirizzo assoluto con una espressione L'indirizzo è dato dal valore presente nel campo indirizzo. Esempio: lb $t0, 0x00 40 00 00

9 IMMEDIATO lb $t0, 0x00 00 00 8D … 10001101 00000010 $t0

10 IMMEDIATO con spiazzamento expression Specifica un indirizzo assoluto con una espressione fatta solo di somme e sottrazioni di costanti espresse in decimale o esadecimale. L'indirizzo è dato dal risultato dell'espressione (costante). Esempio: lb $t0, 0x00 40 00 00+4 I numeri negativi vanno comunque preceduti anche dal simbolo +. Esempio: lb $t0, 0x10 01 00 0c + -4

11 IMMEDIATO con spiazzamento lb $t0, 0x00 00 00 8D + 4 … 10010000 10010001 10010010 10010011 … + 100 10001101 00000010 $t0

12 IMMEDIATO A REGISTRO expression(base register) Specifica un indirizzo tramite registro base e un offset tramite una espressione L'indirizzo è dato dal contenuto del base register + il risultato dell'espressione Esempio: lw $t0, 4($sp)

13 IMMEDIATO A REGISTRO Esempio: lw $t0, 4($sp) … 10010000 10010001 10010010 10010011 … + 100 10001101 00000010 $t0 10001101 $sp

14 SIMBOLICO Relocatable-symbol Specifica un indirizzo (rilocabile) tramite una etichetta. L'assemblatore genera le istruzioni necessarie per gestire l'etichetta e aggiunge al modulo oggetto generato le informazioni di rilocazione. Esempio: lw $t0, operandA

15 SIMBOLICO … … operanA=10010001 00000010 $t0 10010000 10010001 10010010 10010011 Esempio: lw $t0, operandA

16 SIMBOLICO con spiazzamento Relocatable-symbol ± expression Specifica un indirizzo base tramite una etichetta, mentre loffset viene specificato tramite unespressione Lindirizzo è dato dalla somma dellindirizzo associato alletichetta con il risultato dellespressione Esempio: lw $t0, operandoB + 4

17 SIMBOLICO con spiazzamento Esempio: lw $t0, operandB+4 … … operandoB=10001101 00000010 $t0 10010000 10010001 10010010 10010011 + 100

18 SIMBOLICO con spiazzamento a registro Relocatable-symbol(index register) Specifica un indirizzo base tramite una etichetta, mentre loffset viene specificato tramite un registro indice Lindirizzo è dato dalla somma dellindirizzo associato alletichetta con il contenuto del registro indice. Esempio: lw $t0, array($t1)

19 SIMBOLICO con spiazzamento a registro … … array=10001100 00000010 $t0 10010000 10010001 10010010 10010011 + 00000101 $t1 00000101 Esempio: lw $t0, array($t1)

20 SIMBOLICO con spiazzamento a a spiazzamento a registro Relocatable-symbol ± expression(index register) Specifica un indirizzo base tramite una etichetta, mentre loffset viene specificato tramite un registro indice e unespressione Lindirizzo è dato dalla somma dellindirizzo associato alletichetta con il contenuto del registro indice e il risultato dell'espressione. Esempio: lw $t0, array + 4($t1)

21 SIMBOLICO con spiazzamento a a spaziamento a registro Esempio: lw $t0, array+4($t1) … … array=10001100 00000010 $t0 10010000 10010001 10010010 10010011 + 00000001 $t1 00000001 + 00000100


Scaricare ppt "Architettura degli Elaboratori II (canale P-Z) Modi di Indirizzamento Dott. Franco Liberati."

Presentazioni simili


Annunci Google