Assembly (del MIPS): piccolo prontuario
|
|
- Luigi Pagano
- 5 anni fa
- Visualizzazioni
Transcript
1 Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architetture degli elaboratori: Assembly (del MIPS): piccolo prontuario Marco Tarini Dipartimento di Scienze Teoriche e Applicate marco.tarini@uninsubria.it Linguaggio Assembly Linguaggio molto aderente ad un Instruction Set, Specifico per un Instruction Set Rapporto (quasi) 1:1 fra comandi Assembly e istruzioni binarie Pensato per essere più facile da leggere o scrivere per noi esseri umani, rispetto al linguaggio macchina: add $13, $4, $ VS Assembler: programma che effettua la traduzione. Fa per noi molti lavoretti che sarebbero tediosi ma banali, come: tradurre le operazioni in OP codes (di sei bit) tradurre in base 2 (o in CP2) gli indici dei registri e gli immediate calcolare gli offset delle destinazioni dei salti tenere traccia degli indirizzi a cui sono merizzati dati ed istruzioni altro, come vedremo Architettura degli elaboratori Architettura degli elaboratori - Assembly - 1 1
2 Istruzione in Assembly Registri su cui si opera (corrispondono ai campi Rt, Rs e Rd) L immediato (il campo imm16) add $13, $4, $3 le virgole sono opzionali codice mnemonico dell istruzione (corrisponde al campo OP e FUNCT) addi $13, $4, 162 «i» sta per immediate In Assembly, l ordine degli operandi è comodamente fisso: a differenza del MIPS binario, in cui varia fra le istruzioni R e I il PRIMO parametro rappresenta sempre il risultato il registro che viene scritto (se l op prevede di scrivere un reg) $13 in questo esempio Seguono gli operandi (che siano registri o immediate) Architettura degli elaboratori Commenti e indentazione In Assembly, spazi, tab e accapo vengono ignorati (posso indentare il programma come voglio) Per rendere il codice più comprensibile in Assembly posso aggiungere dei commenti Verranno semplicemente ignorati dal compilatore Sintassi: i commenti vanno dal carattere # alla fine della linea # commento add $13, $4, $3 # questo fa $13 <- $4 + $3 (sono questi due semplici ma cruciali elementi che rendono l Assembly molto più comprensibile del linguaggio macchina) Architettura degli elaboratori Architettura degli elaboratori - Assembly - 1 2
3 Traduzione delle istruzioni da Assembly a linguaggio macchina Esempio, l istruzione add $8, $17, $18 è tradotta così: add op = 0 = shamt = 0 = funct = 32 = $8 rd = 8 = $17 rs = 17 = $18 rt = 18 = op rs rt rd shamt funct Architettura degli elaboratori per operazioni aritmetiche Nome completo Esempio Significato Commenti. add add $1,$2,$3 $1 = $2 + $3 2 operandi registro; subtract sub $1,$2,$3 $1 = $2 $3 2 operandi registro; add immediate addi $1,$2,100 $1 = $ operandi: registro e costante; add unsigned addu $1,$2,$3 $1 = $2 + $3 2 operandi registro; subtract unsignedsubu $1,$2,$3 $1 = $2 $3 2 operandi registro; add imm. unsign. addiu $1,$2,99 $1 = $ operandi: registro e costante; multiply mult $2,$3 Hi Lo = $2 x $3 prodotto con segno: res in 64 bit multiply unsigned multu $2,$3 Hi Lo = $2 x $3 prodotto senza segno: res in 64 bit divide div $2,$3 Lo = $2 $3, Lo = quoziente, Hi = resto Hi = $2 mod $3 divide unsigned divu $2,$3 Lo = $2 $3, Quoziente e resto senza segno Hi = $2 mod $3 Move from Hi mfhi $1 $1 = Hi Copia Hi in un registro Move from Lo mflo $1 $1 = Lo Copia Lo in un registro Architettura degli elaboratori Architettura degli elaboratori - Assembly - 1 3
4 Operazioni aritmetiche «con la U» La «u» nei comandi artimetici (come addu) sta per «unsigned», ma il nome è fuorviante (ricorda: la somma di numeri in CP2, e la somma in binario senza segno sono la stessa operazione, cambia solo la gestione dell overflow) La vera differenza: il comando senza la «u» può generare eccezione di overflow il comando con la «u» semplicemente ignora l overflow In conclusione, si può verificare overflow solo in alcune istruzioni aritmetiche: add, sub, addi nelle altre op matematiche, o non si verifica o viene ignorato (non viene generate alcuna eccezione) nelle op logiche, non si verifica mai Architettura degli elaboratori Moltiplicazione / divisione Moltiplicazione / divisione: (mult e div) scrivono su una coppia di registri speciali: Hi e Lo (non fanno parte dei 32 registri) Ricorda: moltiplicando due numeri da n bit ottengo un numero da 2n bit. Il valore di Hi e Lo si travasa in normali registri con: mfhi rd ( Move From Hi ) mflo rd ( Move From Lo ) Registers Mult/Div Unit HI LO Architettura degli elaboratori Architettura degli elaboratori - Assembly - 1 4
5 per operazioni logiche Istruzioni Esempio Significato Commento and and $1,$2,$3 $1 = $2 & $3 AND bit a bit or or $1,$2,$3 $1 = $2 v $3 OR bit a bit xor xor $1,$2,$3 $1 = $2 $3 XOR bit a bit nor nor $1,$2,$3 $1 = ~($2 $3) NOR bit a bit and immediate andi $1,$2,10 $1 = $2 & 10 AND tra reg. e costante or immediate ori $1,$2,10 $1 = $2 10 OR tra reg. e costante xor immediate xori $1, $2,10 $1 = $2 10 XOR tra reg. e costante shift left logical sll $1,$2,10 $1 = $2 << 10 Shift a sinistra di una costante shift right logical srl $1,$2,10 $1 = $2 >> 10 Shift a destra di una costante shift right arithm. sra $1,$2,10 $1 = $2 >> 10 Shift a destra (con est. in segno) shift left logical sllv $1,$2,$3 $1 = $2 << $3 Shift a sinistra di una variabile shift right logical srlv $1,$2,$3 $1 = $2 >> $3 Shift a destra di una variabile shift right arithm. srav $1,$2,$3 $1 = $2 >> $3 Shift a destra di una variabile (con est. in segno) Architettura degli elaboratori per operazioni aritmetiche e logiche Il risultato dell op viene sempre memorizzato nel primo registro indicato Eccezione: mult e div, che scrivono invece due apposite registri speciali HI e LOW I due operandi dell op sono: nelle versioni non immediate (e negli shift con variabile): i due registri indicati nelle versioni immediate: (e negli shift senza variabile): un registro dato e un valore dato Il valore nelle istruzioni con immediate: E memorizzato nel campo imm16 di una istruzione I (di16 bit!) E in CP2 nelle op aritmetiche (e quindi viene esteso in segno). Val max =?. Val min =?. Senza segno nelle op logiche (ed quindi viene esteso con 0) Val max =?. Val min =?. Architettura degli elaboratori Architettura degli elaboratori - Assembly - 1 5
6 per operazioni logiche Le op logiche lavorano bit a bit Lo shift a sinistra fa apparire 0 da destra Corrisponde a dividere per 2^n Due versioni dello shift a destra: Far apparire 0 a sinistra (vers logica) Far apparire a sinistra il bit più significativo (vers aritmetica) Corrisponde a moltiplicare per 2^n (nella versione aritmetica: questo vale per i numeri in CP2) Lo shift di una costante, il valore di cui si shifta è memorizzato, in linguaggio macchina, nell apposito campo da 5 bit delle istruzioni R (quindi vale da 0 a 31 sempre sufficiente!) Architettura degli elaboratori per trasferire registri da/a la memoria Istruzione Commento sw $3, 500($4) sh $3, 502($2) sb $2, 41($3) Store word Store half Store byte da registro a mem (store) lw $1, 30($2) lh $1, 40($3) lhu $1, 40($3) lb $1, 40($3) lbu $1, 40($3) lui $1, 40($3) Load word Load halfword Load halfword unsigned Load byte Load byte unsigned Load Upper Immediate (16 bits shifted left by 16) da mem a registro (load) Architettura degli elaboratori Architettura degli elaboratori - Assembly - 1 6
7 per trasferire registri da/a la memoria L indirizzo a cui si legge o scrive è quello contenuto nel registro indicato fra parentesi, incrementato del valore eventualmente indicato prima della parentesi esempi: ($16) usare l inidirizzo contenuto nel registro ($4) usare l indirizzo contenuto nel registro 4, incrementato di 500 byte (cioè di 500/4 = 125 word) -4($16) usare l inidirizzo contenuto nel registro 16, decrementato di 4 Architettura degli elaboratori per trasferire registri da/a la memoria Store: si leggono 1, 2 o 4 byte dal registro indicato nel 1mo parametro (4 se word. 2 se half. 1 se byte. Se 1 o 2: i meno significativi) li si scrivono in 1, 2, o 4 byte consecutivi in memoria Load: caso word: si leggono 4 byte dalla memoria caso short/byte unsigned: si leggono 2/1 byte e si estendono con 0 caso short/byte: si leggono 2/1 byte e si estendono in segno caso lui: si leggono 2 byte e si shiftano a sinistra di 16 bit in tutti i casi: si scrivono tutti i 4 byte risultanti nel registro indicato Architettura degli elaboratori Architettura degli elaboratori - Assembly - 1 7
8 per branch (salti condizionali) Con confronto fra due registri beq rs, rt, dest equal, if R[rs] == R[rt] then jump to dest bne rs, rt, dest not equal, Con confronto fra un registro e zero blez rs, dest less-or-equal zero, if R[rs] <= 0 then jump bgtz rs, dest greater-then zero > bgez rs, dest greater-or-equal zero >= bgezal rs, dest come sopra «and link» (vedi poi) bltz rs, dest less-than zero < bltzal rs, dest come sopra «and link» (vedi poi) Architettura degli elaboratori per branch (salti condizionali) L instruction set MIPS mette a disposizioni molte varianti di branch (b-), diverse per: l operatore del paragone che determina se saltare oppure no: minore uguale (-le-), maggiore (-gt-), etc se il paragone avviene fra due registri, oppure fra un registro e lo zero (-z-) «and link» (-al) : se, in caso di salto, deve essere memorizzato l indirizzo dell istruzione che ha causato il salto, (in modo da poterci tornare con un apposita istruzione di ritorno) (utile quando il salto serve per eseguire una subroutines, vedi poi). ma non tutte le varianti possibili sono previste! (es: R1>R2 non lo è) Per implementare le varianti non previste, saranno necessarie due o più istruzioni: Prima: calcolo della condizione (es: R3 = R1-R2) Poi: salto condizionale (es: R3 > 0 ) (tipico esempio della filosofia RISC in azione!) Architettura degli elaboratori Architettura degli elaboratori - Assembly - 1 8
9 per branch (salti condizionali) L istruzione MIPS binaria come sappiamo memorizza la destinazione del salto come un offset rispetto al PC corrente (salto «relativo») L offset è memorizzato nel campo imm16 di una istruzione di tipo I L offset è un numero di 16 bit in CP2 L offset rappresenta il n. di istruzioni da saltare (avanti o indietro) Cioè il numero di words da sommare al PC Cioè il PC+4 va incrementato di Offset x 4 bytes (ext in segno) Il programmatore Assembly indica direttamente la destinaz. del salto L assembler calcola per lui l offset necessario per raggiungerla, e lo riporta nel campo imm16 (comodo!) La destinazione può seguire oppure precedere l istruzione del salto (perché offset ha il segno) Ma non può essere più lontana di 2^15 istruzioni! Altrimenti errore. Generato dall assembler (perché offset ha solo 16 bit in CP2). Sono salti corti! Architettura degli elaboratori per Jump (salti non condizionali) Istruzione Esempi Significato jump j vai all istruzione jump and link jal vai all istruzione and link jump register jr $31 vai all istruzione contenuta nel registro $31 Architettura degli elaboratori Architettura degli elaboratori - Assembly - 1 9
10 per Jump (salti non condizionali) Jump salta ad un indirizzo dato. L istruzione MIPS binaria corrispondente, di tipo J, memorizza la destinazione nel suo campo address E un campo di ben 26 bits (il tipo J esiste apposta per questo) Due zeri finali sono sottointesi (è l indice di un word) = 28 bits Il PC mantiene i primi 4 bits inalterati, e i suoi 28 bits meno significativi vengono sostituiti: salto (quasi) «assoluto» Quindi: l istruzione può saltare anche molto lontano. Salto lungo! L unico vincolo è che non si può uscire dal blocco di 2^26 istruzioni Tipicamente, il programmatore determina la destinazione attraverso un etichetta (vedi poi); address viene calcolato dall assembler. Jump address salta ad un indirizzo memorizzato in un registro dato PC viene sostituito del tutto dai 32 bit del registro: salto «assoluto» Si può saltare assoltamente ovunque nel codice. No limits. Salti lunghissimi! (ma bisogna approntare un registro) Architettura degli elaboratori per assegnamenti condizionali Istruzioni Esempi Significato set on less than slt $1,$2,$3 if ($2 < $3) $1=1; else $1=0 < (complemento a 2) set on less than slti $1,$2,100 if ($2 < 100) $1=1; else $1=0 immediate <costante (complemento a 2) set on less than sltu $1,$2,$3 if ($2 < $3) $1=1; else $1=0 unsigned < (numeri senza segno) set less then sltiu $1,$2,100 if ($2 < 100) $1=1; else $1=0 immediate unsigned <costante (numeri senza segno) Architettura degli elaboratori Architettura degli elaboratori - Assembly
11 Confronto con segno e senza R1= = 1 10 R2= = 2 10 R3= = oppure Esercizio: dopo l esecuzione di queste istruzioni: slt $4,$2,$1 ; slt $5,$3,$1 ; sltu $6,$2,$1 ; sltu $7,$3,$1 ; Quali valori si trovano nei registri r4 - r7? r4 = 0; r5 = 1; r6 = 0; r7 = 0 ; R2==2 non è minore di R1==1 R3==-1 è minore di R1==1 R2==2 non è minore di R1==1 R3== non è minore di R1==1 Architettura degli elaboratori Convenzioni nell'uso dei registri Per compilare una data procedura, il compilatore (o il programmatore umano) deve sapere quali registri può usare e quali sono in uso da parte di altre procedure. Da qui la necessità di regole e convenzioni per l'uso dei registri Non implementate in HW Compilatori e programmatori le devono seguire, pena bugs insidiosi, anche molto difficili da trovare. Architetture Architettura degli elaboratori - Assembly
12 Convenzioni nell'uso dei registri I registri $at (1), $k0 (26), e $k1 (27) riservati per l'assemblatore ($at) e il sistema operative ($k0-1) NON devono essere usati dai programmatori o dal compilatore I registri $a0 $a3 (4 7) usati per passare i primi 4 argomenti alle routine. (ulteriori eventuali argomenti sono passati sulla pila (molto più lenta!) I registri $v0 e $v1 (2, 3) usati dalle funzioni per restituire valori al chiamante. I registri $t0 $t9 (8 15, 24, 25) usati per memorizzare valori temporanei, quelli che non è necessario preservare tra una chiamata e l'altra. ogni procedura li può usare senza preoccuparsi di sporcarli I registri $s0 $s7 (16 23) usati per valori che devono essere preservati tra una chiamata e l'altra. Il loro significato non è locale alla chiamata corrente. Architetture Convenzioni nell'uso dei registri Il registro $gp (28) è un puntatore globale che punta ad un blocco di memoria da 64K nel segmento dei dati statici. Il registro $sp (29) è lo stack pointer, che indirizza l'ultima posizione dello stack (vedremo) Il registro $fp (30) è il frame pointer (vedremo). Il registro $ra (31) contiene l'indirizzo di rientro dalla chiamata di procedura (vedremo). Architetture Architettura degli elaboratori - Assembly
13 Scrittura di comandi in assembly: gli operandi che sono registri L Assembly ci consente di riferirci ai 32 registri anche attraverso dei sinonimi che riflettono il loro uso convenzionale Registro: $0 $1 $2 $3 $4 $5 $6 $7 Sinonimo: $r0 $at $v0 $v1 $a0 $a1 $a2 $a3 Registro: $8 $9 $10 $11 $12 $13 $14 $15 Sinonimo: $t0 $t1 $t2 $t3 $t4 $t5 $t6 $t7 Registro: $16 $17 $18 $19 $20 $21 $22 $23 Sinonimo: $s0 $s1 $s2 $s3 $s4 $s5 $s6 $s7 Registro: $24 $25 $26 $27 $28 $29 $30 $31 Sinonimo: $t8 $t9 $k0 $k1 $gp $sp $s8 $ra equivalente a add $s3, $t3, $t4 add $19, $11, $12 Architetture Scrittura di comandi in assembly: gli operandi che sono immediate Il campo immediate può essere scritto: In base 10 In base 16, precedendo le cifre con 0x Come carattere ascii, fra apicetti singoli addi $3, $3, 97 addi $3, $3, 0x61 addi $3, $3, a Sinonimi (il terzo registro viene incrementato di 97, il cui codice ASCII è a ) Architettura degli elaboratori Architettura degli elaboratori - Assembly
14 Pseudo-istruzioni L assembler MIPS supporta diverse pseudo-istruzioni: Non corrispondono ad istruzioni nell Instruction Set (l archiettura HW non le conosce!) Sono implementate mediante una o più istruzioni dell IS Semplificano la programmazione in linguaggio assembly La pseudo-istruzione move $t0, $t1 (copia $t1 in $t0) è implementata come add $t0, $zero, $t1 La pseudo-istruzione blt $s0, $s1, addr (branch less then salta se $s0<$s1) è implementata come due istruzioni: slt $at, $s0, $s1 bne $at, $zero, addr (nota: uso del registo riservato all assembler) Architettura degli elaboratori Pseudo-istruzioni La pseudo-istruzione la $t0, etichetta (load address, copia l indirizzo etichetta in $t0) è implementata calcolando val dall etichetta e ori $t0, $0, val (load unsigned immediate) La pseudo-istruzione li $t0, val (load immediate, copia il valore val in $t0) è implementata come ori $t0, $0, val (or bit a bit fra val e il registro $0 cioè il valore 0) Le pseudo-istruzioni rendono il linguaggio Assembly ancora un po più ad alto livello del linguaggio macchina (Rimane un linguaggio a bassissimo livello, rispetto a, per es, C o, ancor di più, Java) Architettura degli elaboratori Architettura degli elaboratori - Assembly
15 Un programma in assembly Ricorda che un programma è costitutito da due parti Dati, (in assembly: parte data ) Istruzioni (il codice che lavora sui dati), (in assembly: parte text ) memorizzate in due apposite aree della memoria (localizzate secondo alcune convenzioni che non ci interessano) Un programma Assembly non è altro che un file di testo che descrive il contenuto della memoria (in ciascuna delle due aree) Consiste quindi in due sequenza di parole consecutive (e/o mezze parole, e/o bytes) espresse in ASCII Architettura degli elaboratori Un programma in assembly Es un programma potrebbe essere: Questo programma (che non ha senso alcuno!) prescrive 2 words nella parte data e altre 2 words nella parte text Le parole (32 bits!) possono essere espresse in molti modi equivalenti: in decimale, es: 20.word 20 in esadecimale, es: 0x14.word 0x14 utile per la parte data con un carattere ascii, es: a.word 'a' con un comando assembly, es: add $t3, $s1, $s3.data.word 20, 10.text.word 30, 1234 utile per la parte text Architettura degli elaboratori Architettura degli elaboratori - Assembly
16 Direttive Comandi Assembly che spiegano all Assembler come tradurre un programma Non producono istruzioni macchina! Sintassi: cominciano sempre con un punto Il programma precedente usa due direttive:.data «Memorizza gli elementi successivi nel segmento dati».text «Memorizza gli elementi successivi nel segmento testo» Tipica struttura sorgente: dati comandi.data.text Architetture Direttive: dati Alcune direttive spiega il formato in cui tentere, in memoria, i dati successivi:.word «Memorizza i valori successivi in 4 bytes».half «Memorizza i valori successivi come half-word: cioè in coppie di byte».byte «Memorizza i valori successivi in un byte ciascuno».data.half 20, 2, 100.byte 4, 'c'.word 0x40, 300 Nel segmento data sono memorizzati in tutto 16 bytes Architetture Architettura degli elaboratori - Assembly
17 Direttive: dati Un scorciatoia speciale per dati consente di definire con facilità le stringe (intese come sequenze di caratteri, ciascuno reppresentato da un byte).ascii "anna" Equivalente a:.byte 'a', 'n', 'n', 'a Memorizza (in questo esempio): 4 bytes..asciiz "anna" Un byte per carattere, seguiti da un ulteriore byte terminatore zero. Equivalente a:.byte 'a', 'n', 'n', 'a', 0 Equivalente a:.ascii "anna".byte 0 Oppure a (in questo esempio): 5 bytes. Nota l uso del doppio apice. La convenzione di terminare le strighe col byte 0 è comune a molti linguaggi di programmazione ad alto livello (C, Java, C++ ), e dalle procedure di sistema (es quella che scrive stringhe su un monitor). Dette «null terminated strings» Architetture Direttive: dati.space n Lascia uno spazio di n Bytes nel segmento dati. Utile per riservare dei bytes nel segmento data dove memorizzare i dati prodotti dalle istruzioni.align n Lascia alcuni byte di spazio in modo che il dato successivo sia scritto in un indirizzo divisible per 2 n Utile per allineare i dati, ad esempio align 2 fa in modo che il word successive sia scritto ad un indirizzo che termina con 00, anche se i dati scritti in precedenza hanno occupato un numero dispari di bytes. Architetture Architettura degli elaboratori - Assembly
18 Etichette (label) Le etichette sono un altra parte del programma Assembly che l Assembler non traduce in alcuna istruzione macchina E un identificaore qualsiasi, scelto dal programmatore, introdotto come un nome seguito da un due-punti. Es: pippo:.word 19 Un etichetta è un meccanismo che consente al programmatore assembly di riferirsi all indirizzo a cui è stato memorizzato un dato o un istruzione sarebbe complicato per il programmatore ricostruire questo indirizzo, ma è banale per l assemnler. Architettura degli elaboratori Etichette (label): funzionamento Quando un etichetta viene definita (cioè coniata, inventata, introdotta nel programma), l assembler tiene traccia dell indirizzo in cui sta per scrivere il prossimo dato o istruzione Nella definizione, l etichetta appare seguita da due-punti ll programmatore può riferire (usare) un etichetta (definita altrove) usandola al posto di un operando in un comando. L assembler sostituisce l etichetta con l indirizzo corrispondente. Nel riferimento, l etichetta appare senza il due-punti Un etichetta può essere definita in un programma una sola volta, e essere riferita molte volte la definizione dell etichetta può precedere oppure seguire il suo riferimento (questo comporta che l assembler dovrà faticare un po, e leggere il programma due volte) Architettura degli elaboratori Architettura degli elaboratori - Assembly
19 Etichette (label): usi tipici Le etichette definite nella sezione data saranno riferite da comandi tipo load / store come indirizzo a cui leggere /scrivere quei dati.data popolaz:.word # definisco l etichetta.text la $t1, popolaz # carica l address popolaz in t1 lw $t2, 0($t1) # carica in $t1 Le etichette definite nella sezione text saranno riferite da comandi tipo jump / branch come indirizzo a cui saltare.text ite: sub $t2, $t2, 1 # t2 = t2-1 bgtz $t2, ite # if (t2 > 0) goto ite Architettura degli elaboratori Label e direttive per definire dati Tipico uso: Es: label:.tipo valore pippo:.word 19 «nel primo indirizzo libero, al quale io mi riferirò in futuro chiamandolo con pippo (l etichetta), piazza il valore 19 come un word (4 byte)» Somiglia molto al commando Java: int pippo = 19; Anche valori multipli label:.tipo val0, val1, pippo:.word 19, 12, 13 Architetture Architettura degli elaboratori - Assembly
20 Altre direttive.globl pippo L etichetta pippo determina quale sia il PC iniziale ( l esecuzione parte da lì ) Altre direttive sono descritte sul libro Architetture System call MIPS offre semplici servizi mediante chiamate di sistema (system call) predefinite Ogni chiamata è costituita da Codice dell operazione Argomenti (opzionali) Valori di ritorno (opzionali) Architetture Architettura degli elaboratori - Assembly
21 Funzioni di sistema Architetture Come fare una system call 1) Inserire il codice nel registro $v0 2) Inserire gli argomenti nei registri $a0-$a3 ($f12-$f15) 3) Eseguire l istruzione syscall 4) Il valore di ritorno è nel registro $v0 ($f0) Architetture Architettura degli elaboratori - Assembly
22 Riassumendo L Assembler semplifica la vita al programmatore, rispetto al linguaggio macchina, perché Traduce numeri da decimale, esadec, o ascii in binario Traduce codici mnemonici di op (come «add») in opcode binari Riordina i parametri a seconda che il comando sia di tipo R, o I, permettendoci di fornire i parametri in un ordine consistente (il risultato prima) Rinomina i registri, consentendo di usare nomi più significativi («$t1» invece di «$9») Mette a disposizione alcune utili (Pseudo) Istruzioni ulteriori (traducendole con una o due Istruzioni MIPS) Consente di indentare a piacere il codice (aggiungere accapi, spazi, tabulazioni) per renderlo più leggibile Consente di aggiungere commenti al codice (che semplicemente ignora) Tiene traccia degli indirizzi di dati ed istruzioni, attraverso il meccanismo delle etichette Calcola gli offset degli indirizzi rispetto al PC etc Tuttavia, programmare direttamente in Assembly rimane tremendamente difficile Nella realtà si usano sempre linguaggi più ad alto livello! Complilati e trasformati in Assembly o linguaggio macchina Architettura degli elaboratori Architettura degli elaboratori - Assembly
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
DettagliInstruction Set MIPS: piccolo prontuario
Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Instruction Set MIPS: piccolo prontuario MIPS R3000 Instruction Set Architecture Categorie di istruzioni: Computazioni
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
DettagliRiassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div
MIPS load/store word, con indirizzamento al byte aritmetica solo su registri Istruzioni Significato add $t1, $t2, $t3 $t1 = $t2 + $t3 sub $t1, $t2, $t3 $t1 = $t2 - $t3 mult $t1, $t2 Hi,Lo = $t1*$t2 div
DettagliIl 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
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:
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
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):
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
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
DettagliIstruzioni di trasferimento dati
Istruzioni di trasferimento dati Leggere dalla memoria su registro: lw (load word) Scrivere da registro alla memoria: sw (store word) Esempio: Codice C: A[8] += h A è un array di numeri interi Codice Assembler:
Dettaglislt $t1,$t2,$t3 if ($t2<$t3) $t1=1; Confronto tra registri slti $t1,$t2,100 if ($t2<100)$t1=1; Cfr. registro-costante
Istruzioni di confronto Istruzione Significato slt $t1,$t2,$t3 if ($t2
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
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
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
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 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano
Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano L16-20 1/29 Linguaggio
DettagliLezione 20. 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
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
DettagliLezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano
Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano L16-20 1/29 Linguaggio
DettagliLezione 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à
DettagliUn altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando
Un altro tipo di indirizzamento L insieme delle istruzioni (3) Architetture dei Calcolatori (lettere A-I) Tipi di indirizzamento visti finora Indirizzamento di un registro Indirizzamento con registro base
DettagliArchitettura degli Elaboratori
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
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)
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: 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à
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
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
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
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
DettagliLa struttura delle istruzioni elementari: il linguaggio Macchina. Sommario
La struttura delle istruzioni elementari: il linguaggio Macchina Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento sul
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
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
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
DettagliCorso di Architettura (Prof. Scarano) 10/05/2002
Lezione 0 Il Set di Istruzioni (6) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Le procedure Prima della chiamata di una procedura In ogni linguaggio di
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
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:
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
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...
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
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,
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
DettagliIl linguaggio del calcolatore: linguaggio macchina e linguaggio assembly
Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Richiamo sull
DettagliMIPS Instruction Set 1
Architettura degli Elaboratori e Laboratorio 20 marzo 2012 Istruzioni Comuni 1/3 Istruzioni Aritmetiche: Instruction Example Meaning Comments add add $1,$2,$3 $1=$2+$3 Always 3 operands subtract sub $1,$2,$3
DettagliLe tre famiglie fondamentali. Laboratorio di Architettura. 1. Manipolazione di dati. 1.1 Aritmetica di base. Lezione 3
Le tre famiglie fondamentali Laboratorio di Architettura Lezione 3 Andrea Torsello Dipartimento di Informatica Università Ca Foscari di Venezia Ci sono tre famiglie fondamentali di istruzioni, per: 1.
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
DettagliAutilia Vitiello Dip. di Informatica ed Applicazioni Stecca 7, 2 piano, stanza 12
Autilia Vitiello Dip. di Informatica ed Applicazioni Stecca 7, 2 piano, stanza 12 vitiello@dia.unisa.it http://www.dia.unisa.it/~avitiello Presentazione Corso di Architettura matricole congruo a 0: prof.
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:
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
DettagliLezione 17 Il Set di Istruzioni (3)
Lezione 17 Il Set di Istruzioni (3) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Un richiamo su: Operazioni aritmetiche (add
DettagliUniversità degli Studi di Roma La Sapienza
Università degli Studi di Roma La Sapienza Architettura degli elaboratori II Introduzione ai concetti ed al simulatore SPIM Indice degli argomenti Introduzione Assembler, compilatore, linker, programma
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
Dettagli15 April LABORATORIO 04 PROCEDURE STACK. CHIAMATA A PROCEDURE I. Frosio
15 April 2011 05 LABORATORIO 04 PROCEDURE STACK CHIAMATA A PROCEDURE I. Frosio 1 SOMMARIO Procedure Stack Chiamata a procedure 2 PERCHÈ LE PROCEDURE? 15 April 2011 Main Proc3 Proc2 Proc1 Programmazione
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...
DettagliAssembly (3): le procedure
Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 13 1/23 Chiamata
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!
DettagliAssembly (3): le procedure
Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano (Patterson-Hennessy:
DettagliIl Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti
Il Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti Prof. Alberto Borghese Ing. Iuri Frosio Dipartimento di Scienze dell Informazione borghese,frosio@dsi.unimi.it Università degli Studi
DettagliLezione 2 Assembly MIPS (2)
Lezione 2 Assembly MIPS (2) http://www.dii.unisi.it/~giorgi/didattica/arcal1 All figures from Computer Organization and Design: The Hardware/Software Approach, Second Edition, by David Patterson and John
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
DettagliUn quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto
Un quadro della situazione Lezione 15 Il Set di Istruzioni (3) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri
DettagliAssembly IV Le procedure
rchitettura degli Elaboratori e delle Reti Lezione 14 ssembly IV Le procedure Proff.. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano (Patterson-Hennessy:
DettagliStringhe di caratteri
Stringhe di caratteri PH 2.8 1 Gestione dei caratteri Ogni carattere è rappresentato univocamente mediante un codice numerico rappresentabile usando un byte (codice ASCII) MIPS fornisce le istruzioni lb
DettagliLe procedure. L insieme delle istruzioni (4) Prima della chiamata di una procedura. Le procedure (2) Architetture dei Calcolatori (lettere A-I)
Le procedure L insieme delle istruzioni (4) Architetture dei Calcolatori (lettere A-I) In ogni linguaggio di programmazione si struttura il proprio codice usando procedure (funzioni, metodi, ) L utilizzo
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
DettagliRicevimento inviate una e mail a con oggetto [Tutorato Arch] o [Tutorato Prog1]
Presentazione LE ISTRUZIONI: IL LINGUAGGIO DEI CALCOLATORI Sarro Federica, Phd Student Facoltà di Scienze MM FF NN Università degli Studi di Salerno fsarro@unisa.itit http://www.dmi.unisa.it/people/sarro/www/
DettagliProgetto CPU a singolo ciclo
Architettura degli Elaboratori e delle Reti Progetto CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano 1/60 Sommario v La CPU v Sintesi di
DettagliControllo di flusso. Università degli Studi di Milano Corso di Laurea in Informatica, A.A Homepage del corso
Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2017-2018 Controllo di flusso Homepage del corso Turno A Nicola Basilico Dipartimento di Informatica Via Comelico 39/41-20135 Milano
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
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
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
DettagliProgetto CPU a singolo ciclo
Architettura degli Elaboratori e delle Reti Progetto CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano 1/50 Sommario! La CPU! Sintesi di
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
DettagliIntroduzione. Indice. Linguaggio macchina. Linguaggio assembler
Indice Linguaggio ad alto livello, linguagio assembler e linguaggio macchina Il linguaggio assembler MIPS: istruzioni aritmetiche, di trasferimento dati e di salto Conversione linguaggio assembler in linguaggio
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
DettagliCOMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME
MATRICOLA COGNOME NOME 1) [28/40] Trovare il codice assembly MIPS corrispondente dei seguenti micro-benchmark (utilizzando solo e unicamente istruzioni dalla tabella sottostante), rispettando le convenzioni
DettagliConvenzioni di chiamata a procedure
Università degli Studi di Milano Laboratorio di Architettura degli Elaboratori II Corso di Laurea in Informatica, A.A. 2016-2017 Convenzioni di chiamata a procedure Nicola Basilico Dipartimento di Informatica
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
DettagliDal sorgente all eseguibile I programmi Assembly. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione
Dal sorgente all eseguibile I programmi Assembly Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Riferimenti sul Patterson: Cap. 2.10 + Appendice B, tranne B.7
DettagliISA e linguaggio macchina
ISA e linguaggio macchina 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, D1, D2. 1/55
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
DettagliLinguaggio Assembler
1 Linguaggio Assembler Andrea Coccoli A.Coccoli@guest.cnuce.cnr.it aa 2001-2002 1 Indice Linguaggio ad alto livello, linguaggio assembler e linguaggio macchina Il linguaggio assembler MIPS: istruzioni
DettagliMotivazioni. Assembly. Programmazione Assembly. Programmazione Assembly
Assembly Programmazione in linguaggio macchina (o meglio in assembly): programmare utilizzando istruzioni direttamente eseguibili dal processore. Questa parte del corsi si accompagna a lezioni in laboratorio:
DettagliArchitettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico
Architettura degli Elaboratori e Laboratorio Matteo Manzali Università degli Studi di Ferrara Anno Accademico 2016-2017 Rappresentazione dei caratteri Anche i caratteri, come i numeri, sono rappresentati
DettagliCOMPITINO #1 di CALCOLATORI ELETTRONICI 1 del COGNOME NOME
COMPITINO # di CALCOLATORI ELETTRONICI del 03--09 MATRICOLA COGNOME NOME ) [8/40] Trovare il codice assembly MIPS corrispondente dei seguenti micro-benchmark (utilizzando solo e unicamente istruzioni dalla
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
Dettagli5 April LABORATORIO 03 CONTROLLO DEL FLUSSO DI UN PROGRAMMA JUMP ADDRESS TABLE. I. Frosio
5 April 2012 04 LABORATORIO 03 CONTROLLO DEL FLUSSO DI UN PROGRAMMA JUMP ADDRESS TABLE I. Frosio 1 SOMMARIO If... Then... If... Then... Else... For... Break... While... Do Do... While Switch (jump address
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,
DettagliMIPS Instruction Set 1
Laboratorio di Architettura 8 aprile 2011 1 SPIM 2 Architettura Mips 3 Esercitazione SPIM emulatore software architettura MIPS R2000/R3000 debugger + servizi base di sistema operativo realizzazione/verifica
DettagliCalcolatori Elettronici
Calcolatori Elettronici ISA di riferimento: MIPS Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello funzionale Livello logico Livello circuitale Livello del layout istruzioni macchina, ISA Reti logiche:
DettagliIl linguaggio assembly
Il linguaggio assembly Chiamata a procedura PH cap. 2.7 e app. A.6 1 Chiamata a procedura in C int prod (int x, int y) { int out; out = x * y; return out; } f = f + 1; if (f == g) res = prod(f,g); else
DettagliCalcolatori Elettronici Prof. Fabio Roli. Linguaggio Assembly. Capitolo 5. Corso di Laurea di Ingegneria Elettronica
Calcolatori Elettronici Prof. Fabio Roli Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto
DettagliTutorato Architettura degli elaboratori
Tutorato Architettura degli elaboratori Dott. Damiano Braga Before we start.. Orario 22 Marzo h. 14.00-16.00 aula Info2 30 Marzo h. 11.30-13.30 aula F6 12 Aprile h. 14.00-16.00 aula Info1 20 Aprile h.
Dettagli