Architettura degli. Istruzioni MARS. Dott. Franco Liberati
|
|
- Giordano Mazzoni
- 4 anni fa
- Visualizzazioni
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 Architettura degli elaboratori II Indice degli argomenti Le istruzioni assembly Categorie di istruzioni assembly Istruzioni
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
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
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
DettagliUniversità 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
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
DettagliCorso 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
DettagliUniversità 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
DettagliIl 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...
DettagliLinguaggi 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
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
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
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
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
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
DettagliLinguaggio 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à
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
DettagliArchitettura 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:
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
DettagliAssembler 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
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
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
DettagliIl 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...
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
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
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
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
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
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
DettagliArchitettura 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)
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
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):
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
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
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à
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
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:
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
DettagliLinguaggio 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
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
DettagliAssembler 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
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
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 2: Prime Istruzioni -Concetti Fondamentali
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:
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)
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
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
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:
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
DettagliCPU 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!
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
DettagliLaboratorio 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
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
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
DettagliL'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
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
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
DettagliAssembly. 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
DettagliA 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
DettagliArchitettura 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
DettagliArchitettura 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
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/57 Introduzione
DettagliCPU 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
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:
DettagliModalità 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
DettagliMemoria 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
DettagliCPU. 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
DettagliArchitettura 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
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
DettagliIstruzioni 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
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
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,
DettagliLecture 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
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
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
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
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
DettagliEsercizio 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
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
DettagliLaboratorio 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
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
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 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
DettagliUn 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
DettagliL 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
DettagliArchitettura 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
DettagliFondamenti 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
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
DettagliMemoria: 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
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
DettagliArchitettura 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
DettagliArchitettura 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
DettagliModi 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,
DettagliL 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
DettagliArchitettura 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,
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
Dettagli