Il linguaggio assembly
|
|
- Pasquale Perri
- 5 anni fa
- Visualizzazioni
Transcript
1 Il linguaggio assembly Strutture di controllo P.H. cap Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Le strutture di controllo Istruzioni di salto if then do... while while for switch Pseudoistruzioni 2 1
2 Le strutture di controllo Queste istruzioni alterano l'ordine di esecuzione delle istruzioni: La prossima istruzione da eseguire non è l'istruzione successiva all'istruzione corrente Permettono di eseguire cicli e condizioni In assembly le strutture di controllo sono molto semplici e primitive 3 Istruzioni di salto condizionato Istruzioni di salto: viene caricato un nuovo indirizzo nel contatore di programma (PC) ( invece dell'indirizzo dell istruzione seguente) Istruzioni di salto condizionato (conditional branch): il salto viene eseguito solo se una certa condizione risulta soddisfatta Esempi: beq (branch on equal) e bne (branch on not equal) beq r1, r2, L1 # go to L1 if (r1 == r2) bne r1, r2, L1 # go to L1 if (r1!= r2) 4 2
3 Istruzioni di salto incondizionato Istruzioni di salto incondizionato ( unconditional jump): il salto viene sempre eseguito. Esempi: j (jump) e jr (jump register) e jal (jump and link) j L1 # go to L1 jr $ra # go to add. contained in $ra jal L1 # go to L1. Save add. of next # instruction in reg. $ra 5 Esempio: do while (1) Codice C o Java: do { g = g + A[i]; i = i + j; } while (i!= h) Riformulata con "goto" Loop: g = g + A[i]; i = i + j; if (i!= h) goto Loop; 6 3
4 Esempio: do while (2) Codice MIPS: g in in $s1 $s1 h in in $s2 $s2 addr.a in in $s6 $s6 i i in in $s3 $s3 j j in in $s4 $s4 Loop: sll $t1, $s3, 2 # $t1 <- 4 * i add $t1, $t1, $s6 # $t1 <- addr. of A[i] lw $t0, 0($t1) # $t0 <- A[i] add $s1, $s1, $t0 # g <- g + A[i] add $s3, $s3, $s4 # i <- i + j bne $s3, $s2, Loop # go to Loop if i h 7 if... then Codice C o Java: if (i == j) f=g+h; if if (condition) clausola-1 f in in $s0 $s0 g in in $s1 $s1 if if (( NOTcondition )) goto goto Lendif; h in in $s2 $s2 clausola-1; i i in in $s3 $s3 Lendif: j j in in $s4 $s4 Codice MIPS: bne $s3, $s4, Lendif # go to Lendif if i j add $s0, $s1, $s2 # f=g+h (saltata if i j) Lendif: 8 4
5 if... then... else (1 a versione) Codice C o Java: if (i==j) f=g+h; else f=g-h; Codice MIPS: if if (condition) clausola-1 else else clausola-2 if if (NOTcondition) goto goto Lelse; clausola-1; go go to tolendif; Lelse: clausola-2; Lendif: bne $s3, $s4, Else # if i j go to Else add $s0, $s1, $s2 # f=g+h (skipped if i j) j Endif # go to Endif Else: sub $s0, $s1, $s2 # f=g-h (skipped if i = j) Endif: 9 if... then... else (2 a versione) Codice C o Java: if (i==j) f=g+h; else f=g-h; Codice MIPS: beq $s3,$s4,true sub $s0,$s1,$s2 j Endif True: add $s0,$s1,$s2 Endif: if if (condition) clausola-1 else else clausola-2 if if (condition) goto goto Ltrue; clausola-2; go go to tolendif; Ltrue: clausola-1; Lendif: # branch i==j # f=g-h(false) # go to Endif # f=g+h (true) 10 5
6 while Codice C: i while (A[i] == k) i in in $s3 $s3 j i = i + j; j in in $s4 $s4 k in in $s5 $s5 addr.a in in $s6 Codice MIPS: $s6 Loop: sll $t1, $s3, 2 # $t1 4 * i add $t1, $t1, $s6 # $t1 addr. of A[i] lw $t0, 0($t1) # $t0 A[i] bne $t0, $s5, Exit # go to Exit if A[i] k Exit: add $s3, $s3, $s4 j Loop # i i + j # go to Loop 11 Registro $zero Spesso la verifica di uguaglianza richiede il confronto con il valore 0, per rendere più veloce il confronto, in MIPS il registro $zero contiene sempre il valore 0 Altro tipo d uso di $zero: g = h; // (in C) g in in $s1 $s1 h in in $s2 $s2 add $s1, $s2, $zero # $s1 $s2 pseudoistruzione move $s1, $s2 # $s1 $s2 12 6
7 Confronto su minore/maggiore Spesso è utile condizionare l'esecuzione di una istruzione al fatto che una variabile sia minore (maggiore) di una altra: slt $t0, $s3, $s4 # set on less than se $s3 < $s4 assegna a $t0 il valore 1 (vero) altrimenti assegna a $t0 il valore 0 (falso) Con slt, beq e bne si possono implementare tutti i test sui valori di due variabili (==,!=, <, <=, >, >=) 13 Esempio (if) if (i < j) k = i + j; else k = i - j; i i in in $s3 $s3 j j in in $s4 $s4 k in in $s5 $s5 slt $t0, $s3, $s4 # $t0=1 se(i<j) beq $t0, $zero, Else # goto se NOT(i<j) add $s5, $s3, $s4 # k = i + j; (i<j) j Exit Else: sub $s5, $s3, $s4 # k = i - j; (i>=j) Exit: 14 7
8 for (1) Codice C: for for (i=0; i<n; i++) { //CORPO DEL DEL CICLO } Riformulata con "goto" i = 0; for: if (i >= n) goto endfor; //CORPO DEL CICLO i++; goto for; endfor: 15 for (2) i = 0; for: if (i >= n) goto endfor; //CORPO DEL CICLO i++; i goto for; i in in $s0 $s0 n endfor: in in $s1 $s1 move $s0, $zero # i=0 for: slt $t0, $s0, $s1 # $t0=0 se i >= n beq $t0, $zero, endfor # esce se i >= n # CORPO DEL CICLO addi $s0, $s0, 1 # i++ j for endfor: # istruz. succ. 16 8
9 switch Può essere implementata mediante una serie di if-then-else Alternativa: uso di una jump address table cioè di una tabella che contiene una serie di indirizzi di istruzioni alternative switch(k) { case 0: f = i + j; break; case 1: f = g + h; break case 2: f = g - h; break; case 3: f = i - j; break; } 17 Switch (if.. elseif ) if(k==0) f=i+j; else if(k==1) f=g+h; else if(k==2) f=g h; bne $s5,$0,l1 # branch k!=0 else if(k==3) f=i j; add $s0,$s3,$s4 # k==0 so f=i+j j Exit # end of case so Exit f in in $s0 $s0 L1: addi $t0,$s5,-1 # $t0=k-1 g in in $s1 $s1 bne $t0,$0,l2 # branch k!=1 h in in $s2 $s2 add $s0,$s1,$s2 # k==1 so f=g+h i i in in $s3 $s3 j Exit # end of case so Exit j j in in $s4 $s4 L2: addi $t0,$s5,-2 # $t0=k-2 k in in $s5 $s5 bne $t0,$0,l3 # branch k!=2 sub $s0,$s1,$s2 # k==2 so f=g-h j Exit # end of case so Exit L3: addi $t0,$s5,-3 # $t0=k-3 bne $t0,$0,exit # branch k!=3 sub $s0,$s3,$s4 # k==3 so f=i-j Exit: 18 9
10 Argomenti Le strutture di controllo Istruzioni di salto if then do... while while switch Pseudoistruzioni 19 Pseudoistruzioni Per semplificare la programmazione, MIPS fornisce un insieme di pseudoistruzioni Le pseudoistruzioni sono un modo compatto ed intuitivo di specificare un insieme di istruzioni Hanno un corrispondenza 1 a n con le istruzioni dell'isa La traduzione della pseudoistruzione nelle istruzioni equivalenti è attuata automaticamente dall'assemblatore 20 10
11 Esempio pseudo istruzioni move $t0, $t1 add $t0, $zero, $t1 mul $s0, $t1, $t2 mult $t1, $t2 mflo $s0 div $s0, $t1, $t2 div $t1, $t2 mflo $s0 21 load immediate per inizializzare un registro con una costante (piccola) li $s0, 16 li $t2, 0 # azzera il contenuto di $t
12 Pseudo istruzione load address la $t0, jtab la $s3, vet la $t4, vet($s5) se $s5 = 12 = 3*4 $t4 = addr. vet[3] $S3 + 0 $S3 + 4 $S3 + 8 $S vet[0] vet[1] vet[2] vet[3] Attenzione!!! lw $t4, vet($s5) $t4 = contenuto di vet[3] 23 Load address vs load word Quando utilizzare load address? Quando vogliamo caricare in un registro l'indirizzo di una particolare zona di memoria Questo registro può essere utilizzato in seguito come indice per leggere il contenuto di byte consecutivi in memoria Esempio: move $s2, $zero # azzera somma ($s2) la $t0, vet # Carica l'indirizzo di vet loop: lw $t1, ($t0) # Carica in $t1 il contenuto della # parola indirizzata da $t0 add $s2, $s2, $t1 # Fai la sommatoria addi $t0, $t0, 4 # Incrementa $t0 di 4 byte bne $t1, $zero, loop #Continua finché non trova
13 Branch vari (pseudoistruzioni) bge rs, rt, target Branch to instruction at target if rs >= rt bgt rs, rt, target Branch to instruction at target if rs > rt ble rs, rt, target Branch to instruction at target if rs <= rt blt rs, rt, target Branch to instruction at target if rs < rt es. blt $s1, $s2, label equiv. slt $at, $s1, $s2 bne $at, $zero, label es. ble $s1, $s2, label equiv. slt $at, $s2, $s1 #$at = 1 se $s2<$s1 beq $at, $zero, label #branch se $s1<=$s2 25 Branch vari beq rs, rt, target Branch to instruction at target if rs = rt bne rs, rt, target Branch to instruction at target if rs!= rt bgez rs, target Branch to instruction at target if rs >= 0 bgtz rs, target Branch to instruction at target if rs > 0 blez rs, target Branch to instruction at target if rs <= 0 bltz rs, target Branch to instruction at target if rs < 0 beqz rs, target Branch to instruction at target if rs = 0 bnez rs, target Branch to instruction at target if rs!=
14 Branch vari bge rs, rt, target Branch to instruction at target if rs >= rt bgeu rs, rt, target Branch to instruction at target if rs >= rt (unsigned) bgt rs, rt, target Branch to instruction at target if rs > rt bgtu rs, rt, target Branch to instruction at target if rs > rt (unsigned) ble rs, rt, target Branch to instruction at target if rs <= rt bleu rs, rt, target Branch to instruction at target if rs <= rt (unsigned) blt rs, rt, target Branch to instruction at target if rs < rt bltu rs, rt, target Branch to instruction at target if rs < rt (unsigned) 27 for (versione 2, con bge) Codice C o Java: for for (i=0; i<n; i++) { i //CORPO DEL DEL CICLO i in in $s0 $s0 n } in in $s1 $s1 Codice MIPS move $s0, $zero # i=0 for: bge $s0, $s1, endfor # esce se i >= n # CORPO DEL CICLO addi $s0, $s0, 1 # i++ j for endfor: # istruz. succ
Il linguaggio assembly
Il linguaggio assembly Strutture di controllo P.H. cap. 2.6 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Le strutture di controllo Istruzioni di salto if then do...
DettagliIl Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti
Il Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti Prof. Alberto Borghese Ing. Iuri Frosio Dipartimento di Scienze dell Informazione borghese,frosio@dsi.unimi.it Università degli Studi
DettagliLezione 12. Assembly II. Set di Istruzioni MIPS Strutture di controllo in Assembly
Architettura degli Elaboratori e delle Reti Lezione 12 Assembly II Set di Istruzioni MIPS Strutture di controllo in Assembly Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università
DettagliControllo di flusso. Università degli Studi di Milano Corso di Laurea in Informatica, A.A Homepage del corso
Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2017-2018 Controllo di flusso Homepage del corso Turno A Nicola Basilico Dipartimento di Informatica Via Comelico 39/41-20135 Milano
DettagliLezione 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
DettagliControllo di flusso. Università degli Studi di Milano Corso di Laurea in Informatica, A.A
Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2018-2019 Controllo di flusso Turno A Nicola Basilico Dipartimento di Informatica Via Comelico 39/41-20135 Milano (MI) Ufficio S242
DettagliLe 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):
Dettagli21 March : ESERCITAZIONE 01 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA. I. Frosio
02: ESERCITAZIONE 01 21 March 2011 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA I. Frosio 1 SOMMARIO Organizzazione della memoria Istruzioni di accesso alla memoria Vettori Istruzioni
DettagliLezione 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
DettagliArchitettura degli elaboratori
Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori Programmazione in assembly MIPS Marco Tarini Dipartimento di Scienze Teoriche e Applicate
DettagliRiassunto. 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
DettagliIl Linguaggio Assembly: Gestione della memoria e controllo
Il Linguaggio Assembly: Gestione della memoria e controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/42 Sommario L organizzazione
Dettagli5 April LABORATORIO 03 CONTROLLO DEL FLUSSO DI UN PROGRAMMA JUMP ADDRESS TABLE. I. Frosio
5 April 2012 04 LABORATORIO 03 CONTROLLO DEL FLUSSO DI UN PROGRAMMA JUMP ADDRESS TABLE I. Frosio 1 SOMMARIO If... Then... If... Then... Else... For... Break... While... Do Do... While Switch (jump address
DettagliLezione 18 Il Set di Istruzioni (4)
Lezione 18 Il Set di Istruzioni (4) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Un richiamo su: Operazioni aritmetiche (add
DettagliAddendum: istruzioni linguaggio macchina. Università di Bergamo - corso di Calcolatori Elettronici 1
Addendum: istruzioni linguaggio macchina Università di Bergamo - corso di Calcolatori Elettronici 1 Control Loop C code: L1: g = g + A[i]; i = i + j; if (i!= h) goto L1; MIPS code: L1: add $t1, $s3, $s3
DettagliUn altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando
Un altro tipo di indirizzamento L insieme delle istruzioni (3) Architetture dei Calcolatori (lettere A-I) Tipi di indirizzamento visti finora Indirizzamento di un registro Indirizzamento con registro base
DettagliArchitettura degli Elaboratori Lez. 3 ASM: Strutture di controllo. Prof. Andrea Sterbini
Architettura degli Elaboratori Lez. 3 ASM: Strutture di controllo Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Argomenti della lezione - Il simulatore MARS - Le strutture di controllo - Esempi
DettagliIl 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
DettagliIstruzioni 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:
Dettaglislt $t1,$t2,$t3 if ($t2<$t3) $t1=1; Confronto tra registri slti $t1,$t2,100 if ($t2<100)$t1=1; Cfr. registro-costante
Istruzioni di confronto Istruzione Significato slt $t1,$t2,$t3 if ($t2
DettagliIstruzioni di controllo del flusso
Istruzioni di controllo del flusso Il flusso di esecuzione è normalmente sequenziale Le istruzioni di controllo cambiano la prossima istruzione da eseguire Istruzioni di salto condizionato branch if equal
DettagliUniversità 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
DettagliIl 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
DettagliManualino minimale MIPS
Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Manualino minimale MIPS Marco Tarini Operazioni aritmetiche Nome Comando completo Esempio Sintassi (es) Significato Semantica
DettagliArchitettura 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
DettagliCorso 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
DettagliInformazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione
Informazioni varie Lezione 18 Il Set di Istruzioni (5) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno La lezione di martedì 20 maggio (9-12) non si tiene
DettagliLezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano
Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano L16-20 1/29 Linguaggio
DettagliLezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano
Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano L16-20 1/29 Linguaggio
DettagliIstruzioni 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
DettagliArchitettura degli Elaboratori
Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Andrea Torsello, Marta Simeoni " Architettura degli Elaboratori 1 1 Istruzioni
DettagliFetch Decode Execute Program Counter controllare esegue prossima
Stored Program Istruzioni sono stringhe di bit Programmi: sequenze di istruzioni Programmi (come i dati) memorizzati in memoria La CPU legge le istruzioni dalla memoria (come i dati) Ciclo macchina (ciclo
DettagliLinguaggio 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
DettagliIl 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:
DettagliMIPS! !
MIPS! Sono descritte solamente le istruzioni di MIPS32, le pseudo-istruzioni, System Calls e direttive del linguaggio assembly che sono maggiormente usate.! MIPS è big-endian, cioè, lʼindirizzo di una
DettagliLinguaggio 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
DettagliL insieme delle istruzioni del processore MIPS. Corso Calcolatori Elettronici presso POLITECNICO DI MILANO
L insieme delle istruzioni del processore MIPS Corso Calcolatori Elettronici presso POLITECNICO DI MILANO Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione email:
DettagliStringhe di caratteri
Stringhe di caratteri PH 2.8 1 Gestione dei caratteri Ogni carattere è rappresentato univocamente mediante un codice numerico rappresentabile usando un byte (codice ASCII) MIPS fornisce le istruzioni lb
DettagliLinguaggio 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
DettagliModifiche di orario. Lezione 19 Il Set di Istruzioni (6) Dove siamo nel corso. Un quadro della situazione
Modifiche di orario Lezione 19 Il Set di Istruzioni (6) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Al posto della lezione di domani giovedì 22/5 (12-1)
DettagliIl 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
DettagliIl linguaggio macchina
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/33 Linguaggio
DettagliARCHITETTURE DEI CALCOLATORI (canale A-I) - Prima prova in itinere del 16/6/2003 Compito tipo A
ARCHITETTURE DEI CALCOLATORI (canale A-I) - Prima prova in itinere del 16/6/2003 Compito tipo A *** indicano le affermazioni corrette. 1. Con riferimento alle architetture dei calcolatori ed alla valutazione
DettagliISA (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
DettagliUn quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto
Un quadro della situazione Lezione 15 Il Set di Istruzioni (3) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri
DettagliUniversità degli Studi di Cassino
Corso di Costrutti di controllo Strutture dati Anno Accademico 2007/2008 Francesco Tortorella Realizzazione delle strutture di controllo in Assembly In Assembly non esistono le strutture potenti offerte
DettagliCalcolatori Elettronici Prof. Fabio Roli. Linguaggio Assembly. Capitolo 5. Corso di Laurea di Ingegneria Elettronica
Calcolatori Elettronici Prof. Fabio Roli Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto
DettagliUniversità degli Studi di Cassino e del Lazio Meridionale
di Cassino e del Lazio Meridionale Corso di Realizzazione in Assembly di costrutti di controllo di flusso HLL e di strutture dati Anno Accademico Francesco Tortorella Realizzazione delle strutture di controllo
DettagliIl linguaggio Assembly. Architettura degli Elaboratori e delle Reti Turno I
Il linguaggio Assembly Architettura degli Elaboratori e delle Reti Turno I Alberto Borghese Università degli Studi di Milano Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it 1 Linguaggio
DettagliLezione 17 Il Set di Istruzioni (3)
Lezione 17 Il Set di Istruzioni (3) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Un richiamo su: Operazioni aritmetiche (add
DettagliLaboratorio 6 - MIPS 2
Laboratorio 6 - MIPS 2 1 Laboratorio printvet scambia down-heap esercizi proposti heap_sort 2 1 down-heap down-heap 14 heap 37 heap 40 20 25 35 30 15 10 12 17 27 3 down-heap 14 40 37 40 14 20 25 35 30
DettagliLinguaggio 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
DettagliAutilia Vitiello Dip. di Informatica ed Applicazioni Stecca 7, 2 piano, stanza 12
Autilia Vitiello Dip. di Informatica ed Applicazioni Stecca 7, 2 piano, stanza 12 vitiello@dia.unisa.it http://www.dia.unisa.it/~avitiello Presentazione Corso di Architettura matricole congruo a 0: prof.
DettagliISA (Instruction Set Architecture) della CPU MIPS32
Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS32 Prof. Federico Pedersini Dipartimento di Informatica Uniersità degli Studi di Milano L16-20 1 Linguaggio macchina
DettagliLinguaggio 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
DettagliEsercitazione 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
DettagliRappresentazione dell informazione
Rappresentazione dell informazione Codifica dei numeri Rappresentazioni in base 2, 8, 10 e 16 Rappresentazioni M+S, C1 e C2 Algoritmi di conversione di base Algoritmi di somma, moltiplicazione e divisione
DettagliRichiami: v[i] e &v[i] Organizzazione della memoria. Organizzazione della memoria. Esercitazione di Calcolatori Elettronici Ing. Gian Luca Marcialis
Esercitazione di Ing. Gian Luca 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 v; &v[i] è il suo indirizzo.
DettagliRicevimento inviate una e mail a con oggetto [Tutorato Arch] o [Tutorato Prog1]
Presentazione LE ISTRUZIONI: IL LINGUAGGIO DEI CALCOLATORI Sarro Federica, Phd Student Facoltà di Scienze MM FF NN Università degli Studi di Salerno fsarro@unisa.itit http://www.dmi.unisa.it/people/sarro/www/
Dettagli31!30!29!28!27!26!25!24!23!22!21!20!19!18!17!16!15!14!13!12!11!10! 9! 8! 7! 6! 5! 4! 3! 2! 1! 0! !
ESERCIZIO 1A Si consideri il seguente programma (accanto ad ogni istruzione è riportata la rappresentazione in binario): sw $s0, 40($s1) 101011 10001 10000 0000000000101000 lw $t0, 40($s1) 100011 10001
DettagliIl linguaggio Assembly del MIPS
Il linguaggio Assembly del MIPS Linguaggio macchina Linguaggio definito da un insieme di istruzioni, codificate come stringhe di bit, che il processore può interpretare ed eseguire direttamente Linguaggio
DettagliLaboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini
[http://www.di.univaq.it/muccini/labarch] Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a. 2005-2006 Docente: H. Muccini Lecture 09: - Modi di indirizzamento del MIPS
DettagliMIPS Instruction Set 1
Architettura degli Elaboratori e Laboratorio 20 marzo 2012 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
DettagliEsame di Architetture Canale AL Prof. Sterbini 8/7/13 Compito A
Esame di Architetture Canale AL Prof. Sterbini 8/7/13 Compito A Cognome e Nome: Matricola: Parte 1 (per chi non ha superato l'esonero 1 ora) Esercizio 1A. Si ha il dubbio che in una partita di CPU a ciclo
DettagliArchitettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico
Architettura degli Elaboratori e Laboratorio Matteo Manzali Università degli Studi di Ferrara Anno Accademico 2016-2017 Rappresentazione dei caratteri Anche i caratteri, come i numeri, sono rappresentati
DettagliEsame di Architetture Canale AL Prof. Sterbini 17/6/13 Compito A
Esame di Architetture Canale AL Prof. Sterbini 17/6/13 Compito A Parte 1 (per chi non ha superato l'esonero) Esercizio 1A. Si ha il dubbio che in una partita di CPU a ciclo di clock singolo (vedi sul retro)
DettagliRichiami: v[i] e &v[i] Organizzazione della memoria. Esercizio 1. Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis
Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria Biomedica Corso di Laurea in Ingegneria Elettrica, Elettronica ed Informatica Capitolo 5 Linguaggio Assembly
DettagliArchitettura degli. Assemblatore Nomenclatura MARS. Dott. Franco Liberati
Architettura degli Elaboratori Assemblatore Nomenclatura MARS Dott. Franco Liberati Assemblatore Introduzione Argomenti della lezione Nomenclatura Registri Istruzioni e pseudoistruzioni Architettura degli
DettagliCorso di Architettura (Prof. Scarano) 10/05/2002
Lezione 0 Il Set di Istruzioni (6) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Le procedure Prima della chiamata di una procedura In ogni linguaggio di
Dettaglip = 7. E = bias + p = = E = s e m
255 1 0.125 0 127 1 0.25 0 63 1 0.5 1 31 1 15 1 7 1 3 1 1 1. Rappresentazione binaria: 11111111.001 2. Scorrere la virgola: 3. Bit di segno: Numero positivo 0. 4. Esponente: 5. Mantissa: 1111111001 (ottenuta
DettagliLa struttura delle istruzioni elementari: il linguaggio Macchina. Sommario
La struttura delle istruzioni elementari: il linguaggio Macchina Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento sul
Dettagli1. Schema generale di traduzione di un programma. Lo schema generale di un programma puo' essere cosi schematizzato:
1. Schema generale di traduzione di un programma Lo schema generale di un programma puo' essere cosi schematizzato: Inizializzazione delle variabili Input dei dati Elaborazione Output dei risultati Chiusura
DettagliModi di indirizzamento. Indicano come accedere all operando di interesse dell istruzione. Il MIPS ha 5 modi di indirizzamento:
Modi di indirizzamento Indicano come accedere all operando di interesse dell istruzione. Il MIPS ha 5 modi di indirizzamento: immediato (immediate) slti $1,$2,100 registro (register) slti $1,$2,100 base/spiazzamento
DettagliAssembler MIPS 32 Assembly I
TITLE Assembler MIPS 32 Assembly I Riccardo Solmi 1 Indice degli argomenti Le istruzioni assembly MIPS Categorie di istruzioni assembly Istruzioni di caricamento e salvataggio Gestione del segno Ordine
DettagliUniversità degli Studi di Cassino
Corso di Indirizzamento Pseudo istruzioni Anno Accademico Francesco Tortorella Modi di indirizzamento Indicano come accedere all operando di interesse dell istruzione. Il MIPS ha 5 modi di indirizzamento:
DettagliMIPS Instruction Set 1
Laboratorio di Architettura 8 aprile 2011 1 SPIM 2 Architettura Mips 3 Esercitazione SPIM emulatore software architettura MIPS R2000/R3000 debugger + servizi base di sistema operativo realizzazione/verifica
DettagliL unità di controllo di CPU a singolo ciclo
L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D,
Dettagli1) Un calcolatore con processore R3000 avente frequenza di clock pari a 2GHz esegue il seguente programma:
(versione riveduta da errori di stampa) MATRICOLA COGNOME NOME 1) Un calcolatore con processore R3000 avente frequenza di clock pari a 2GHz esegue il seguente programma:.text addi $12,$0,2 addi $10,$0,288
DettagliISA e linguaggio assembler
ISA e linguaggio assembler Prof. Alberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1, D2. 1/39 Introduzione
DettagliArchitettura 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
DettagliRichiami 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
DettagliIstruzioni e linguaggio macchina
Istruzioni e linguaggio macchina I linguaggi macchina sono composti da istruzioni macchina, codificate in binario, con formato ben definito processori diversi hanno linguaggi macchina simili scopo: massimizzare
DettagliArchitettura degli Elaboratori B Introduzione al corso
Architettura degli Elaboratori B Introduzione al corso Salvatore Orlando http://www.dsi.unive.it/~arcb Arch. Elab. - S. Orlando 1 Componenti di un calcolatore convenzionale Studieremo il progetto e le
DettagliLaboratorio di Architettura
Laboratorio di Architettura Lezione 5 Andrea Torsello Dipartimento di Informatica Università Ca Foscari di Venezia p.1/49 La scorsa lezione Basi della compilazione da alto livello a basso livello Rappresentazione
DettagliProgrammi in Assembly
Programmi in Assembly Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/23 Esempio Numeri positivi # Programma che copia tramite
DettagliArchitettura del processore MIPS
Architettura del processore IPS Prof. Cristina Silvano Dipartimento di Elettronica e Informazione Politecnico di ilano email: : silvano@elet elet.polimi.itit Sommario Instruction Set semplificato Esecuzione
DettagliIl linguaggio assembly
Il linguaggio assembly Direttive Chiamate di sistema (system call) Esempi 1 Direttive Le direttive (data layout directives) danno delle indicazioni all'assemblatore sul contenuto di un file (istruzioni,
DettagliUn quadro della situazione. Lezione 18 Il Set di Istruzioni (6) Dove siamo nel corso. Le operazioni e gli operandi del MIPS. Cosa abbiamo fatto
Un quadro della situazione Lezione 18 Il Set di Istruzioni (6) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Memoria Principale Sistema di
DettagliArchitetture dei Calcolatori
Architetture dei Calcolatori Lezione 11 -- 10/12/2011 Procedure Emiliano Casalicchio emiliano.casalicchio@uniroma2.it Fattoriale: risparmiamo sull uso dei registri q Rispetto alla soluzione precedente
DettagliCorso di Laurea in Ingegneria Biomedica Corso di Laurea in Ingegneria Elettrica, Elettronica ed Informatica
Modulo Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria Biomedica Corso di Laurea in Ingegneria Elettrica, Elettronica ed Informatica Capitolo 5 Linguaggio Assembly Fonti
DettagliLinguaggio macchina e register file
Linguaggio macchina e register file Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4,
DettagliEsame di Architetture Canale MZ Prof. Sterbini 21/7/14
Esame di Architetture Canale MZ Prof. Sterbini 21/7/14 Cognome e Nome: Matricola: Parte 1 (per chi non ha superato l'esonero 1 ora) Esercizio 1 (14 punti). In una partita di CPU a ciclo di clock singolo
DettagliCalcolatori Elettronici
Calcolatori Elettronici Il Set di Istruzioni MIPS Francesco Lo Presti Rielaborate da Salvatore Tucci Set Istruzioni 1 La programmazione dei calcolatori Linguaggio macchina (codifica con numeri binari)
DettagliSommario 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
DettagliRealizzazione delle strutture di controllo in Assembly
Realizzazione delle strutture di controllo in Assembly In Assembly non esistono le strutture potenti offerte da un HLL, ma è possibile renderle con le istruzioni di controllo Assembly Strutture di controllo
DettagliEsame di Architetture Canale AL Prof. Sterbini 8/7/13 Compito A
Esame di Architetture Canale AL Prof. Sterbini 8/7/13 Compito A Esercizio 1A. Si ha il dubbio che in una partita di CPU a ciclo di clock singolo (vedi sul retro) la Control Unit sia rotta, producendo il
DettagliIl 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
Dettagli