Architettura degli. Istruzioni MARS. Dott. Franco Liberati

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Architettura degli. Istruzioni MARS. Dott. Franco Liberati"

Transcript

1 Architettura degli Elaboratori Dott. Franco Liberati

2 Istruzioni Spostamento o movimento Argomenti della lezione Logico Aritmetiche Salto Condizionato incondizionato a sub-routine (interruzioni software:trap) Istruzioni di sistema

3 Architettura degli Elaboratori Istruzioni generalità Dott. Franco Liberati

4 Generalità Le istruzioni del linguaggio assembly possono essere divise nelle seguenti categorie: Istruzioni Load and Store Spostano dati tra la memoria e i registri generali del processore (i valori non sono modificati, ma solo spostati) Istruzioni Load Immediate Caricano, nei registri, valori costanti Istruzioni Data Movement Spostano dati tra i registri del processore Istruzioni aritmetico/logiche Effettuano operazioni aritmetico, logiche o di scorrimento sui registri del processore (il valore risultante modifica i condition code della ALU) Istruzioni di confronto Effettuano il confronto tra i valori contenuti nei registri Istruzioni di salto condizionato Spostano l esecuzione da un punto ad un altro di un programma in presenza di certe condizioni Istruzioni di salto non condizionato Spostano l esecuzione da un punto ad un altro di un programma Istruzioni di sistema o comando Influenzano lo svolgimento del programma (HALT, NOP,BREAK, TRAP )

5 Architettura degli Elaboratori Istruzioni di spostamento

6 SPOSTAMENTO: LOAD/STORE L'architettura di MIPS è di tipo Load-and-Store In pratica, la maggioranza delle istruzioni di MIPS operano utilizzando i registri interni al processore e non direttamente con i valori presenti nelle celle di memoria Esempio add $t0, $t1, $t2 #Somma $t1+$t2 e mette il risultato in $t0 Per questo motivo LOAD: il dato è prelevato da una cella di memoria e immesso in un registro STORE: il valore di un registro è salvato in una cella di memoria

7 SPOSTAMENTO: LOAD/STORE lb rdest, address lbu rdest, address lh rdest, address lhu rdest, address lwrdest, address la rdest, address sbrsource, address shrsource, address swrsource, address Carica un byte sito all indirizzo address nel registro rdest Carica un unsigned-byte sito all indirizzo address nel registro rdest Carica un halfword sito all indirizzo address nel registro rdest Carica un unsigned-halfword sito all indirizzo address nel registro rdest Carica una word sita all indirizzo address nel registro rdest Carica un indirizzo address nel registro rdest Memorizza un byte all indirizzo address prelevandolo dal registro rsource Memorizza un halfword all indirizzo address prelevandolo dal registro rsource Memorizza una word all indirizzo address prelevandola dal registro rsource

8 SPOSTAMENTO: LOAD Indirizzo in memoria della variabile valore (262160) Contenuto ( ) lb rdest, address lh rdest, address lwrdest, address la rdest, address lb $t0,valore lh $t0,valore lw $t0,valore la $t0,valore

9 SPOSTAMENTO: STORE Registro Contenuto $t sbrsource, address sb $t0,variabile1 shrsource, address sh $t0,variabile2 swrsource, address sw $t0,variabile3 Indirizzo Contenuto variabile variabile variabile

10 SPOSTAMENTO: LOAD/STORE.text.globl main main: lb $t1, operanda #carica operando dalla memoria al registro lb $t2, operandb#carica operando dalla memoria al registro add $t0, $t1, $t2 #somma operandi sb $t0, risultato#sposta l operando in memoria.end data operanda:.byte 5 operandb:.byte 7 risultato:.byte 0 $t0 $t1 $t2 ALU

11 SPOSTAMENTO: LOAD SINGNED/UNSIGNED lb $t0, address Carica il byte indirizzato da address nel byte meno significativo del registro Il bit di segno viene esteso lbu$t0, address Carica il byte indirizzato da address nel byte meno significativo del registro Gli altri tre byte vengono posti a zero BBBBBBBB BBBBBBBB BBBBBBBB BVVVVVVV BVVVVVVV

12 SPOSTAMENTO: LOAD SINGNED/UNSIGNED lh$t0, address Carica 2 byte indirizzati da address nei 2 byte meno significativi del registro Il bit del segno viene esteso lhu$t0, address Carica i 2 byte indirizzati da address nei 2 byte meno significativi del registro Gli altri due byte vengono posti a zero BBBBBBBB BBBBBBBB BVVVVVVV VVVVVVVV BVVVVVVV VVVVVVVV

13 SPOSTAMENTO: LOAD SINGNED/UNSIGNED lw$t0, address Carica 4 byte indirizzati da address nel registro Non c è alcuna estensione del bit del segno BVVVVVVV VVVVVVVV VVVVVVVV VVVVVVVV

14 SPOSTAMENTO: LOAD SIGNED/UNSIGNED Valore lb $t0,valore lbu $t0,valore lh $t0,valore lhu $t0,valore lw $t0,valore

