MIPS Instruction Set 1
|
|
|
- Lorenzo Carboni
- 8 anni fa
- Просмотров:
Транскрипт
1 Laboratorio di Architettura 8 aprile 2011
2 1 SPIM 2 Architettura Mips 3 Esercitazione
3 SPIM emulatore software architettura MIPS R2000/R3000 debugger + servizi base di sistema operativo realizzazione/verifica di semplici programmi assembler Sito ufficiale: larus/spim.html Documentazione di riferimento in appendice A del libro di testo o larus/hp_appa.pdf Libro utile: Dominic Sweetman, See MIPS Run, Morgan Kaufmann Publishers, AcademicPress, 2002 A cosa ci servira Tradurre e verificare un semplice codice C in assembler MIPS.
4 SPIM Interfaccia
5 Registri MIPS reference card: 32 registri general purpose a 32bit: Numero Nome Uso Preservati dal chiamato? $0 $zero constante 0 N/A $1 $at temp assembler No $2-$3 $v0-$v1 retval funzioni e expr eval No $4-$7 $a0-$a3 args funzione No $8-$15 $t0-$t7 temp No $16-$23 $s0-$s7 temp da salvare Si $24-$25 $t8-$t9 temp No $26-$27 $k0-$k1 riservati kernel No $28 $gp global pointer Si $29 $sp stack pointer Si $30 $fp frame pointer Si $31 $ra return address N/A
6 Istruzioni Comuni 1/3 Istruzioni Aritmetiche: Instruction Example Meaning Comments add add $1,$2,$3 $1=$2+$3 Always 3 operands subtract sub $1,$2,$3 $1=$2-$3 Always 3 operands add immediate addi $1,$2,10 $1=$2+10 add constant add unsigned addu $1,$2,$3 $1=$2+$3 Always 3 operations subtract unsigned subu $1,$2,$3 $1=$2-$3 Always 3 operations add immed.unsigned addiu $1,$2,10 $1=$2+10 Always 3 operations Istruzioni Logiche: Instruction Example Meaning Comments and and $1,$2,$3 $1=$2&$3 3 register operands or or $1,$2,$3 $1=$2 $3 3 register operands and immediate andi $1,$2,10 $1=$2&10 AND constant or immediate or $1,$2,10 $1=$2 10 OR constant shift left logical sll $1,$2,10 $1=$2«10 Shift left by constant shift right logical srl $1,$2,10 $1=$2»10 Shift right by constant
7 Istruzioni Comuni 2/3 Istruzioni di Trasferimento: Instruction Example Meaning Comments load word lw $1,10($2) $1=mem[$2+10] mem to reg store word sw $1,10($2) mem[$2+10]=$1 reg to mem
8 Istruzioni Comuni 3/3 Salti Condizionati: Instruction Example Meaning Comments branch on equal beq $1,$2,10 if($1==$2)go to PC+4+10 Equal test branch on not equal bne $1,$2,10 if($1!=$2)go to PC+4+10 Not equal test set on less then slt $1,$2,$3 if($2<$3)$1=1;else $1=0 Less than compare Salti Incondizionati: Instruction Example Meaning Comments jump j 1000 go to 1000 Jump to target address jump register jr $31 go to $31 For switch, procedure return jump and link jal 1000 $31=PC+4;go to 1000 For procedure call
9 Sintassi Assembly Programma include.data e.text Commenti iniziano con #, il resto della linea e ignorato Nomi identificatori: sequenze di lettere, numeri, underbars (_) e punti (.) Le etichette sono dichiarate mettendole ad inizio riga seguite da : Formato delle istruzioni: opcode seguito da uno o piu operandi: addi $t0, $t0, 1 Operandi devono essere valori letterali o registri I registri possono contenere valori a 32 bit I numeri sono in base 10 di default. Il prefisso 0x indica gli esadecimali Le stringhe sono racchiuse tra apici, possono includere \n o \t
10 Variabili, Semplici Operazioni Dato un semplice (e storico) programma C, traduciamolo in assembly e simuliamone il funzionamento. / v a r i a b i l i g l o b a l i / i n t x, y, z [ 4 ] ; void main ( void ) { x = 8; y = x 1; z [ 2 ] = y ;
11 Variabili, Semplici Operazioni Alcune versioni di SPIM limitano l uso dei nomi di variabile dato che alcune lettere sono considerate parole chiave, buona regola puo essere usare i nomi delle variabili raddoppiati, tipo x xx. li $2, 8 # x = 8 sw $2, xx # salva x modificato in memoria lw $2, xx # carica x dalla memoria addu $2, $2, -1 # x - 1 sw $2, yy # salva y modificato in memoria lw $2, yy # carica y dalla memoria addu $3, $0, 8 # punta al secondo elemento di z sw $2, zz($3) # z[2] = y
12 Variabili, Dichiarazione Come istruire in assembly sulle dimensioni delle variabili nei nostri esempi? Nella parte dati del codice occorre specificare: da che indirizzo cominciano i dati (.data) il tipo di allineamento dei dati in memoria (.align) specificato in base 2 ciascuna variabile con il relativo numero di byte che occupera (.space) # variabili globali.data 0x # indirizzo di partenza dei dati.align 2 # allineamento in memoria 2^2 = 4 byte xx:.space 4 # numero di byte allocati per x yy:.space 4 # numero di byte allocati per y zz:.space 16 # numero di byte allocati per z[]
13 Esempio di file assembly.text.align 2 main: li $2, 8 sw $2, xx lw $2, xx addu $2, $2, -1 sw $2, yy lw $2, yy addu $3, $0, 8 sw $2, zz($3) $FINE: j $31.end main.data 0x align 2 xx:.space 4 yy:.space 4 zz:.space 16 # PROLOGO # PROGRAMMA # EPILOGO # DATI
14 Istruzione Condizionale IF Se la condizione e vera eseguo il corpo, altrimenti salto all istruzione successiva. In assembly e generalmente piu vantaggioso lavorare con la condizione negata rispetto al C. Vedi file exif0.s e exif1.s i f ( i == j ) { i ++; j ; Supponiamo i in $2, j in $3 L1: bne $2, $3, L1 # branch if! ( i == j ) addi $2, $2, 1 # i++ addi $3, $3, -1 # j--
15 Istruzione Condizionale IF/ELSE Se la condizione e vera eseguo il ramo IF, altrimenti salto al ramo ELSE, ricordando che in ambedue i casi devo comunque passare all istruzione successiva. In assembly e generalmente piu vantaggioso lavorare con la condizione negata rispetto al C. Vedi file exifel0.s e exifel1.s i f ( i == j ) { i ++; else { j ; j += i ; Supponiamo i in $2, j in $3 bne $2, $3, ELSE # branch if! ( i == j ) addi $2, $2, 1 # i++ j L1 # jump over else ELSE: addi $3, $3, -1 # j-- L1: add $3, $3, $2 # j += i
16 Ciclo WHILE Diversamente dai condizionali, i cicli non hanno istruzioni assembly che li supportino direttamente, occorre quindi convertirli in condizionali + GOTO. Ricordiamo che il corpo del WHILE potrebbe non essere eseguito. Vedi file exwhile.s while ( i < j ) { k ++; i = i 2; L1 : i f ( i < j ) { k ++; i = i 2; goto L1 ; Supponiamo i in $2, j in $3, k in $8 L1: bge $2, $3, EXIT # branch if! ( i < j ) addi $8, $8, 1 # k++ add $2, $2, $2 # i = i * 2 j L1 # jump back to top of loop EXIT: C e un altro modo di moltiplicare un numero per le potenze di 2?
17 Ciclo DO/WHILE Ricordiamo che il corpo del DO/WHILE deve essere eseguito almeno una volta. Vedi file exdowhile.s do { k ++; i = i 2; while ( i < j ) Supponiamo i in $2, j in $3, k in $8 L1 : k ++; i = i 2; i f ( i < j ) { goto L1 ; L1: addi $8, $8, 1 # k++ add $2, $2, $2 # i = i * 2 bge $2, $3, EXIT # branch if! ( i < j ) j L1 # jump back to top of loop EXIT:
18 Ciclo FOR Ricordiamo che l inizializzazione della variabile di controllo fa parte del FOR. Vedi file exfor0.s for ( i = 0; i < j ; i ++ ) { k [ i ] = i 2; i = 0; L1 : i f ( i < j ) { k [ i ] = i 2; i ++; goto L1 ; Supponiamo i in $2, j in $3, addr(k) in $8 L1: EXIT: la $8, kk # load addr(k) li $2, 0 # i = 0 bge $2, $3, EXIT # branch if! ( i < j ) add $9, $2, $2 # i * 2 sw $9, 0($8) # k[i] = i * 2 addi $2, $2, 1 # i++ addi $8, $8, 4 # update addr(k) j L1 # jump back to top of loop
19 Cicli Annidati 1/2 Prendiamo come esempio l inizializzazione di una matrice a b, costituita da due cicli FOR annidati. Vedi file exfor1.s e exfor2.s for ( i = 0; i < a ; i ++ ) { for ( j = 0; j < b ; j ++ ) { k [ i ] [ j ] = i + j ; i = 0; LI : i f ( i < a ) { j = 0; LJ : i f ( j < b ) { k [ i ] [ j ] = i + j ; j ++; goto LJ ; i ++; goto LI ;
20 Cicli Annidati 2/2 Supponiamo i in $2, j in $3, addr(k) in $8, a in $4, b in $5 la $8, kk # carica addr(k) li $2, 0 # i = 0, vai alla prima riga LI: bge $2, $4, EXIT # tutte le righe sono state azzerate? li $3, 0 # j = 0, vai alla prima colonna LJ: bge $3, $5, NROW # tutte le colonne sono state azzerate? addu $9, $2, $3 # i + j sw $9, 0($8) # k[i][j] = i + j addi $3, $3, 1 # j++ addi $8, $8, 4 # update addr(k) j LJ # vai ad aggiornare la prossima colonna NROW: addi $2, $2, 1 # i++ j LI # vai ad aggiornare la prossima riga EXIT:
21 Formato Istruzioni 1/2 MIPS reference card: Formato R (Register) per istruzioni aritmetiche Formato I (Immediate) per istruzioni di trasferimento, brach o immediati Formato J (Jump) per istruzioni di salto Formato R op rs rt rd shamt funct I op rs rt address/immediate J op target address op rs rt rd shamt funct Operation code First source register operand Second source register operand Destination register operand Shift amount - used in shift instructions Select the variant of the operation in the op code field
22 Formato Istruzioni 2/2 Ad esempio, l istruzione addu $30, $0, $29 è codificata nella word 0x001df021 in binario perché: i bit sono sempre a zero; i bit codificano il registro sorgente 1 ($0 e il numero 0); i bit codificano il registro sorgente 2 ($29 e il numero 29, bin 11101); i bit codificano il registro destinazione ($30 e il numero 30, bin 11110); i bit 10-6 sono sempre a zero; i bit 5-0 codificano il codice dell istruzione (addu e la n. 33, bin ).
23 Esercitazione 1/3 # define NUM 4 i n t A [NUM], B [NUM], C[NUM], tmp ; void main ( void ) { r e g i s t e r i n t i, j ; / / I n i z i a l i z z a array A j = 2; for ( i = 0; i < NUM; i ++ ) { A [ i ] = i + j ; j ++;
24 Esercitazione 2/3 / / I n i z i a l i z z a array B i = NUM 1; j = 2; while ( i >= 0 ) { B [ i ] = i + j ; i f ( A [ i ] > B [ i ] ) { j = A [ i ] ; else { j = B [ i ] ; i ; / / Salva i n array C g l i i n d i r i z z i d i A i = 0; do { C[ i ] = ( i n t ) &A [ i ] ; i ++; while ( i < NUM ) ;
25 Esercitazione 3/3 / / Ordina v e t t o r e B con bubble s o r t for ( i = (NUM 1); i > 0; i ) { for ( j = 1; j <= i ; j ++ ) { i f ( B [ j 1] > B [ j ] ) { tmp = B [ j 1]; B [ j 1] = B [ j ] ; B [ j ] = tmp ;
26 Scheletro di file assembly main:.text.align 2 # PROLOGO # PROGRAMMA < il programma va qui > $FINE: j $31.end main.data.align 2 # EPILOGO # DATI < le variabili vanno qui >
27 Requisiti Fondamentali 1 Una volta scritto l assembler MIPS corrispondente, da inserire tra il prologo e l epilogo, lo si commenti riga per riga in modo tale che sia chiaro dove vengono scritte o lette le singole variabili ed il funzionamento generale del programma. 2 Gli elementi degli array A, B e C vanno mantenuti in memoria, quindi se il loro valore viene modificato anche la memoria deve essere aggiornata. 3 Al termine della simulazione con SPIM, si catturi in un file di testo il valore di tutti i registri (finestra in alto di SPIM, tralasciare i registri floating point) e della memoria (finestra data segment ) giustificando i valori contenuti nei registri e nella memoria. 4 Considerare infine 3 istruzioni del programma (una per tipo) e spiegare, in un altro file di testo, come i vari campi dell istruzione vengono codificati in una singola word, come si può notare nella finestra centrale di SPIM.
28 Consegna La relazione da consegnare e formata da: 1 un file di testo.s contenente la traduzione in assembler MIPS del programma C 2 un file di testo con la copia degli output del simulatore SPIM al termine dell esecuzione 3 un file di testo contenente la spiegazione del formato delle tre istruzioni MIPS NON usate la cattura di immagini da schermo: copiate ed incollate usando un editor di testo NON includete file BINARI o creati con WORD, EXCEL... NON verranno considerate mail con piu di 3 file allegati! Spedite tutto a [email protected] entro le ore 23:59:59 di domenica 17 aprile. L oggetto della mail deve essere nella forma: LAB1-N#esercitazione-#gruppo ( es: LAB1-N3-99)
Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j
L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):
Istruzioni di trasferimento dati
Istruzioni di trasferimento dati Leggere dalla memoria su registro: lw (load word) Scrivere da registro alla memoria: sw (store word) Esempio: Codice C: A[8] += h A è un array di numeri interi Codice Assembler:
Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini
Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
MIPS Instruction Set 2
Laboratorio di Architettura 15 aprile 2011 1 Architettura Mips 2 Chiamata a Funzione 3 Esercitazione Registri MIPS reference card: http://refcards.com/docs/waetzigj/mips/mipsref.pdf 32 registri general
Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div
MIPS load/store word, con indirizzamento al byte aritmetica solo su registri Istruzioni Significato add $t1, $t2, $t3 $t1 = $t2 + $t3 sub $t1, $t2, $t3 $t1 = $t2 - $t3 mult $t1, $t2 Hi,Lo = $t1*$t2 div
Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F.
Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/32 Linguaggio
Architettura degli Elaboratori
Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni
Il linguaggio macchina
Il linguaggio macchina Istruzioni macchina (PH 2.4) Indirizzamento (PH 2.9) Costanti a 32-bit (PH 2.9) 1 Linguaggio macchina Le istruzioni in linguaggio assembly devono essere tradotte in linguaggio macchina
Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly
Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)
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
Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.
di Cassino e del Lazio Meridionale Corso di MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 201/201 Francesco Tortorella Istruzioni di confronto Istruzione
Università degli Studi di Cassino
Corso di Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 2007/2008 Francesco Tortorella Istruzioni di confronto Istruzione Significato slt $t1,$t2,$t3 if
Calcolatori Elettronici
Calcolatori Elettronici ISA di riferimento: MIPS Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello funzionale Livello logico Livello circuitale Livello del layout istruzioni macchina, ISA Reti logiche:
COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME
MATRICOLA COGNOME NOME 1) [28/40] Trovare il codice assembly MIPS corrispondente dei seguenti micro-benchmark (utilizzando solo e unicamente istruzioni dalla tabella sottostante), rispettando le convenzioni
Linguaggio Assembly e linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly
Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
Linguaggio Assembly e linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
Linguaggio Assembly e linguaggio macchina
Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
Richiami sull architettura del processore MIPS a 32 bit
Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC
ISA (Instruction Set Architecture) della CPU MIPS
Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Uniersità degli Studi di Milano L16-20 1 Linguaggio macchina
L unità di controllo di CPU a singolo ciclo
L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica [email protected] Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1,
Istruzioni assembler Istruzione N Registri
Istruzioni assembler Istruzione N Registri Aritmetica add a, b, c a = b+c addi a, b, num a = b + sub a, b, c a = b - c mul a, b, c a = b*c div a, b, c a = b/c utilizzati Descrizione 3 Somma. Somma b e
Richiami sull architettura del processore MIPS a 32 bit
Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC
L'architettura del processore MIPS
L'architettura del processore MIPS Piano della lezione Ripasso di formati istruzione e registri MIPS Passi di esecuzione delle istruzioni: Formato R (istruzioni aritmetico-logiche) Istruzioni di caricamento
Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly
Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin ORGANIZZAZIONE DEL CALCOLATORE:
Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali
Prof. Gian Luca Marcialis Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto dei calcolatori
Le costanti Le modalità di indirizzamento L assembly del MIPS
Le costanti Le modalità di indirizzamento L assembly del MIPS Prof. Alberto Borghese Dipartimento di Scienze dell Informazione [email protected] Università degli Studi di Milano 1/45 Sommario Le costanti
Introduzione. Indice. Linguaggio macchina. Linguaggio assembler
Indice Linguaggio ad alto livello, linguagio assembler e linguaggio macchina Il linguaggio assembler MIPS: istruzioni aritmetiche, di trasferimento dati e di salto Conversione linguaggio assembler in linguaggio
Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly
Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Richiamo sull
Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)
Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Parte di Controllo La Parte Controllo (Control) della CPU è un circuito sequenziale istruzioni eseguite in più cicli di clock
Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H
Architettura dei calcolatori e sistemi operativi Il processore Capitolo 4 P&H 4. 11. 2015 Sommario Instruction Set di riferimento per il processore Esecuzione delle istruzioni Struttura del processore
Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)
Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo
Linguaggio Assembler MIPS
Linguaggio Assembler MIPS Corso di Calcolatori Elettronici Corso di Calcolatori Elettronici A A.A. 2000/2001 Dr. Daniela Fogli Notazione Operazioni aritmetiche: Somma add a, b, c fa la somma di b e c e
L ambiente di simulazione SPIM
Architettura degli Elaboratori e delle Reti Lezione 14 L ambiente di simulazione SPIM Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 14 1/20
Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini
Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock Prof. Andrea Sterbini [email protected] Argomenti Progetto della CPU MIPS a 1 colpo di clock - Istruzioni da implementare - Unità
Il linguaggio assembly
Il linguaggio assembly PH 2.3 (continua) 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Istruzioni logiche 2 1 La memoria del MIPS I contenuti delle locazioni di memoria
Calcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 ISA e LINGUAGGIO ASSEMBLY MIPS ESERCIZI Massimiliano Giacomin ESERCIZIO Utilizzando la green card, tradurre in linguaggio macchina le due istruzioni in assembly
Calcolatori Elettronici
Calcolatori Elettronici Il linguaggio assemblativo MIPS (4) Le function (2) Gestione dei sottoprogrammi $a0 - $a3 - $v1 $ra : 4 registri argomento per il passaggio dei parametri : due registri per la restituzione
Architettura degli Elaboratori B Introduzione al corso
Componenti di un calcolatore convenzionale Architettura degli Elaboratori B Introduzione al corso Salvatore Orlando http://www.dsi.unive.it/~arcb Studieremo il progetto e le prestazioni delle varie componenti
Architettura MIPS (RISC) Architetture dei Calcolatori (Lettere. Principi di Progettazione ISA MIPS MIPS R3000 ISA. Il Set di Istruzioni MIPS
Architettura MIPS (RISC) Architetture dei Calcolatori (Lettere A-I) Il Set di Istruzioni MIPS Ing.. Francesco Lo Presti Sviluppata e progettata a Stanford (USA) Progettata nei primi anni 80 Prodotta e
Calcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 ISA e LINGUAGGIO ASSEMBLY MIPS Massimiliano Giacomin 1 Architettura MIPS Architettura RISC e load-store sviluppata da John Hennessy nel 1981 Usata da NEC, Nintendo,
ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:
Università degli Studi di Milano Corso Architettura degli elaboratori e delle reti Prof. Cristina Silvano A.A. 2004/2005 Esame scritto del 15 luglio 2005 Cognome: Matricola: Nome: Istruzioni Scrivere solo
Progetto CPU (ciclo singolo) Salvatore Orlando
Progetto CPU (ciclo singolo) Salvatore Orlando Arch. Elab. - S. Orlando 1 Processore: Datapath & Control Possiamo finalmente vedere il progetto di un processore MIPS-like semplificato Semplificato in modo
Architettura di tipo registro-registro (load/store)
Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche
Lezione 2 Assembly MIPS (2)
Lezione 2 Assembly MIPS (2) http://www.dii.unisi.it/~giorgi/didattica/arcal1 All figures from Computer Organization and Design: The Hardware/Software Approach, Second Edition, by David Patterson and John
Università degli Studi di Roma La Sapienza
Università degli Studi di Roma La Sapienza Architettura degli elaboratori II Introduzione ai concetti ed al simulatore SPIM Andrea Sterbini e Franco Liberati Tratto da dispense di Alberto Montresor, Riccardo
Linguaggio Assembler MIPS
Linguaggio Assembler MIPS Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella [email protected] Architettura MIPS Architettura RISC sviluppata
Assembly III SPIM: un ambiente di simulazione MIPS
Architettura degli Elaboratori e delle Reti Lezione 13 Assembly III SPIM: un ambiente di simulazione MIPS Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi
Assembly. Motivazioni. Programmazione Assembly
Assembly Programmazione in linguaggio macchina (o meglio in assembly): programmare utilizzando istruzioni direttamente eseguibili dal processore. Questa parte del corsi si accompagna a lezioni in laboratorio:
Strutture di controllo del flusso di esecuzione in assembler. MC68000: Status Register
Corso di Calcolatori Elettronici I A.A. 2010-2011 Strutture di controllo del flusso di esecuzione in assembler Lezione 25 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di
Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini
[http://www.di.univaq.it/muccini/labarch] Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a. 2006-2007 Docente: H. Muccini Lecture 12: - Numeri con segno -Somma e sottrazione
Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche
3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni
Elementi base per la realizzazione dell unità di calcolo
Elementi base per la realizzazione dell unità di calcolo Memoria istruzioni elemento di stato dove le istruzioni vengono memorizzate e recuperate tramite un indirizzo. ind. istruzione Memoria istruzioni
Esercitazione di Calcolatori Elettronici Ing. Battista Biggio. Corso di Laurea in Ingegneria Elettronica. Capitolo 5 Linguaggio Assembly
Esercitazione di Calcolatori Elettronici Ing. Battista Biggio Corso di Laurea in Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Richiami: v[i] e &v[i] v[i] è il valore dell elemento i nel vettore
Istruzioni MIPS per floating point
Istruzioni MIPS per floating point Architetture dei Calcolatori (lettere A-I) Coprocessore per floating point L architettura MIPS ha un coprocessore (indicato con il numero 1) che opera sui numeri in virgola
Implementazione semplificata
Il processore 168 Implementazione semplificata Copre un sottoinsieme limitato di istruzioni rappresentative dell'isa MIPS aritmetiche/logiche: add, sub, and, or, slt accesso alla memoria: lw, sw trasferimento
Il simulatore SPIM SPIM
Il simulatore SPIM Architetture dei Calcolatori (lettere A-I) SPIM SPIM: un simulatore per eseguire programmi assembler scritti per processori MIPS32 Download e materiale relativo alla pagina Web http://www.cs.wisc.edu/~larus/spim.html
Il processore: unità di controllo
Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune
Esercitazione n. 3. Dott. Salvatore Pontarelli
Esercitazione n. 3 Dott. Salvatore Pontarelli Struttura di un modulo Assembly Assembly è il linguaggio che l ARM assembler (armasm) legge per produrre il codice oggetto. può essere: ARM assembly language
Linguaggio macchina e linguaggio assembly
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Università degli Studi di Udine Linguaggio macchina e linguaggio assembly Formato delle istruzioni 15 8 7 0 gruppo modo di indirizzamento codice dell
Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni
Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da
Lecture 2: Prime Istruzioni
[http://www.di.univaq.it/muccini/labarch] Modulo di Laboratorio di Architettura degli Elaboratori Corso di Architettura degli Elaboratori con Laboratorio Docente: H. Muccini Lecture 2: Prime Istruzioni
Assembler MIPS R2000/3000
TITLE Assembler MIPS R2000/3000 Alberto Montresor Programma delle lezioni! Introduzione ai concetti di assembler, compilatore, linker, programma eseguibile! Introduzione all assembly Sintassi del linguaggio
ARM: stack e subroutine
ARM: stack e subroutine 05.d Le istruzioni di accesso allo stack L istruzione di chiamata a subroutine Gestione degli stack frame Istruzione di store multiplo (STM Le istruzioni LDR e STR operano su parole
