Controllo utente in corso...
  • Tutti gli appunti di Studenti.it sul tuo iPhone, gratis!
  • Guadagna con gli appunti!

Linguaggio assembler e linguaggio macchina: Appunto sul Linguaggio assembler e linguaggio macchina (numeri binari) di architettura degli elaboratori (file.doc, 8 pag) ( formato pdf)

VOTO: 6 Appunto inviato da microboz

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Salvatore Orlando Arch. Elab. - S. Orlando 1 Livelli di astrazione Scendendo di livello, diventiamo più concreti e scopriamo più informazione Il livello astratto omette dettagli, ma ci permette di trattare la complessità Quali sono i dettagli che via via scopriamo scendendo di livello Arch. Elab. - S. Orlando 2 Istruzioni Macchina Linguaggio della Macchina Più primitivo dei Linguaggi ad Alto Livello es., controllo del flusso poco sofisticato (non ci sono for, while, if) Linguaggio molto restrittivo es., istruzioni aritmetiche del MIPS sono solo a 3 operandi Studieremo l'ISA del MIPS simile ad altre architetture (RISC) sviluppate a partire dagli anni 80 usato da NEC, Nintendo, Silicon Graphics, Sony Scopi di progetto dell'ISA: massimizzare le prestazioni - minimizzare i costi, anche riducendo i tempi di progetto Arch. Elab. - S. Orlando 3 Istruzioni Aritmetiche del MIPS Tutte le istruzioni hanno 3 operandi L'ordine degli operandi è fisso l'operando destinazione in prima posizione Example: C code: A=B+C Linguaggio Assembler MIPS code: add $8, $9, $10 (operandi associati con variabili dal compilatore) Arch. Elab. - S. Orlando 4 Istruzioni Aritmetiche MIPS Principio di Progetto: semplicità favorisce la regolarità Ma la regolarità può complicare le cose. C code: MIPS code: A = B + C + D; E = F - A; add $8, $4, $5 add $8, $8, $6 sub $9, $7, $8 Operandi devono essere registri: solo 32 registri da 4B (1W) $0, $1, $2, $3, . Principio di progetto: più piccolo è anche più veloce Arch. Elab. - S. Orlando 5 Registri e Memoria Le istruzioni aritmetiche operano su registri solo 32 registri ogni registro 1 word (4B) Compilatore associa variabili con registri Cosa succede con programmi con tanti dati (tante variabili, o array) Usiamo la memoria, che contiene anche i programmi Memoria MIPS indirizzata al Byte Control Memory Datapath Processor Input Output I/O 0 1 2 3 4 5 6 . 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data Arch. Elab. - S. Orlando 6 Instruzioni di load / store sw (Store Word): lw (Load Word): Esempio: C code: MIPS code: reg word in memoria word in memoria reg A[8] = h + A[8]; lw $15, 324) add $15, $5, $15 sw $15, 324) Indirizzo della word in memoria: $4 + 32 Nota che sw ha la destinazione come ultimo operando Ricorda: gli operandi aritmetici sono registri, non celle di memoria ! Arch. Elab. - S. Orlando 7 Riassumendo MIPS -- load/store word, con indirizzamento al byte -- aritmetica solo su registri Instruzioni add $4, $5, $6 sub $4, $5, $6 lw $4, 1005) sw $4, 1005) Significato $4 = $5 + $6 $4 = $5 $6 $4 = Memory5+100] Memory5+100] = $4 Arch. Elab. - S. Orlando 8 Linguaggio Macchina Anche le istruzioni sono rappresentati in memoria con 1 word (4B) Esempio: add $8, $17, $18 Formato istruzione (R-type): 000000 10001 10010 01000 00000 100000 op rs rt rd shamt funct Arch. Elab. - S. Orlando 9 Linguaggio Macchina Formato i Continua »

vedi tutti gli appunti di informatica »
Carica un appunto Home Appunti
Pagina eseguita in 0.154186964035 secondi