15 RAPPRESENTAZIONI DIPAROLE: ENDIAN Definizione di endianness: disposizione di una parola (word, 32 bit) nei byte di memoria Little Endian: memorizza prima la little end (ovvero i bit meno significativi) della word Big Endian: memorizza prima la big end (ovvero i bit più significativi) della word Terminologia ripresa da I viaggi di Gulliver di Jonathan Swift, in cui due fazioni sono in lotta per decidere se le uova sode devono essere aperte a partire dalla "little end" o dal "big end" dell'uovo NB: I processori x86 sono little-endian MIPS può essere little endian o big endian (L endianness di SPIM dipende dal sistema in cui viene eseguito, quindi in generale è little endian) Quando bisogna affrontare i problemi di endianness? Quando si "mischiano" operazioni su 8, 16 e 32 bit Se si utilizzano operazioni uniformi, non vi sono problemi di sorta

16 RAPPRESENTAZIONI DIPAROLE: ENDIAN Little Endian: lh $t0,value Big Endian: lh $t0,value

17 SPOSTAMENTO: ACQUISIZIONE DELL INDIRIZZO DI UNA VARIABILE L istruzione lw$t0, address carica il contenuto della word indirizzata dall etichetta address in memoria L istruzione la $t0, address carica l'indirizzo della word indirizzata dall etichetta address in memoria (utile quando si vuole caricare in un registro l indirizzo di una particolare zona di memoria (es.: una variabile)).text lw $t0,val la $t1,val In $t0 si trova il dato numerico 250 In $t1 si trova l indirizzo di memoria dove risiede il valore.data val:.byte 250 # (bin)FA(hex)

18 SPOSTAMENTO: ACQUISIZIONE DELL INDIRIZZO DI UNA VARIABILE L istruzione lw$t0, address carica il contenuto della word indirizzata dall etichetta address in memoria L istruzione la $t0, address carica l'indirizzo della word indirizzata dall etichetta address in memoria (utile quando si vuole caricare in un registro l indirizzo di una particolare zona di memoria (es.: una variabile)) 0x x x x $t0=0x x x x x $t0=0x

19 SPOSTAMENTO: CARICAMENTO DIRETTO DIUN VALORE Per caricare dei dati numerici nei registri si utilizzano le operazioni di load immediate Si evita di definire una valore in memoria il valore numerico è nella stessa istruzione Il valore numerico è anche detto IMMEDIATE VALUE Le istruzioni sono più lunghe Esempio li $t0, 234 #Mette nel registro $t0 il valore 234 li rdest, imm lui rdest, imm Muove il valore imm nel registro rdest Muove la halfwordimmnella parte più alta dell halfworddel registro rdest

20 SPOSTAMENTO TRA REGISTRI La maggioranza delle istruzioni di MIPS operano tramite i registri interni al processore Per spostare i valori tra registri si utilizzano le operazioni di data movement Esempio move $t0, $t1 #Copia il contenuto di $t1 in$t0 move rdest, rsource mfhi rdest mflo rdest mthi rsource mtlo rsource Muove il registro rsource nel registro rdest Muove il registro hi nel registro rdest Muove il registro lo nel registro rdest Muove il registro rsource nel registro hi Muove il registro rsource nel registro lo

21 ESEMPIO: SPOSTAMENTO Scambio dei valori contenuti in due registri Prima: $t0=5 e $t1=3 Dopo $t0=3 e $t1=5.text.globl main main: li $t0,5 li $t1,3 move $t2,$t1 move $t1,$t0 move $t0,$t2 xor $t2,$t2 li $v0,10 syscall SPOSTAMENTO.ASM #carico x #carico y #c=y #y=x #x=c #pulisco$t2

22 ESERCIO PROPOSTO Definiti due valori in memoria x,y scambiare la loro posizione.text.globl main SPOSTAMENTO2.ASM main: lw $t0,x #carico x lw $t1,y #carico y move $t2,$t1 #c=y move $t1,$t0 #y=x move $t0,$t2 #x=c xor $t2,$t2,$t2 #pulisco $t2 sw $t0,y sw $t1,x li $v0,10 syscall.data x :.word 5 y :.word 10

23 ESERCIO PROPOSTO Definiti due valori in memoria x,y scambiare la loro posizione.text.globl main main: lw $t0,x lw $t1,y sw$t1,x sw$t0,y li $v0,10 syscall.data x :.word 5 y :.word 10 SPOSTAMENTO2variante.ASM #carico x #carico y #caricoy in x #caricox in y

24 RELAZIONE CON I CONDITION CODE Codice C N Z W P LOAD X X X X X MOVE X X X X X STORE X X X X X

25 Architettura degli Elaboratori II Istruzioni logiche ed aritmetiche

26 ISTRUZIONI LOGICHE E ARITMETICHE: GENERALITÀ Gli elaboratori elettronici hanno come principale motivo di esistenza la possibilità di svolgere un gran numero di operazioni in tempi rapidissimi Esempio add $t2, $t0, $t1 #Somma il contenuto di $t1e $t0 e lo mette in $t2 xor $t2,$t2,$t2 #Inizializza il registro $t2 a zero NB: tipicamente le istruzioni aritmetiche operano sfruttando i registri. I registri vengono usati per tre motivi principali: Costruiti con ottima tecnologia Sono vicini alla CPU Consentono di trovare i dati su cui operare utilizzando pochi bit

