Instruction set architecture

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Instruction set architecture"

Transcript

1 Architettura dei calcolatori e sistemi operativi Instruction Set Architecture Vittorio Zaccaria Dicembre 2009 Instruction set architecture Programma (C, Fortran, C++) Livello ISA SOFTWARE HARDWARE Eseguito da Processore 1

2 Instruction set architecture Registri e modello di memoria Istruzioni Operazioni Tipi dei dati delle operazioni Indirizzamento Formato in memoria delle istruzioni Stato architetturale del processore Gestione delle eccezioni I/O Gestione della memoria (MMU) Linguaggio assemblatore Anche chiamato assembly Assembly (file di testo) Codici mnemonici Etichette simboliche Assemblatore (e.g. as ) Codice oggetto Linguaggio Macchina (Comunemente binario ) 2

3 Istruzioni (linguaggio macchina) Codice operativo Semplice operazione Complesso (aritmetica+diverse op. in memoria) Operandi Registri (impliciti o espliciti) Memoria (modalita diretta o indiretta) Architetture stack Architetture ad accumulatore Architetture CISC/RISC 0 operandi 1 operando 2 o piu operandi Modello di memoria Architettura target: Memoria indirizzabile i a byte: 24 bit di indirizzo (16MB) 32 bit di indirizzo per architetture successive (68020) Interi rappresentati in complemento a 2 (su 2 o 4 bytes) Operazioni su memoria chiamate anche load (caricamento), store (salvataggio) 3

4 Endianess Ordinamento dei bytes all interno di una word Supponiamo di scrivere all indirizzo 0 la parola da 16 bit: AABB (store.w 0xAABB 0) Bytes effettivamente scritti: AA BB BB AA Big endian (most significant first) Little endian (least significant first) (INTEL) Endianess 68K 4

5 Registri del processore Memorie locali al processore referenziabili direttamente nelle istruzioni in linguaggio macchina R 0 R 1 R n 1 SP PC 16 o 32 bit n registri di uso generale puntatore alla pila contatore di programma parola byte banco di registri registri di uso speciale informazioni di stato Registri 68K MSB parola doppia parola byte L W B LSB D0 Di (0 i 7): registri di dato a 8, 16, 32 bit Ai (0 i 7): resgistri di indirizzo a 16, 32 bit PC: Program Counter a 32 bit (24 bit) SP (= A7): Stack Pointer a 16, 32 bit FP (di solito = A6): Frame Pointer (puntatore all area di attivazione) a 16, 32 bit CCR: Condition Code Register (registro dei bit di esito flag) a 8 bit SR: Status t Register registro di stato (contiene CCR) a16 bit banco di registri di solito è il registro puntatore ad area di attivazione seleziona tra USP e SSP D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3 A4 A5 (FP =) A6 SP = A7 PC registri di dato registri di indirizzo puntatore alla pila utente (USP) registro puntatore puntatore alla pila di sistema (SSP) alla pila registro 24 bit contatore di programma CCR (sottoregistro dei bit di esito) SR registro di stato T bit di traccia C riporto M bit di modo (U / S) V trabocco Z zero I bit di livello priorità (I0, I1, I2) N negativo X estensione bit di esito (o codici di condizione) 5

6 Status register byte di sistema byte utente (registro CCR, 8 bit) T - S - - I 2 I 1 I X N Z V C C = riporto, carry vale 1 se l'ultima istruzione ha generato riporto V = overflow vale 1 se l'ultima istruzione ha generato un valore non rappresentabile Z = zero vale 1 se l'ultima istruzione ha generato il valore zero N = negativo vale 1 se l'ultima istruzione ha generato un valore negativo X = esteso copia del riporto non cambiata da tutte le istruzioni che cambiano C T = traccia causa un interrupt dopo ogni istruzione; usato dai debugger S = system mode le istruzioni privilegiate possono essere eseguite solo quando S=1 I = livello di abilitazione int. sono abilitati solo gli interrupt > I 11 Riporto (carry) e overflow Si ha overflow quando il risultato corretto dell addizione eccede il potere di rappresentazione dei bit a disposizione Si può avere overflow senza generare un riporto Capita quando sommiamo due addendi positivi e otteniamo un risultato negativo Si può generare un riporto senza overflow Capita quando due addendi discordi generano un risultato positivo (si provi a sommare +12 e 7) 12 6

7 Vettore delle eccezioni L eccezione numero 2 e usata da linux per gestire le eccezioni derivate dalla MMU (Page faults) Vettore delle eccezioni (cont.) L eccezione numero 32 e usata da Linux per le system calls 7

8 Istruzioni macchina Istruzioni trattate nel corso Sottoinsieme del linguaggio M68000 con queste caratteristiche: ti funzionalmente completo pochi codici mnemonici indirizzamento ortogonale, per quanto possibile anche istruzioni privilegiate 8

9 Categorie di istruzioni Trasferimento da e verso memoria Aritmetico logiche Salti (condizionati e non) I/O Istruzioni speciali (controllo del processore) Tipi di dato Formato dei dati trattato dalle operazioni: Numerico: Interi (tipicamente in complemento a 2) Floating point Indirizzi Bt Byte (anche caratteri) 9