27 ISTRUZIONI LOGICHE E ARITMETICHE: GENERALITÀ Gli elaboratori elettronici hanno come principale motivo di esistenza la possibilità di svolgere un gran numero di operazioni in tempi rapidissimi Esempio add $t2, $t0, $t1 #Somma il contenuto di $t1e $t0 e lo mette in $t2 xor $t2,$t2,$t2 #Inizializza il registro $t2 a zero NB: tipicamente le istruzioni aritmetiche operano sfruttando i registri. I registri vengono usati per tre motivi principali: Costruiti con ottima tecnologia Sono vicini alla CPU Consentono di trovare i dati su cui operare utilizzando pochi bit

28 ISTRUZIONI ARITMETICHE addrd, rs, rt addurd, rs, rt addird, rs, imm addiurd, rs, imm sub rd, rs, rt suburd, rs, rt negrd, rs negurd, rs absrd, rs rd = rs + rt (con overflow) rd = rs + rt (senza overflow) rd = rs + imm (con overflow) rd = rs + imm (senza overflow) rd = rs - rt (con overflow) rd = rs - rt (senza overflow) rd = - rs (con overflow) rd = - rs (senza overflow) rd = rs

29 ISTRUZIONI ARITMETICHE mult rs, rt multu rs, rt mulrd, rs, rt mulo rd, rs, rt mulourd, rs, rt div rs, rt divurs, rt div rd, rs, rt divu rd, rs, rt rem rd, rs, rt remu rd, rs, rt hi,lo = rs * rt (signed, overflow impossibile) hi,lo = rs * rt (unsigned, overflow impossibile) rd= rs* rt(senza overflow) rd= rs* rt(con overflow) rd= rs* rt(con overflow, unsigned)) hi,lo = resto e quoz. di rs/ rt(signedcon overflow) hi,lo = resto e quoz. di rs/ rt(unsigned, no overflow) rd= rs/ rt(signedcon overflow) rd= rs/ rt(unsigned) rd= resto di rs/ rt(signed) rd= resto di rs/ rt(unsigned)

30 ISTRUZIONI ARITMETICHE Overflow nella moltiplicazione x (-1) (-2) (+2)

31 ISTRUZIONI ARITMETICHE Overflow nella moltiplicazione x (+7) (+7) (+49)

32 ISTRUZIONI LOGICHE and rd, rs, rt andird, rs, imm or rd, rs, rt ori rd, rs, imm xor rd, rs, rt xori rd, rs, imm norrd, rs, rt not rd, rs rd = rs AND rt rd = rs AND imm rd= rsor rt rd= rsor imm rd= rsxor rt rd= rsxor imm rd = NOT (rs OR rt) rd= NOT rs

33 ISTRUZIONI LOGICHE- ARITMETICHE: CASI IMMEDIATE E UNSIGNED Versioni immediate (i) Le versioni immediate (i) delle istruzioni precedenti utilizzano un valore costante (risultato di un'espressione) al posto di uno degli operandi Non sempre è necessario specificare la i; l'assemblatore è in grado di riconoscere anche istruzioni. Esempio: add$t0, $t0, 1 Versioni unsigned(u) Le versioni unsigned delle istruzioni non gestiscono le problematiche relative all overflow Dettagli in seguito quando parleremo di eccezioni

34 ISTRUZIONI LOGICHE- ARITMETICHE Lo Shift (spostamento) perde i bit dalla parte della movimentazione; mentre è colmato con 0 nella direzione opposta Il Rotate (rotazione) mantiene i bit dalla parte della movimentazione riproponendo i bit spostati nella direzione opposta sllrd, rs, rt srl rd, rs, rt rolrd, rs, rt ror rd, rs, rt rd = rs è shiftato verso sinistra di rt mod 32 bits rd = rs s è shiftato verso destra di rt mod 32 bits rd= rsè ruotato verso sinistra di rtmod32 bits rd= rsè ruotato verso destra di rtmod32 bits Rotate inserisce da una parte i bit che escono dall altra

35 ISTRUZIONI LOGICHE- ARITMETICHE sll $t2, $t1,3 $t $t $t $t ror $t2, $t1,3 $t $t

36 ISTRUZIONI LOGICHE- ARITMETICHE: Esempio Realizzare un programma che in linguaggio SPIM prenda un valore residente in memoria (di tipo byte) e metta 0 o 1 se il numero è rispettivamente pari o dispari.text.globl main main: lb $t0,pippo li $t1,2 rem $t2,$t0,$t1 sb $t2,risb li $v0,10 syscall.data pippo:.byte 100 risb:.byte 0

37 ISTRUZIONI DI CONFRONTO Le istruzioni di confronto sono di solito usate dall assembler ( i programmatori usano direttamente le istruzioni di salto condizionato) sltrd, rs, rt slturd, rs, rt sltird, rs, imm sltiurd, rs, imm Setta il registro rd a1se rs < rt, 0 altrimenti (con overflow) Setta il registro rd a 1 se rs<rt, 0 altrimenti (no overflow) Setta registro rd a 1 se rs<imm, 0 altrimenti (con overflow) Setta registro rd a 1 se rs<imm, 0 altrimenti (no overflow) sle, sgt, sge, seq, sne Analoghe per testare <=, >, >=, = e <>

38 RELAZIONE CON I CONDITION CODE Codice C N Z W P ADD 1/0 1/0 1/0 1/0 1/0 CMP 1/0 1/0 1/0 1/0 1/0 NEG 1/0 1/0 1/0 1/0 1/0 SUB 1/0 1/0 1/0 1/0 1/0 AND 0 1/0 1/0 0 1/0 OR 0 1/0 1/0 0 1/0 XOR 0 1/0 1/0 0 1/0 NOT 0 1/0 1/0 0 1/0 SL 1/0 1/0 1/0 1/0 1/0 SR 1/0 1/0 1/0 1/0 1/0 ROL 1/ /0 ROR 1/ /0

39 ESEMPIO Si scriva un programma in linguaggio assembly che definito un valore intero in memoria riporti in $t0 l intero precedente, in $t1 il numero corrente e in $t2 il successivo PRESUC.ASM.text.globl main main:.data x :.word 5 lw $t1,x sub $t0,$t1,1 add $t2,$t1,1 li $v0,10 syscall #carico x #pre=x-1 #suc=x+1

40 ESEMPIO Si scriva un programma in linguaggio assembly che definiti due numeri in memoria x e y riporta la media (fra interi) in $t2 Es: x=5 y=8 media=(5+8)/2=6 MEDIA.ASM.text.globl main main:.data x :.word 5 y:.word 8 lw $t0,x lw $t1,y add $t2,$t0,$t1 div $t2,$t2,2 li $v0,10 syscall #carico x #carico y #m=x+y #media

41 ESERCIO PROPOSTO Scrivere un programma che definito in memoria il prezzo e lo sconto (interi) riporta in $t0 il prezzo reale in $t1 lo sconto (arrotondato all intero) e in $t2 il prezzo scontato SALDI.ASM.text.globl main main:.data prezzo :.word 133 sconto:.word 25 lw $t0,prezzo lw $t1,sconto mul $t2,$t0,$t1 div $t2,$t2,100 li $v0,10 syscall #carico prezzo #carico sconto #prezzo=prezzo*25 #sconto=prezzo/100

42 ESERCIZIO PROPOSTO PER CASA 1 Scrivere un programma che, definiti due numeri (word) in memoria spazio e tempo, che fanno riferimento ad un punto mobile nello spazio, determina : 1. La velocità del punto che si muove in modo rettilineo uniforme (risultato in $t0)

43 ESERCIZIO PROPOSTO PER CASA 2 Scrivere un programma che converta un valore da scala Celsius a scala Fahrenheit Definire in memoria una variabile intera (word) riportante il valore in scala Celsius Riportare il risultato in scala Fahrenheit in $t0 ES: gradoc=38 $t0=100 OSS: Utilizzare le operazione tra interi (il valore risultante può essere approssimato)

44 ESERCIZIO PROPOSTO PER CASA 3 Scrivere un programma che, definiti due numeri (word) in memoria X e Y, determina le seguenti informazioni: 1. $t0=0 se X è un numero positivo o $t0=1 se X è un numero negativo 2. $t1=0 se Y è pari $t1=1 se Y è dispari 3. $t2 riporta X+Y 4. $t3 riporta il valore massimo in valore assoluto tra (±X) + (±Y)

45 Architettura degli Elaboratori Istruzioni di salto

46 ISTRUZIONE DI SALTO CONDIZIONATO: GENERALITÀ Le istruzioni condizionate fanno riferimento a i flag o codici di condizione presenti nello STATUS REGISTER derivanti da operazione logico-aritmetiche Operando1 Operando2 funzione ALU Flag - Codici di condizione STATUS Z C W N Risultato

47 ISTRUZIONE DI SALTO CONDIZIONATO beq rs, rt, target bne rs, rt, target bgers, rt, target bgeu rs, rt, target bgt rs, rt, target bgtu rs, rt, target blers, rt, target bleu rs, rt, target blt rs, rt, target bltu rs, rt, target Salta all istruzione puntata da target se rs = rt Salta all istruzione puntata da target se rs!= rt Salta all istruzione puntata da target se rs >= rt Comparazione senza considerare il segno Salta all istruzione puntata da target se rs > rt Comparazione senza considerare il segno Salta all istruzione puntata da target se rs <= rt Comparazione senza considerare il segno Salta all istruzione puntata da target se rs < rt Comparazione senza considerare il segno

48 ISTRUZIONE DI SALTO CONDIZIONATO (riferimento registro ZERO, $0) bgez rs, target Salta all istruzione puntata da target se rs >= 0 bgtz rs, target Salta all istruzione puntata da target se rs > 0 blez rs, target Salta all istruzione puntata da target se rs <= 0 bltz rs, target Salta all istruzione puntata da target se rs < 0 beqz rs, target Salta all istruzione puntata da target se rs = 0 bnez rs, target Salta all istruzione puntata da target se rs!= 0

49 ISTRUZIONI DI SALTO CONDIZIONATO: esempio Realizzare un programma che valuta il massimo fra due numeri x,y (di tipo byte) definiti in memoria. Riportare il risultato in memoria Definisci x,y Acquisisci y max=x NO max=y x<y FINE SI

50 ISTRUZIONI DI SALTO CONDIZIONATO: esempio Realizzare un programma che valuta il massimo fra due numeri x,y definiti in memoria come byte.text max_y: lb $t0,x #prelievo di x lb $t1,y #prelievo di y move$t2,$t1 #Int2 conservo y come se fosse il massimo blt $t0,$t1,max_y#salto perché y è il massimo move $t2,$t0 #aggiorno il valore massimo mettendo x in $t2.data sb$t2, max #conservoil massimo in x:.byte 34 #memoria y:.byte 76 max:.byte 0

51 ISTRUZIONE DI SALTO INCONDIZIONATO Le istruzioni incondizionate spostano l esecuzione da un punto ad un altro di un programma j target Salto incondizionato all istruzione puntata da target

52 ISTRUZIONI DI SALTO CONDIZIONATO: esempio Realizzare un contatore da 0 a 100 contatore=0 NO contatore=100 SI contatore=contatore+1 FINE

53 ISTRUZIONI DI SALTO CONDIZIONATO: esempio Realizzare un contatore da 0 a 100.text.globl main main: li $t0,0 li $t1,100 ciclo: fine: beq $t0,$t1,fine add $t0,$t0,1 j ciclo li $v0,10 syscall

54 ESERCIZIO SUI SALTI Realizzare un programma che in linguaggio SPIM definisca un valore di tipo byte residente in memoria e metta in $t2 il valore 1 o 2 se il numero è rispettivamente multiplo di 7 o no.text.globl main main: lb $t0,valore li $t1,7 rem $t3,$t0,$t1 li $t2,1 beqz $t3,salta li $t2,2 salta: li $v0,10 syscall.data valore:.byte 100 risb:.byte 0

55 Architettura degli Elaboratori Progettazione di un quesito matematico Dott. Franco Liberati

56 Progettazione Diagramma di flusso Definisci temp,fattoriale Definisci n Leggi n Effettuare il fattoriale di un numero n (n 0 e n ) Il fattoriale di un numero N è definito come: N!=N N-1 N NB: 0!=1 SI n>1 SI temp=1 n!=0 NO NO Temp=n*temp n=n-1 fattoriale=temp STOP

57 Progettazione Implementazione linguaggio ad alto livello SI n>1 SI temp=n*temp n=n-1 NO temp=1 n!=0 Definisci temp,fattoriale Definisci n Leggi n NO fattoriale=temp STOP main() { int n,temp, fattoriale; temp=1; if(n!=0){ while(n>1) { temp=temp*n; n=n-1; } } fattoriale=temp;

58 Progettazione Implementazione linguaggio assemblativo SI n>1 SI temp=n*temp n=n-1 NO temp=1 n!=0 Definisci temp,fattoriale Definisci n Leggi n NO fattoriale=temp STOP.text lw $t0,n lw $t1,temp li $t5,1 beqz $t0, fine ciclo: ble $t0,$t5, fine mul $t1,$t1,$t0 sub $t0,$t0,1 j ciclo fine: sw $t1, fattoriale.data fattoriale:.word 0 temp:.word 1 n:.word 35

59 Progettazione Assemblatore Indirizzo Etichetta Istruzione Commento 400 lw $t0,n 404 lw $t1,temp 408 li $t5,1 412 beqz $t0,fine 416 ciclo ble $t0,$t5,fine 420 mul $t1,$t1,$t0 424 sub $t0, $t0,1 428 j ciclo 432 fine: sw $t1,fattoriale

60 Progettazione Assemblatore 400: lw $t0,n 404: lw $t1,temp 408: li $t5,1 412: beqz $t0, fine 416:ciclo: ble $t0,$t5, fine 420: mul $t1,$t1,$t0 424: sub $t0,$t0,1 428: j ciclo 432: fine: sw $t1, fattoriale.data fattoriale:.word 0 temp:.word 1 n:.word Tabella Simboli Etichetta/variabile ciclo 416 fine 432 fattoriale 100 temp 104 n 108 Locazione

61 Progettazione Assemblatore (sostituzione etichette con indirizzi) 400: lw $t0,(108) 404: lw $t1,(104) 408: li $t5,1 412: beqz $t0, (432) 416:ciclo: ble $t0,$t5, (432) 420: mul $t1,$t1,$t0 424: sub $t0,$t0,1 428: j (416) 432: fine: sw$t1, (100).data fattoriale:.word 0 temp:.word 1 n:.word Tabella Simboli Etichetta/variabile ciclo 416 fine 432 fattoriale 100 temp 104 n 108 Locazione

62 Architettura degli Elaboratori Interazione con tastiera e console

63 Lettura di valori interi da tastiera.text.globl main main: li $v0,5 syscall move$t0,$v0 #servizio di lettura di un intero da tastiera #chiamata di sistema #spostamento del valore letto da tastiera add $t0,$t0,1 #incremento del valore immesso di una unità move $a0,$t0 li $v0,1 syscall #spostamento del valore intero da stampare #servizio di stampa di un intero #chiamata di sistema li $v0,10 syscall #chiusura programma

64 Architettura degli Elaboratori Esempi di programmi Dott. Franco Liberati

65 MARS Un primo programma Impostare $t0 ad 1 se il valore della variabile definita in memoria Batman è maggiore del valore della variabile definita in memoria Robin.text.globl main main: fine: li $v0,10 syscall.data batman:.word 5 robin:.word 7 lw $t1,batman #sposta il valore della variabile dalla memoria in $t1 lw $t2,robin #sposta il valore della variabile dalla memoria in $t2 li $t0,0 #inizializzazione t0 e caso Batman<Robin blt $t1,$t2, fine #confronta e se $t1<$t2 salta a fine li $t0,1 #settaggio $t0 caso Batman>Robin #fine programma #definizione variabili

66 MARS Un secondo programma Impostare $t0 ad 1 se il valore della variabile definita in memoria Batman ha alla terza posizione meno significativa un 1.text.globl main main: fine: li $v0,10 syscall.data batman:.word 5 li $t0,0 #inizializzazione $t0 e caso Batman ha terzo bit LSB uguale a 0 lw $t1,batman #sposta il valore della variabile dalla memoria in $t1 li $t2,4 #sposta il valore4 in $t2 and $t3, $t1,$t2 #and logico bne$t3,$t2, fine #confrontae se la terza cifra è diversa da 1 salta a fine li $t0,1 #settaggio $t0 caso Batman ha terzo LSB uguale a 1 #fine programma #definizione variabile

67 MARS Esercizio proposto Implementare un programma che dato un valore definito in memoria di tipo word stabilisca se questo è primo (valore 1 in $t2) o no (valore 2 in $t2) NB: un numero è primo se, oltre ad essere divisibile per 1, è divisibile solamente per se stesso ovvero: (n,x)=1 x -{0} con x=1 x=n cioè (n,1)=1 (n,n)=1

68 Architettura degli Elaboratori Fine Dott. Franco Liberati

69 MARS Numeri primo Diagramma a blocchi p=2 Leggi n NO n=p SI n%p=0 SI PRIMO NO p=p+1 NON PRIMO STOP

70 n%p=0 NO SI MARS Numeri primo Diagramma a blocchi p=2 Leggi n n=p SI PRIMO.text.globl main main: inizio: lw $t0,n lw $t1,p li $t2,1 beq $t0,$t1, primo NO p=p+1 NON PRIMO STOP non_primo: primo: rem $t3,$t0,$t1 beqz $t3,non_primo add $t1,$t1,1 j inizio li $t2,2 li $v0,10 syscall.data n:.word 13 p:.byte 2

Università degli Studi di Roma La Sapienza Architettura degli elaboratori II

Università degli Studi di Roma La Sapienza Architettura degli elaboratori II Università degli Studi di Roma La Sapienza Architettura degli elaboratori II Architettura degli elaboratori II Indice degli argomenti Le istruzioni assembly Categorie di istruzioni assembly Istruzioni

Dettagli

Manualino minimale MIPS

Manualino 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

Dettagli

MIPS! !

MIPS! ! 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

Dettagli

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

Lezione 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

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di MIPS: modello di programmazione Anno Accademico 2007/2008 Francesco Tortorella CPU Compito della CPU: eseguire istruzioni Le istruzioni costituiscono le operazioni primitiva eseguibili dalla CPU

Dettagli

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

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

Dettagli

Corso di Calcolatori Elettronici

Corso di Calcolatori Elettronici di Cassino e del Lazio Meridionale Corso di MIPS: modello di programmazione Anno Accademico Francesco Tortorella CPU Compito della CPU: eseguire istruzioni Le istruzioni costituiscono le operazioni primitiva

Dettagli

Università degli Studi di Cassino e del Lazio Meridionale

Università degli Studi di Cassino e del Lazio Meridionale Università degli Studi di Cassino e del Lazio Meridionale di Calcolatori Elettronici MIPS: modello di programmazione Anno Accademico 2012/2013 Alessandra Scotto di Freca Si ringrazia il prof.francesco

Dettagli

Il linguaggio assembly

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...

Dettagli

Linguaggi e moduli. Dott. Franco Liberati

Linguaggi e moduli. Dott. Franco Liberati (canale A-D) A Linguaggi e moduli Dott. Franco Liberati Linguaggi di programmazione Compilatore Assemblatore Linker (collegatore) LINKER COMPILATORE ASSEMBLATORE LINGUAGGI DI PROGRAMMAZIONE Linguaggio

Dettagli

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

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

Dettagli

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

Lezione 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

Dettagli

Università degli Studi di Cassino

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

Dettagli

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div

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

Dettagli

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento Architetture degli Elaboratori e delle Reti Lezione 17 Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità

Dettagli

Il linguaggio Assembly del MIPS

Il 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

Dettagli

Architettura degli. Introduzione al corso Modello della Macchina di Von Neumann Una architettura reale: MIPS. Dott.

Architettura degli. Introduzione al corso Modello della Macchina di Von Neumann Una architettura reale: MIPS. Dott. Architettura degli Elaboratori Introduzione al corso Modello della Macchina di Von Neumann Una architettura reale: MIPS Dott. Franco Liberati Argomenti della lezione Un modello di elaboratore elettronico:

Dettagli

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.

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

Dettagli

Assembler MIPS R2000/R3000 Assembly I

Assembler MIPS R2000/R3000 Assembly I TITLE Assembler MIPS R2000/R3000 Assembly I Riccardo Solmi 1 Bibliografia MIPS Assembly Language Programmer s Guide Manuale di programmazione assembly MIPS Assemblers, Linkers, and the SPIM Simulator Contiene

Dettagli

Un 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) 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

Dettagli

Assembler MIPS 32 Assembly I

Assembler 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

Dettagli

Il linguaggio assembly

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...

Dettagli

ISA (Instruction Set Architecture) della CPU MIPS

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

Dettagli

Architettura degli Elaboratori Lez. 3 ASM: Strutture di controllo. Prof. Andrea Sterbini

Architettura 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

Dettagli

Linguaggio Assembly e linguaggio macchina

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

Dettagli

Linguaggio Assembly e linguaggio macchina

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

Dettagli

Architettura degli. Assemblatore Nomenclatura MARS. Dott. Franco Liberati

Architettura 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

Dettagli

Linguaggio Assembly e linguaggio macchina

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

Dettagli

Architettura degli. Istruzioni MARS. Dott. Franco Liberati

Architettura degli. Istruzioni MARS. Dott. Franco Liberati Architettura degli Elaboratori Dott. Franco Liberati Istruzioni Spostamento o movimento Argomenti della lezione Logico Aritmetiche Salto Condizionato incondizionato a sub-routine (interruzioni software:trap)

Dettagli

Il linguaggio Assembly. Architettura degli Elaboratori e delle Reti Turno I

Il 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

Dettagli

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

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):