10 Formato dell istruzione Suddivisione della codifica in memoria della istruzione che specifica: Il codice operativo Indirizzi degli operandi sia in ingresso che in uscita L ISA deve specificare anche i side effects dell istruzione i (d (ad es. effetti su CCR) Istruzioni a lunghezza fissa (e.g. 32 bit) o variabile. (68K) Suffissi per le istruzioni Indica quanti bit usare per gli operandi.b = byte = 8 bit, i meno significativi.w = word = 16bit bit, i meno significativi ifi i(default) f.l = long word = 32 bit MOVE.L #$ , D1 CLR D0 MOVE.B D1, D0 // D0 contiene $ CLR D0 MOVE.W D1, D0 // D0 contiene $ CLR D0 MOVE.L D1, D0 // D0 contiene $

11 Modalita di indirizzamento Cosa e una modalita di indirizzamento Specifica come accedere all operando. E derivabile dalla codifica dell istruzione in linguaggio macchina L operando puo essere acceduto: specificando direttamente il valore dell operando specificando un registro che contiene l operando specificando come ottenere l indirizzo effettivo in memoria dell operando 11

12 Modalita di indirizzamento per 68K Modalità di indirizzamento: dati istruzioni (destinazioni di salto) ha: 8 modi indirizzamento di dati 4 modi di indirizzamento di istruzioni Ortogonalita Istruzione completamente ortogonale: gli operandi possono assumere tutti o quasi i modi di indirizzamento indipendentemente l uno dall altro. Istruzione semi ortogonale: un sottoinsieme degli operandi sono bloccati ad un singolo modo di indirizzamento. Istruzione non ortogonale: l operando puo essere acceduto con un singola modalita di indirizzamento. 12

13 Dati Indirizzamento immediato Il valore dell operando è specificato nella codifica binaria i dell istruzione: i MOVE.L #$ , D1 con costante a 8, 16, 32 bit, specificata in decimale, esadecimale (prefisso $) Dati Indirizzamento a registro Anche detto indirizzamento diretto Specifica direttamente il registro che contiene il valore dell operando: MOVE.L D0, D1 D1 <= [D0] MOVE.L A0, D1 D1 <= [A0] 13

14 Dati Indirizzamento indiretto (da registro) L operando è in memoria. Viene specificato quale registro possiede l indirizzo i dell operando: l istruzione specifica quale registro di indirizzo contiene l indirizzo dell operando in memoria MOVE.L (A0), D1 D1 <= [[A0]] Dati Indiretto con post incremento Come il precedente, ma dopo aver utilizzato l indirizzo, l istruzione incrementa il valore del registro di 1, 2 o 4 a seconda della dimensione dell operando: MOVE.L (A0)+, D1 D1 <= [[A0]] A0 <= [A0]+4 14

15 Dati Indiretto con pre decremento Come il precedente, ma dopo aver utilizzato l indirizzo, l istruzione incrementa il valore del registro di 1, 2 o 4 a seconda della dimensione dell operando: MOVE.L -(A0), D1 A0 <= [A0] - 4 D1 <= [[A0]] Dati Indiretto con indice e spiazzamento Operando in memoria. Indirizzo somma di un registro it (indice) e un spiazzamento (specificato nell istruzione) Offset e 16 bit (dotato di segno in complemento a 2) specificato nell istruzione: MOVE.L 12(A0), D1 D1 <= [12+[A0]] 15

16 Dati Base, indice e spiazzamento Come precedente, ma l indirizzo dell operando in memoria è la somma di un registro it (indice), un indirizzo scalato contenuto in un registro (Di o Ai) e uno spiazzamento a 8 bit. MOVE.L 4(A0,D0.W), D1 D1 <= [4+[A0]+[D0.W]] Dati Assoluto Operando in memoria. L indirizzo è un valore a 16 o 32 bit specificato nell istruzione: i MOVE $1234, D1 D1 <= [$1234] 16

17 Istruzioni Indiretto da registro l istruzione specifica quale registro di indirizzo contiene l indirizzo i da caricare in PC: JMP (A0) PC <= [A0] Istruzioni Indiretto, relativo a PC l istruzione specifica quale registro di indirizzo contiene l indirizzo da caricare in PC: JMP -48(PC) PC <= [PC] In assembly (ove si possono specificare etichette a particolari indirizzi): JMP ETICHETTA PC <= sp. ETICHETTA+ [PC] 17

18 Istruzioni relativo a PC con base Identico a base, indice e spiazzamento (8 bit, cpl2). Indice e PC JMP -48(PC, A0.L) PC <= [PC] + A0.L JMP CONTINUA(A0) PC <= SP. CONTINUA + [PC] + A0.L Istruzioni assoluto Si specifica l indirizzo assoluto (.W,.L). Non viene calcolata l nessuno spiazzamento JSR INDIRIZZO.L PC <= INDIRIZZO.L 18

19 Istruzioni di trasferimento Trasferimento Move Copia src in dest. Aggiorna bit di esito (N,Z) nel CCR: MOVE src, dest Copia src in dest (no A7). NON aggiorna bit di esito nel CCR: MOVEA src, dest 19

20 Uso della pila Lo stack pointer è conservato nel registro A7 2 pile (user e system mode) a seconda del flag S nello status register Push di D0 Pop di D0 MOVE.W D0, -(A7) MOVE.W (A7)+, D0 Trasferimento Multiple Move copia il contenuto di un blocco di registri In memoria. MOVEM D1-D3/A0, -(SP) MOVEM (SP)+, D1-D3/A0 N.b. SP=A7 20

21 Aritmetica e Logica Istruzioni aritmetiche logiche ADD/SUB/AND/OR/CMP: semiortogonalità (s1 o s2 devono essere registri dati) ADD s1, s2 ADDI/SUBI/ANDI/ORI/CMPI: semiortogonalità (s1 deve essere costante) ADDI s1, s2 ADDA/SUBA/CMPA: semiortogonalità (s1 qualsiasi, s2 registro inidirizzo Ai) ADDA s1, s

22 Shift aritmetico e logico (registri) Shift aritmetico: ASL ASR Shift logico: ASL D1, D3 > shift aritmetico D3 a sinistra di D1 posizioni LSL LSR LSL D1, D3 > shiftlogico D3 a sinistra di D1 posizioni Rotate Rotate: ROL ROR ROL D1, D3 > ruota D3 a sinistra di D1 posizioni 22

23 Istruzioni di salto Tipicamente le istruzioni vengono eseguite in sequenza. Possiamo avere 3 casi di deviazione del flusso di controllo: Salto incondizionato (jump o goto) Salto condizionato (se una condizione e verificata salta, altrimenti continua in sequenza) Salta a sub routine (salto incondizionato con salvataggio su pila del PC di ritorno) Due sotto categorie: Istruzioni di salto branch: solo con modalità di indirizzamento relativo a contatore di programma (Bcc, DBcc e BRA) jump: con tutte le modalità di indirizzamento previste per le istruzioni (JMP e JSR) 23

24 Salti condizionati: cc suffisso cc nome (ing.) significato simbolo T true condizione sempre verificata F false condizione mai verificata CC carry clear non c è riporto CS carry set c è riporto NE not equal diversità A B EQ equal uguaglianza A = B VC overflow clear non c è overflow VS overflow set c è overflow PL plus positività o nullità A 0 MI minus negatività (nullità esclusa) A < 0 GE greater or equal maggioranza in senso lato A B LE less or equal minoranza in senso lato A B GT greater maggioranza in senso stretto A > B LT less minoranza in senso stretto A < B Altre istruzioni di controllo e privilegiate 24

25 Altre istruzioni di controllo in modalita utente NOP (No operation) LINK A6, # $8 Stack frame di f(x,y), invocata da g(w,z) loc. var A6=FP A7=SP loc. var Old Frame Pointer Return PC x y. UNLINK A6 Altre istruzioni di controllo in modalita utente Stack frame di f(x,y), invocata da g(w,z) loc. var A6=FP A7=SP loc. var Old Frame Pointer Return PC x y. 25

26 RTS Altre istruzioni di controllo Copia il top item dello stack nel PC Decrementa lo stack TRAP #N Istruzioni privilegiate Chiamata supervisore Copia PC (long) nel SSP Copia SR (word) nel SSP Setta modo S=1 Salta al vettore N della tabella di interruzione Move da e verso SR e USP. Generazione di eccezione nel caso modo = U 26

27 RTE Istruzioni privilegiate Ripristina SR e PC da SSP Genera eccezione nel caso modo=u RESET Resetta il processore STOP #M Setta SR a M (abilita interrupts) Idle in attesa di interrupt come usare SSP e USP Vi sono due stack pointer (USP e SSP). Il simbolo SP è sinonimo di A7 (SP==A7). Quando il processore è in modo U, SP==A7==USP Ricorda: è vietato utilizzare A7 (SP) come destinazione Quando il processore è in modo S, SP==A7==SSP è consentito utilizzare A7 (SP) come destinazione è consentito nominare USP e corrisponde allo user stack pointer anche se il processore e in modo S 54 27

28 istruzioni di ingresso e uscita Non ci sono istruzioni specifiche di ingresso e uscita Memory mapped I/O I registri di interfaccia sono mappati in memoria le istruzioni di ingresso e uscita (in altri processori definite come IN e OUT) in sono delle MOVE privilegiate 55 Lunghezza e formato istruzioni 28

29 Architettura 68K considerata Dimensione word di memoria: 16 bit Dimensione della costante: 8, 16 o 32 bit Dimensione dello spiazzamento: 8 o 16 bit Dimensione dell indirizzo di memoria: 16 o 32 bit L istruzione è sempre costituita da: Una word di codice operativo Una o piu word aggiuntive o di estensione (per costante, indirizzo o spiazzamento) Dimensione i massima: 5 word Il codice operativo occupa una frazione breve della word di codice operativo 57 Istruzioni di trasferimento Formato generale MOVE.B #$01, Da codice operativo MOVE.L #$ , Da modo 1 reg. 1 / aux modo 2 reg. 2 / aux MOVE immed. byte di registro a #0001 hex MOVE immed. long di registro a #0123 hex #4567 hex 58 29

30 Istruzioni di trasferimento MOVE.X $01 (Aa, Db.Yb), $12 (Ac, Ad.Yd) MOVE.X bas ind spi A di registro c Y b D b 01 hex Y d A d 12 hex 8 bit 59 Istruzioni di trasferimento MOVE.W #$0123, $456789AB.L MOVE immed. word assoluto long #0123 hex 4567 hex 89AB hex 60 30

31 Istruzioni di controllo istruzione (all indirizzo 0) parola di cod. op parole aggiuntive dest parole totali JMP (A1) BRA $12 (PC) 8 bit Bcc $12 (PC) spiazzamento BRA $1234 (PC) 16 bit. di s Bcc $1234 (PC) 1 parola aggiuntiva JMP $12 (PC, A1) Base + sp. (8 bit) (parola agg.) JMP $1234.W JMP $ L Controllo 31

32 Riassunto istruzioni istruzione nome funzionamento in rtl MOVE.X s, d MOVEA.Y s, Ai MOVEM.Y s, d trasferimento d, esiti [s] trasferimento Ai [s] trasferimento di blocco d [blocco s] blocco COME DENOTARE IL BLOCCO DI REGISTRI: esempi D1-D3/A2-A5vale a dire: D1, D2, D3, A2, A3, A4, A5 D1/D3/A2/A5 vale a dire: D1, D3, A2, A5 D1-D3/A4 vale a dire: D1, D2, D3 e A4 D1-D3/D5-D7/A1 vale a dire: D1, D2, D3, D5, D6, D7, A1 cioèconda-dbsidenotal intervallodiregistridadaadb(aebinclusi),mentreconda/dbsidenotanosoloidue registri Da e Db; similmente per i registri di indirizzo COME FUNZIONA MOVEM con modalità di indirizzamento i ad autodecremento, t MOVEM lavora sul blocco di registri i esaminandolo da destra verso sinistra l uso tipico della MOVEM è quello di impilare i registri sullo stack, per salvarne il contenuto in una chiamata a sottoprogramma. Ci deve quindi essere anche la MOVEM opposta che spila i registri MOVEM.Y D1-D3/A4, (SP) impila il blocco di registri (A4, D3, D2, D1) MOVEM.Y (SP) +, D1-D3/A4 spila il blocco di registri (D1, D2, D3, A4) 64 32

33 mod o esempio di istruzione MOVEs, d di costante (o immediato) funzionamento in RTL d [s] si immagini di porre d = Dd (0 d 7) 1 MOVE.X #costante, Dd d X costante X di registro MOVE.X 2 MOVE.X indiretto da registro Di, Dd Ai, Dd d X [Di] X d X [Ai] X 3 MOVE.X (Ai), Dd d X [[Ai]] X con autoincremento (indiretto da registro con autoincremento posticipato) 4 MOVE.X (Ai) +, Dd d X [[Ai]] X e poi Ai [Ai] +1 o 2 o 4 con autodecremento (indiretto da registro con autodecremento anticipato) 5 MOVE.X (Ai), Dd con indice e spiazzamento Ai [Ai] 1 o 2 o 4 e poi d X [[Ai]] X 6 MOVE.X spiazz. 16 (Ai), Dd d X [spiazz. 16 +[Ai]] X con base indice e spiazzamento MOVE.X 7 MOVE.X assoluto (o diretto) spiazz. 8 (Ai, Db.Y), Dd spiazz. 8 (Ai, Ab.Y), Dd d X [spiazz. 8 +[Ai] +[Db] Y ] X d X [spiazz. 8 +[Ai] +[Ab] Y ] X 8 MOVE.X indirizzo.y, Dd d X [indirizzo Y ] X istruzione nome funzionamento in RTL ADD.X s, d d X, esiti [s] X +[d] X ADDI.X #cost., d addizione (naturale / comp. a due) d X, esiti cost. X +[d] X ADDA.Y s, Ai Ai Y [s] Y +[Ai] Y SUB.X SUBI.X SUBA.Y s, d #cost., d s, Ai sottrazione (naturale / comp. a due) d X, esiti d X, esiti Ai Y [d] X [s] X [d] X cost. X [Ai] Y [s] Y AND.X ANDI.X s, d #cost., d d X, esiti [s] X [d] X prodotto logico bit a bit (bitwise) d X, esiti cost. X [d] X OR.X ORI.X s, d #cost., d somma logica bit a bit (bitwise) d X, esiti d X, esiti [s] X [d] X cost. X [d] X CMP.X s 1, s 2 CMPI.X #cost., s 2 CMPA.Y s 1, Ai confronto (naturale / comp. a due) esiti esiti esiti [s 2 ] X [s 1 ] X [s 2 ] X cost. X [Ai] Y [s 1 ] Y ASR.X ASL.X LSR.X LSL.X ROR.X ROL.X s, d s, d s, d s, d s, d s, d scorrimento aritmetico a dx scorrimento aritmetico a sx scorrimento logico a dx scorrimento logico a sx rotazione a dx rotazione a sx d X, esiti scorri arit. [d] X dx [s] pos. d X, esiti scorri arit. [d] X sx [s] pos. d X, esiti scorri log. [d] X dx [s] pos. d X, esiti scorri log. [d] X sx [s] pos. d X, esiti ruota [d] X dx [s] pos. d X, esiti ruota [d] X sx [s] pos. TST.X s esame di parola esiti esamina [s] X NEG.X d complemento a due d X, esiti complementa a due [d] X NOT.X d inversione logica (bitwise) d X, esiti inverti logicamente [d] X CLR.X d azzeramento d X, esiti 0 33

34 istruzioni di salto 2 SALTA dest. (Aj ) spiazz. (PC) etichett ta spiazz. (PC, Dq.W/L) etichetta (Dq.W/L) spiazz. (PC, Aq.W/L) etichetta (Aq.W/L) Indirizz o.w/l JMP JSR dest. = BRA Bcc BSR DBcc DBR A dest. = vietato vietato 67 istruzioni di salto in dettaglio istruzione nome funzionamento in RTL JMP dest. salto incondizionato PC i.e. dest. JSR dest. BRAdest. (equivale a BT) Bcc dest. BSR dest. DBcc dest. DBRA dest. (equivale a DBF) salto (incondizionato) a routine SP [SP] 4 [SP] [PC] PC i.e. dest. salto incondizionato PC i.e. dest. salto condizionato (cond. cc) salto (incondizionato) a routine salto condizionato con decremento (cond. cc) salto incondizionato con decremento se cc è verificata, allora PC i.e. dest. altrimenti PC [PC] + 4 SP [SP] 4 [SP] [PC] PC i.e. dest. se cc non è verificata, allora Di [Di] 1 se [Di] 1, allora PC i.e. dest. altrimenti PC [PC] + 4 altrimenti PC [PC] + 4 Di [Di] 1 se [Di] 1, allora PC i.e. dest. altrimenti PC [PC] + 4 fine 34

35 Altre istruzioni di controllo istruzione nome funzionamento in RTL NOP nessuna operazione niente LINK Ai, #cost. (di solito i =, cioè il puntatore all area di attivazione o frame pointer FP coincide con A6) UNLK Ai (idem, di solito i = 6) RTS TRAP #cost. (0 cost. 15) collegamento a routine (creazione area di attivazione) rilascio di routine (eliminazione di area di attivazione) rientra da routine chiamata a supervisore (SVC) SP [SP] 4 [SP] [Ai] [Ai] [SP] SP [SP] + cost. SP [Ai] Ai [[SP]] SP [SP] + 4 PC [[SP]] SP [SP] + 4 SSP [SSP] 4 [SSP] [PC] SSP [SSP] 2 [SSP] [SR] bit M di SR 1 (attiva modo S) PC [base tab. + cost.] (cioè PC vettore di interruzione) 69 MOVEs, d istruzioni privilegiate istruzione nome funzionamento in RTL ANDI#cost, SR ORI#cost, SR RTE RESET STOP #cost. trasferimento di registro speciale (SP, SR, USP) mascheratura di registro di stato SR rientro da eccezione (= rientro da interruzione) ripristino del processore arresto del processore e attesa di richiesta di interruzione se bit M di SR = 1 (modo S), allora d [s] altrimenti esegui TRAP #cod_istr_priv se bit M di SR = 1 (modo S), allora SR cost. o [SR] altrimenti esegui TRAP #cod_istr_priv se bit M di SR = 1 (modo S), allora SR [[SSP]] SSP [SSP] + 2 PC [[SSP] SSP [SSP] + 4 altrimenti esegui TRAP #cod_istr_priv se bit M di SR = 1( (modo S), allora attiva la linea RESET del bus altrimenti esegui TRAP #cod_istr_priv se bit M di SR = 1 (modo S), allora SR cost. attendi richiesta interruzione altrimenti esegui TRAP #cod_istr_priv 35

36 direttive all assemblatore 1 Etichetta Direttiva Argomento / i Funzionamento N EQU val INIZIO ORG ind DATO DC.X val1, val2, BLOCCO DS.X dim FINE Vittorio Zaccaria END Dicembre etichetta 2009 Dichiarazione di simbolo. Definisce l etichetta N e le assegna il valore val. Non genera codice macchina, si limita a definire il simbolo N. Si possono usare più direttive EQU nel programma, una per ogni simbolo che si desidera definire. Dichiarazione di indirizzo di impianto del segmento di codice, dati, pila, ecc. Definisce l etichetta INIZIO, le assegna l indirizzo ind e specifica che il codice, o i dati, o lo spazio pila, ecc, generato in seguito inizia all indirizzo ind. Non genera codice macchina, si limita a definire dove impiantare il codice, i dati, la pila, ecc, seguente. Si possono usare più direttive ORG nel programma, una per ogni segmento che si desidera impiantare. Dichiarazione e inizializzazione di dato. Definisce il simbolo DATO associandolo alla cella di memoria corrente, che inizialmente avrà valore val1; prosegue inizializzando anche le parole successive con val2, ; è consentito anche specificare una stringa (vista come successione di byte) tra apici semplici, per esempio `alfa. Genera codice sotto forma di dati preinizializzati. Ammette segnale di dimensione di parola X. Si possono usare più direttive DC.X nel programma. Dichiarazione di blocco di dati. Definisce il simbolo BLOCCO associandolo alla cella di memoria corrente, e riserva il blocco di parole di dimensione dim., ma non ne preinizilalizza il contenuto. Ammette segnale di dimensione di parola X. Si possono usare più direttive DS.X nel programma. Chiusura di programma. Termina il codice del programma e specifica tramite l argomento etichetta l indirizzo iniziale da dove partire con l esecuzione. Non genera codice macchina, si limita a specificare al caricatore l indirizzo di partenza del programma. Nel programma si può usare una sola direttiva END 36

Istruzioni di trasferimento. Vittorio Zaccaria Dicembre 2009

Istruzioni di trasferimento. Vittorio Zaccaria Dicembre 2009 Istruzioni di trasferimento Trasferimento Move Copia src in dest. Aggiorna bit di esito (N,Z) nel CCR: MOVE src, dest Copia src in dest (no A7). NON aggiorna bit di esito nel CCR: MOVEA src, dest Uso della

Dettagli

Il Livello ISA Instruction Set Level Architecture. Set istruzioni Motorola Caratteristiche del 68000: da ricordare i registri

Il Livello ISA Instruction Set Level Architecture. Set istruzioni Motorola Caratteristiche del 68000: da ricordare i registri Il Livello ISA Instruction Set Level Architecture Set istruzioni Motorola 68 Caratteristiche del 68: da ricordare i registri Il 68 ha 8 registri di dato (D-D7) e 8 registri di indirizzo (A-A7) I registri

Dettagli

Caratteristiche del 68000: da ricordare. Caratteristiche del 68000: da ricordare i registri. Il Livello ISA Instruction Set Level Architecture

Caratteristiche del 68000: da ricordare. Caratteristiche del 68000: da ricordare i registri. Il Livello ISA Instruction Set Level Architecture Caratteristiche del 68: da ricordare i registri Il Livello ISA Instruction Set Level Architecture Set istruzioni Motorola 68 Il 68 ha 8 registri di dato (D-D7) e 8 registri di indirizzo (A-A7) I registri

Dettagli

Introduzione a ISA. Il Livello ISA Instruction Set Level Architecture. Livello ISA e Motorola 68000: introduzione. Che cosa descrive ISA

Introduzione a ISA. Il Livello ISA Instruction Set Level Architecture. Livello ISA e Motorola 68000: introduzione. Che cosa descrive ISA Introduzione a ISA Il Livello ISA Instruction Set Level Architecture Livello ISA e Motorola 68000: introduzione Livello ISA (Instruction Level Architecture): insieme delle istruzioni (instruction set)

Dettagli

CORSO DI INFORMATICA 2 POLITECNICO DI MILANO

CORSO DI INFORMATICA 2 POLITECNICO DI MILANO CORSO DI INFORMATICA 2 POLITECNICO DI MILANO MATERIALE DIDATTICO DI SUPPORTO VESIONE RIDOTTA DEL LINGUAGGIO MACCHINA DEL PROCESSORE MOTOROLA 68000 A USO DEL CORSO DI INFORMATICA 2 a cura di prof. LUCA

Dettagli

Il linguaggio macchina

Il linguaggio macchina Il linguaggio macchina Un istruzione in linguaggio macchina è, sul piano astratto, una tripla strutturata: i = (f, P1, P2) ove: f F insieme dei codici operativi del processore, cioè delle operazioni elementari

Dettagli

AXO Achitettura dei Calcolatori e Sistema Operativo. Instruction Set Architecture (ISA) e 68000

AXO Achitettura dei Calcolatori e Sistema Operativo. Instruction Set Architecture (ISA) e 68000 AXO Achitettura dei Calcolatori e Sistema Operativo Instruction Set Architecture (ISA) e 68000 introduzione a ISA ISA - Instruction Set Architecture insieme delle istruzioni (instruction set) che possono

Dettagli

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

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

Dettagli

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

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

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

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Introduzione al linguaggio macchina. Istruzione l/m

Introduzione al linguaggio macchina. Istruzione l/m Corso di Calcolatori Elettronici I Introduzione al linguaggio macchina Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

Dettagli

Invocazione di funzioni. Passaggio parametri Creazione record di attivazione (anche chiamato stack frame o area di attivazione)

Invocazione di funzioni. Passaggio parametri Creazione record di attivazione (anche chiamato stack frame o area di attivazione) Invocazione di funzioni Passaggio parametri Creazione record di attivazione (anche chiamato stack frame o area di attivazione) Passaggio parametri F(a,b,c) { } Z = g(x, y, z) Record di attivazione o registri

Dettagli

Istruzioni di trasferimento dati

Istruzioni di trasferimento dati Istruzioni di trasferimento dati Leggere dalla memoria su registro: lw (load word) Scrivere da registro alla memoria: sw (store word) Esempio: Codice C: A[8] += h A è un array di numeri interi Codice Assembler:

Dettagli

Programmazione in linguaggio assembly per architetture Intel 8088

Programmazione in linguaggio assembly per architetture Intel 8088 Programmazione in linguaggio assembly per architetture Intel 8088 Marco Di Felice 1 Università of Bologna Dipartimento di Scienze dell Informazione Corso di Architettura degli Elaboratori mail: difelice@cs.unibo.it

Dettagli

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

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano L16-20 1/29 Linguaggio

Dettagli

Architettura dei Calcolatori elettronici

Architettura dei Calcolatori elettronici Architettura dei Calcolatori elettronici CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Dal punto di vista architetturale un calcolatore

Dettagli

Fetch Decode Execute Program Counter controllare esegue prossima

Fetch Decode Execute Program Counter controllare esegue prossima Stored Program Istruzioni sono stringhe di bit Programmi: sequenze di istruzioni Programmi (come i dati) memorizzati in memoria La CPU legge le istruzioni dalla memoria (come i dati) Ciclo macchina (ciclo

Dettagli

Introduzione al linguaggio macchina

Introduzione al linguaggio macchina Corso di Calcolatori Elettronici I Introduzione al linguaggio macchina Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

Dettagli

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

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):

Dettagli

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

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano L16-20 1/29 Linguaggio

Dettagli

Istruzioni di controllo del flusso

Istruzioni di controllo del flusso Istruzioni di controllo del flusso Il flusso di esecuzione è normalmente sequenziale Le istruzioni di controllo cambiano la prossima istruzione da eseguire Istruzioni di salto condizionato branch if equal

Dettagli

Architettura del set di istruzioni (ISA)

Architettura del set di istruzioni (ISA) Architettura del set di istruzioni (ISA) Calcolatori Elettronici-Ingegneria Telematica 1 Instruction Set Architecture Software Hardware Application (Netscape) Compiler Assembler Processor Memory Digital

Dettagli

Fondamenti di Informatica B

Fondamenti di Informatica B Fondamenti di Informatica B Lezione n. 11 Alberto Broggi Gianni Conte A.A. 2005-2006 Fondamenti di Informatica B Lezione n.11n ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO

Dettagli

ISA e linguaggio assembler

ISA e linguaggio assembler ISA e linguaggio assembler Prof. Alberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1, D2. 1/39 Introduzione

Dettagli

Modi di indirizzamento del processore MC68000 (parte prima)

Modi di indirizzamento del processore MC68000 (parte prima) Corso di Calcolatori Elettronici I Modi di indirizzamento del processore MC68000 (parte prima) Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea

Dettagli

Modi di indirizzamento del processore MC68000 (parte prima)

Modi di indirizzamento del processore MC68000 (parte prima) Corso di Calcolatori Elettronici I Modi di indirizzamento del processore MC68000 (parte prima) Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Modello di programmazione

Dettagli

Architettura di una CPU

Architettura di una CPU Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1

Dettagli

Modi di indirizzamento parte 1. Modello di programmazione del processore MC68000

Modi di indirizzamento parte 1. Modello di programmazione del processore MC68000 Corso di Calcolatori Elettronici I A.A. 2010-2011 Modi di indirizzamento parte 1 Lezione 21 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea in

Dettagli

Strutture di controllo del flusso di esecuzione in assembler. MC68000: Status Register

Strutture di controllo del flusso di esecuzione in assembler. MC68000: Status Register Corso di Calcolatori Elettronici I A.A. 2010-2011 Strutture di controllo del flusso di esecuzione in assembler Lezione 25 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di

Dettagli

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

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F. Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/32 Linguaggio

Dettagli

Il linguaggio macchina

Il linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/33 Linguaggio

Dettagli

Linguaggio macchina e register file

Linguaggio macchina e register file Linguaggio macchina e register file Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4,

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

ISA (Instruction Set Architecture) della CPU MIPS

ISA (Instruction Set Architecture) della CPU MIPS Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Uniersità degli Studi di Milano L16-20 1 Linguaggio macchina

Dettagli

Modi di indirizzamento del processore MC68000 parte 1

Modi di indirizzamento del processore MC68000 parte 1 Corso di Calcolatori Elettronici I Modi di indirizzamento del processore MC68000 parte 1 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle

Dettagli

La struttura delle istruzioni elementari: il linguaggio Macchina. Sommario

La 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

Dettagli

Fondamenti di programmazione in linguaggio assembly del Motorola 68000

Fondamenti di programmazione in linguaggio assembly del Motorola 68000 Fondamenti di programmazione in linguaggio assembly del Motorola 68000 Daniele Paolo Scarpazza daniele.scarpazza@elet.polimi.it Politecnico di Milano Ultimo aggiornamento: 10 Maggio 2005 Bibliografia Libro

Dettagli

Modi di indirizzamento del processore MC68000 (parte prima)

Modi di indirizzamento del processore MC68000 (parte prima) Corso di Calcolatori Elettronici I A.A. 2011-2012 Modi di indirizzamento del processore MC68000 (parte prima) Lezione 21 Prof. Antonio Pescapè Università degli Studi di Napoli Federico II Facoltà di Ingegneria

Dettagli

Introduzione alla famiglia Motorola 68000

Introduzione alla famiglia Motorola 68000 Introduzione alla famiglia Motorola 68000 Maurizio Rebaudengo Matteo Sonza Reorda Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Storia Introduzione Registri interni Modi di indirizzamento

Dettagli

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando Un altro tipo di indirizzamento L insieme delle istruzioni (3) Architetture dei Calcolatori (lettere A-I) Tipi di indirizzamento visti finora Indirizzamento di un registro Indirizzamento con registro base

Dettagli

Rappresentazione dell informazione

Rappresentazione dell informazione Rappresentazione dell informazione Codifica dei numeri Rappresentazioni in base 2, 8, 10 e 16 Rappresentazioni M+S, C1 e C2 Algoritmi di conversione di base Algoritmi di somma, moltiplicazione e divisione

Dettagli

Alcuni programmi assembly MC68000

Alcuni programmi assembly MC68000 Corso di Calcolatori Elettronici I Alcuni programmi assembly MC68000 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

Dettagli

Modi di indirizzamento

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

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA Lezione n.11 n.11 Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di base relativi

Dettagli

Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo

Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Istruzioni del processore Abbiamo visto in precedenza alcuni esempi di istruzioni

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Il linguaggio assembly

Il linguaggio assembly Il linguaggio assembly Introduzione al linguaggio macchina Indice Che cos è l assembly Elementi del linguaggio Memoria di programma Registri interni e di I/O Registri particolari Rappresentazione dell

Dettagli

Lezione 18 Il Set di Istruzioni (4)

Lezione 18 Il Set di Istruzioni (4) Lezione 18 Il Set di Istruzioni (4) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Un richiamo su: Operazioni aritmetiche (add

Dettagli

Manualino minimale MIPS

Manualino minimale MIPS Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Manualino minimale MIPS Marco Tarini Operazioni aritmetiche Nome Comando completo Esempio Sintassi (es) Significato Semantica

Dettagli

Vari modi di specificare l indirizzo degli operandi

Vari modi di specificare l indirizzo degli operandi Modi di indirizzamento Capitolo 11 Vari modi di specificare l indirizzo degli operandi Immediato Diretto Indiretto Registro Registro indiretto Spiazzamento Pila 1 Indirizzamento immediato L operando è

Dettagli

L insieme delle istruzioni (6)

L insieme delle istruzioni (6) L insieme delle istruzioni (6) Architetture dei Calcolatori (lettere A-I) Alcune note conclusive I due principi dell architettura a programma memorizzato Uso di istruzioni indistinguibili dai dati Uso

Dettagli

Architettura di un calcolatore: Introduzione parte 2

Architettura di un calcolatore: Introduzione parte 2 Corso di Calcolatori Elettronici I Architettura di un calcolatore: Introduzione parte 2 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle

Dettagli

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

Il linguaggio Assembly. Architettura degli Elaboratori e delle Reti Turno I Il linguaggio Assembly Architettura degli Elaboratori e delle Reti Turno I Alberto Borghese Università degli Studi di Milano Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it 1 Linguaggio

Dettagli

Istruzioni assembler Istruzione N Registri

Istruzioni assembler Istruzione N Registri Istruzioni assembler Istruzione N Registri Aritmetica add a, b, c a = b+c addi a, b, num a = b + sub a, b, c a = b - c mul a, b, c a = b*c div a, b, c a = b/c utilizzati Descrizione 3 Somma. Somma b e

Dettagli

Introduzione. Architettura

Introduzione. Architettura Introduzione Questo simulatore fornisce una versione semplificata dell assemblatore sfruttato dal processore 8088 trasformando il codice inserito in input in codice eseguibile e ne simula l esecuzione

Dettagli

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

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da

Dettagli

Elettronica dei Sistemi Programmabili A.A Microcontrollori. Architettura degli ARM CORTEX TM -M0 (1a parte / ii)

Elettronica dei Sistemi Programmabili A.A Microcontrollori. Architettura degli ARM CORTEX TM -M0 (1a parte / ii) Elettronica dei Sistemi Programmabili A.A. 2013-2014 Microcontrollori Architettura degli ARM CORTEX TM -M0 (1a parte / ii) Sommario Uso delle flag nei salti Registri speciali IPSR EPSR PRIMASK CONTROL

Dettagli

Sottoprogrammi in linguaggio assembly del Motorola 68000

Sottoprogrammi in linguaggio assembly del Motorola 68000 Sottoprogrammi in linguaggio assembly del Motorola 68000 Daniele Paolo Scarpazza daniele.scarpazza@elet.polimi.it Politecnico di Milano Ultimo aggiornamento: 10 Maggio 2005 Bibliografia Sezioni 4.9, 5.6

Dettagli

Architetture dei Sistemi Elettronici

Architetture dei Sistemi Elettronici Architetture dei Sistemi Elettronici Roberto Roncella 15. Introduzione al linguaggio assembly Il linguaggio assembly È lo strumento di programmazione più vicino alla realtà fisicaelettronica di un elaboratore

Dettagli

Architettura e funzionamento del calcolatore

Architettura e funzionamento del calcolatore FONDAMENTI DI INFORMATICA Prof PIER LUCA MONTESSORO Università degli Studi di Udine Architettura e funzionamento del calcolatore Modello di calcolatore Si farà uso di un modello semplificato di elaboratore

Dettagli

ISA (Instruction Set Architecture) della CPU MIPS32

ISA (Instruction Set Architecture) della CPU MIPS32 Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS32 Prof. Federico Pedersini Dipartimento di Informatica Uniersità degli Studi di Milano L16-20 1 Linguaggio macchina

Dettagli

Famiglia dei processori INTEL

Famiglia dei processori INTEL Famiglia dei processori INTEL 1975 2002 8080-8086 - 80286-80386 - 80486 - Pentium - Pentium II-III-IV - Itanium Compatibilità del SW (assemby) 8086 80286 80386 80486 Pentium Pentium III Perché studiare

Dettagli

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

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche 3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni

Dettagli

Esercizio riassuntivo di traduzione e assemblaggio da linguaggio C ad assembly Motorola

Esercizio riassuntivo di traduzione e assemblaggio da linguaggio C ad assembly Motorola Esercizio riassuntivo di traduzione e assemblaggio da linguaggio C ad assembly Motorola 68000. Ultima modifica: 10 Maggio 2005. Autore: Daniele Paolo Scarpazza. Per segnalare eventuali difficoltà o problemi,

Dettagli

Architettura del processore MC 68000

Architettura del processore MC 68000 Architettura del processore MC 68000 Registri generali D0-D7, A0-A7 PC 16 x 32 ALU 32 32 TEMP 32 EAR IR Control unit 16 SR 8 8 CCR Interfaccia memoria ed I/O Bus di memoria e di I/O Modello di programmazione

Dettagli

Subroutine in linguaggio macchina: collegamento e passaggio dei parametri. Sottoprogrammi: richiami

Subroutine in linguaggio macchina: collegamento e passaggio dei parametri. Sottoprogrammi: richiami Corso di Calcolatori Elettronici I Subroutine in linguaggio macchina: collegamento e passaggio dei parametri Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso

Dettagli

Subroutine in linguaggio macchina: collegamento e passaggio dei parametri

Subroutine in linguaggio macchina: collegamento e passaggio dei parametri Corso di Calcolatori Elettronici I Subroutine in linguaggio macchina: collegamento e passaggio dei parametri Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso

Dettagli

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie

Dettagli

Assembly. Modello x86

Assembly. Modello x86 Assembly Modello x86 1 Il microprocessore Un MICROPROCESSORE è un circuito integrato dotato di una struttura circuitale in grado di attuare un prefissato SET di ISTRUZIONI 2 Caratteristiche del microprocessore

Dettagli

Modi di indirizzamento

Modi di indirizzamento Vari modi di specificare l indirizzo degli operandi Modi di indirizzamento Capitolo 11 Immediato Diretto Indiretto Registro Registro indiretto Spiazzamento Pila 1 2 Indirizzamento immediato L operando

Dettagli

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin ORGANIZZAZIONE DEL CALCOLATORE:

Dettagli

Università degli Studi di Milano

Università degli Studi di Milano Università degli Studi di Milano Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche Lezione 2 Struttura e set di istruzioni della CPU LC-2 NELLO SCARABOTTOLO Architetture e reti logiche

Dettagli

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU: Struttura e Funzione del Processore Capitolo 12 Struttura CPU Compiti CPU: Prelevare istruzioni Interpretare istruzioni Prelevare dati Elaborare dati Scrivere (memorizzare) dati 1 CPU con bus di sistema

Dettagli

L'INDIRIZZAMENTO NEL PROCESSORE MC PARTE 1 -

L'INDIRIZZAMENTO NEL PROCESSORE MC PARTE 1 - L'INDIRIZZAMENTO NEL PROCESSORE MC 68000 - PARTE 1 - CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Modi di indirizzamento Tecniche di indirizzamento:

Dettagli

programma in linguaggio C esercizio n. 5 linguaggio macchina prima parte codifica in linguaggio macchina

programma in linguaggio C esercizio n. 5 linguaggio macchina prima parte codifica in linguaggio macchina esercizio n. 5 linguaggio macchina prima parte codifica in linguaggio macchina Si deve tradurre in linguaggio macchina simbolico (linguaggio assemblatore) 68000 il programma (main e funzione funz) riportato

Dettagli

FONDAMENTI DI INFORMATICA Lezione n. 11

FONDAMENTI DI INFORMATICA Lezione n. 11 FONDAMENTI DI INFORMATICA Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di

Dettagli

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio AXO Architettura dei Calcolatori e Sistema Operativo processo di assemblaggio linguaggio assembly è il linguaggio simbolico che consente di programmare un calcolatore utilizzando le istruzioni del linguaggio

Dettagli

Istruzioni e linguaggio macchina

Istruzioni e linguaggio macchina Istruzioni e linguaggio macchina I linguaggi macchina sono composti da istruzioni macchina, codificate in binario, con formato ben definito processori diversi hanno linguaggi macchina simili scopo: massimizzare

Dettagli

Corso di Architettura (Prof. Scarano) 10/05/2002

Corso 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

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Il linguaggio assemblativo MIPS (1) Istruzioni di ALU: operazioni ed operandi Trasferimenti tra memoria e CPU Vettori (1) Le costanti Livelli di astrazione s o f t w a r e H W Linguaggio

Dettagli

Informazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione

Informazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione Informazioni varie Lezione 18 Il Set di Istruzioni (5) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno La lezione di martedì 20 maggio (9-12) non si tiene

Dettagli

MECCANISMI PER IL PASSAGGIO DEI PARAMETRI

MECCANISMI PER IL PASSAGGIO DEI PARAMETRI MECCANISMI PER IL PASSAGGIO DEI PARAMETRI CALCOLATORI ELETTRONICI I CdL Ingegneria Elettronica (A-I) DIS - Università degli Studi di Napoli Federico II Parametri in registri Realizzare un programma che

Dettagli

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

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

Dettagli

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I A.A. 2010-2011 Architettura di un calcolatore: introduzione Lezione 18 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso

Dettagli

LABORATORIO DI SISTEMI

LABORATORIO DI SISTEMI ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 2 LABORATORIO DI SISTEMI OGGETTO: 1) Scrivere un programma, in linguaggio Assembly, per una CPU Intel 8086, che sommi due numeri (var_1,

Dettagli

Architettura degli elaboratori

Architettura degli elaboratori Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori Programmazione in assembly MIPS Marco Tarini Dipartimento di Scienze Teoriche e Applicate

Dettagli

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

Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini [http://www.di.univaq.it/muccini/labarch] Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a. 2006-2007 Docente: H. Muccini Lecture 12: - Numeri con segno -Somma e sottrazione

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC

Dettagli

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I A.A. 2012-2013 Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e

Dettagli

L'architettura del processore MIPS

L'architettura del processore MIPS L'architettura del processore MIPS Piano della lezione Ripasso di formati istruzione e registri MIPS Passi di esecuzione delle istruzioni: Formato R (istruzioni aritmetico-logiche) Istruzioni di caricamento

Dettagli

ORG $8800 N DC 9,11,1,4,5,7,2

ORG $8800 N DC 9,11,1,4,5,7,2 ESEMPI DI ASSEMBLY M68000 Esercizio 1 Scrivere un programma non segmentato in linguaggio macchina (simbolico), con sintassi nativa M6800, che rispetti la seguente specifica. Dati 7 numeri di tipo Word,

Dettagli

ISA e linguaggio assembler

ISA e linguaggio assembler ISA e linguaggio assembler Prof. Alberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1, D2. 1/57 Introduzione

Dettagli

Architettura di un calcolatore: introduzione

Architettura di un calcolatore: introduzione Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie

Dettagli

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

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

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

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

Dettagli