Dettagli

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

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

Dettagli

Fetch Decode Execute Program Counter controllare esegue prossima

Fetch 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

Dettagli

Lezione 12. Assembly II. Set di Istruzioni MIPS Strutture di controllo in Assembly

Lezione 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à

Dettagli

ISA (Instruction Set Architecture) della CPU MIPS32

ISA (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

Dettagli

Istruzioni di trasferimento dati

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:

Dettagli

Istruzioni e linguaggio macchina

Istruzioni 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

Dettagli

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

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

Dettagli

Architettura degli elaboratori

Architettura 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

Dettagli

Assembler MIPS R2000/3000

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

Dettagli

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F.

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

Dettagli

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini

Laboratorio 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 2: Prime Istruzioni -Concetti Fondamentali

Dettagli

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

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:

Dettagli

Modifiche 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) 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)

Dettagli

Architettura degli Elaboratori

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

Dettagli

Modi 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: 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

Dettagli

Università degli Studi di Cassino

Università 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:

Dettagli

Il linguaggio macchina

Il 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

Dettagli

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti Architettura degli Elaboratori e delle Reti Lezione 18 CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 18 1/2 Sommario!

Dettagli

Architettura degli Elaboratori

Architettura 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

Dettagli

Laboratorio di Architettura degli Elaboratori

Laboratorio di Architettura degli Elaboratori Laboratorio di Architettura degli Elaboratori Dott. Massimo Tivoli Set di istruzioni del MIPS32: istruzioni aritmetiche e di trasferimento Istruzioni (Alcune) Categorie di istruzioni in MIPS Istruzioni

Dettagli

Il linguaggio macchina

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

Dettagli

Istruzioni assembler Istruzione N Registri

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

Dettagli

L'architettura del processore MIPS

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

Dettagli

ISA e linguaggio assembler

ISA 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

Dettagli

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

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

Dettagli

Assembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App.

Assembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App. Assembly Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A 1 Linguaggio assembly (App. A) Rappresentazione simbolica del linguaggio macchina Più comprensibile

Dettagli

A c r h c i h te t t e t t u t r u a r d g e li el e abo b ra r t a o t ri Assemblatore

A c r h c i h te t t e t t u t r u a r d g e li el e abo b ra r t a o t ri Assemblatore Architettura degli elaboratori Assemblatore ARGOMENTI DELLA LEZIONE Compilatore Assemblatore Collegatore (linker) Caricatore (loader) Architettura degli elaboratori Aseemblatore L esecuzione di un programma

Dettagli

Architettura del calcolatore (Seconda parte)

Architettura del calcolatore (Seconda parte) Architettura del calcolatore (Seconda parte) Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin LINGUAGGIO E ORGANIZZAZIONE DEL CALCOLATORE Linguaggio assembly

Dettagli

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H Architettura dei calcolatori e sistemi operativi Architettura MIPS e set istruzioni Capitolo 2 P&H Instruction Set Architecture ISA Linguaggio assemblatore e linguaggio macchina ISA processore MIPS Modello

Dettagli

ISA e linguaggio assembler

ISA 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/57 Introduzione

Dettagli

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Lezione 8 CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 8 /33 Sommario! La

Dettagli

L 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 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:

Dettagli

Modalità di indirizzamento

Modalità di indirizzamento Modalità di Indirizzamento + Programmi Architettura degli Elaboratori e delle Reti Turno I Alberto Borghese Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: borghese@dsi.unimi.it

Dettagli

Memoria centrale (RAM) Registri della CPU. Definizioni. Architettura considerata in CPUSim. Programma in linguaggio macchina

Memoria centrale (RAM) Registri della CPU. Definizioni. Architettura considerata in CPUSim. Programma in linguaggio macchina Architettura considerata in CPUSim Linguaggio macchina -- esempio in CPUSim Manuale di CPU Sim Memoria con 128 celle Indirizzi da 12 bit Registri usuali per un architettura di Von Neumann (, IR,, ) Un

Dettagli

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore CPU CPU e programmazione (Parte 1) La CPU (Central Processing Unit) e` in grado di eseguire dei programmi, cioe` sequenze di istruzioni elementari ( istruzioni macchina ) Idea fondamentale dell'architettura

Dettagli

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina

Dettagli

Il linguaggio assembly

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

Dettagli

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

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

Dettagli

Istruzioni di controllo del flusso

Istruzioni 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

Dettagli

Linguaggio macchina e register file

Linguaggio 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,

Dettagli

Lecture 2: Prime Istruzioni

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

Dettagli

Esame di Architetture Canale AL Prof. Sterbini 8/7/13 Compito A

Esame 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

Dettagli

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini

Laboratorio 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

Dettagli

Rappresentazione dell informazione

Rappresentazione 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

Dettagli

Lezione 18 Il Set di Istruzioni (4)

Lezione 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

Dettagli

Esercizio I-DLX. Calcolatori Elettronici L-A

Esercizio I-DLX. Calcolatori Elettronici L-A Esercizio I-DLX Calcolatori Elettronici L-A Esercizio 1 Si supponga di voler estendere il set di istruzioni del DLX con l istruzione BEQ Ri, Rj, (Rz) L istruzione confronta i due registri Ri e Rj e, in

Dettagli

Informazioni 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) 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

Dettagli

Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini

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

Dettagli

Controllo di flusso. Università degli Studi di Milano Corso di Laurea in Informatica, A.A

Controllo 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

Dettagli

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

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

Dettagli

L Instruction Set Architecture ed il Linguaggio Assembly

L Instruction Set Architecture ed il Linguaggio Assembly L Instruction Set Architecture ed il Linguaggio Assembly Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento Patterson: Capitolo

Dettagli

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto Un quadro della situazione Lezione 15 Il Set di Istruzioni (2) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri

Dettagli

L architettura del calcolatore (Seconda parte)

L architettura del calcolatore (Seconda parte) L architettura del calcolatore (Seconda parte) Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin ORGANIZZAZIONE DEL CALCOLATORE: RICHIAMI

Dettagli

Architettura degli. Linguaggi di Programmazione Tipologie del Linguaggi di Programmazione Codice Eseguibile. Dott. Franco Liberati

Architettura degli. Linguaggi di Programmazione Tipologie del Linguaggi di Programmazione Codice Eseguibile. Dott. Franco Liberati Architettura degli Elaboratori Linguaggi di Programmazione Tipologie del Linguaggi di Programmazione Codice Eseguibile Dott. Franco Liberati Argomenti della lezione Linguaggi di programmazione Linguaggio

Dettagli

Fondamenti di Informatica A. A / 1 9

Fondamenti di Informatica A. A / 1 9 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2 1 8 / 1 9 Architettura di Von Neumann Architettura di Von Neumann: l Unità di Elaborazione L Unità di Elaborazione L unità di elaborazione (CPU) contiene

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

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

Dettagli

Memoria: lettura, scrittura e indirizzamento

Memoria: lettura, scrittura e indirizzamento Memoria: lettura, scrittura e indirizzamento Ultimo aggiornamento: 27/3/2015 Università degli studi di Milano matteo.re@unimi.it https://homes.di.unimi.it/re/arch2-lab-2015-2016.html Organizzazione della

Dettagli

ARCHITETTURE 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 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

Dettagli

Architettura dell elaboratore

Architettura dell elaboratore Architettura dell elaboratore Riprendiamo il discorso lasciato in sospeso ad inizio corso Riepilogando I programmi e i dati risiedono nella memoria secondaria Per essere eseguiti (i programmi) e usati

Dettagli

Architettura dell elaboratore

Architettura dell elaboratore Architettura dell elaboratore Riprendiamo il discorso lasciato in sospeso ad inizio corso Riepilogando I programmi e i dati risiedono nella memoria secondaria Per essere eseguiti (i programmi) e usati

Dettagli

Modi di indirizzamento

Modi di indirizzamento Architettura degli elaboratori Modi di indirizzamento ARGOMENTI DELLA LEZIONE Definizione Indirizzamenti diretti: immediato, assoluto, a registro Indirizzamenti indiretti: indiretto con registro, con spiazzamento,

Dettagli

L Instruction Set Architecture ed il Linguaggio Assembly

L Instruction Set Architecture ed il Linguaggio Assembly L Instruction Set Architecture ed il Linguaggio Assembly Prof. Alberto Borghese Ing. Iuri Frosio Dipartimento di Scienze dell Informazione borghese,frosio@dsi.unimi.it Università degli Studi di Milano

Dettagli

Architettura degli elaboratori CPU a ciclo singolo

Architettura degli elaboratori CPU a ciclo singolo Architettura degli elaboratori CPU a ciclo singolo Prof. Alberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano iferimento sul Patterson: capitolo 4.2, 4.4,

Dettagli

Esame di Architetture Canale MZ Prof. Sterbini 21/7/14

Esame 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

Dettagli