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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 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 di dato sono indifferenziati tra loro Il registro A7 si usa convenzionalmente come Stack Pointer (SP) Lo Stack Pointer punta sempre alla prima cella piena della pila e la pila cresce dal basso (indirizzi alti della memoria) verso l alto (indirizzi bassi della memoria) Per inserire un nuovo dato in pila (push): Decremento dello SP Scrittura del dato a quell indirizzo di memoria Per estrarre un dato dalla pila (pop): Lettura del dato dall indirizzo di memoria definito dallo SP Incremento dello SP Il registro A6 si può usare convenzionalmente come Frame Pointer (FP), cioè come riferimento all area di attivazione di un sottoprogramma Il Program Counter è di 4 bit - - Pag.

2 Caratteristiche del 68: da ricordare i suffissi di dimensione Molte istruzioni 68 e alcuni modi di indirizzamento possono avere un suffisso (.X) che indica quanti bit usare per gli operandi.b = byte = 8 bit, i meno significativi.w = word = 6 bit, i meno significativi (default).l = long word = 3 bit Esempio con istruzioni MOVE.L #$345678, D CLR D MOVE.B D, D * D contiene $78 CLR D MOVE.W D, D * D contiene $5678 CLR D MOVE.L D, D * D contiene $ Istruzioni: sottoinsieme di M68 Sottoinsieme del linguaggio M68 con queste caratteristiche: Funzionalmente completo Pochi codici mnemonici Indirizzamento ortogonale, per quanto possibile Anche istruzioni privilegiate Classi di istruzioni: trasferimento da e in memoria e tra registri aritmetico-logiche modifica del flusso di esecuzione: salto: incondizionato, condizionato, a sottoprogramma trasferimento dati da e in periferica (istruzioni di I/O) istruzioni speciali (controllo) Pag.

3 Istruzioni e ortogonalità rispetto al modo di indirizzamento () Ortogonalità: possibilità di utilizzare, per gli argomenti delle istruzioni (operandi), i modi di indirizzamento disponibili liberamente (qualsiasi modo di indirizzamento ) e indipendentemente tra i due argomenti Tipi di ortogonalità: Completamente ortogonale Semiortogonale Non ortogonale E un modello di classificazione a cui non sempre aderisce il set istruzioni di un processore Anche la classificazione applicata al M68 è un po forzata ma utile didatticamente per la programmazione assembler Istruzioni e ortogonalità rispetto al modo di indirizzamento () Istruzione completamente ortogonale: istruzione binaria: i due argomenti possono assumere tutti o quasi i modi di indirizzamento indipendentemente l uno dall altro istruzione unaria: l argomento può assumere tutti o quasi i modi di indirizzamento istruzione nullaria: ovvio, benché banale Istruzione semiortogonale: nell istruzione binaria un argomento è bloccato a un modo di indirizzamento preciso, l altro può assumere tutti o quasi i modi di indirizzamento Istruzione non ortogonale: istruzione binaria: i due argomenti sono bloccati a uno solo o a pochissimi modi di indirizzamento istruzione unaria: l argomento è bloccato a uno solo o a pochissimi modi di indirizzamento Pag. 3 3

4 Istruzioni di trasferimento () MOVE s,d Istruzione che consente di copiare un valore da registro o locazione di memoria a un altro registro o locazione di memoria Aggiorna i bit di esito N e Z MOVEA Istruzione di copia di un indirizzo in un registro di indirizzo (diverso da A7=SP) Non aggiorna i bit di esito MOVEM blocco di registri, blocco di parole di memoria consecutive (o viceversa) Copia il contenuto di un blocco di registri (non necessariamente consecutivo) in un blocco di parole di memoria consecutive a partire da un indirizzo dato Non aggiorna i bit di esito Tipicamente utilizzata per salvare alcuni registri del processore sulla pila alla chiamata di sottoprogramma e poi ripristinarli MOVEM D-D3/A, -(SP) * salva i registri in pila MOVEM (SP)+, D-D3/A * ripristina il contenuto dei registri Istruzioni di trasferimento e uso della pila Lo stack pointer è conservato nel registro A7; Il registro A7 è sdoppiato per poter gestire pile (user mode / system mode), a seconda del flag S; Non ci sono istruzioni PUSH e POP: non servono! Si usa l'istruzione MOVE con indirizzamento indiretto con postincremento/predecremento; Esempio di push, impila il contenuto di D: MOVE.W D, -(A7) Esempio di pop, estrae il top della pila in D: MOVE.W (A7)+, D Pag. 4 4

5 Istruzioni di trasferimento () Modo Esempio di Istruzione Funzionamento in RTL MOVE d [s] di costante (o immediato) si immagini di porre d = Dd ( d 7) MOVE.X #costante, Dd d X costante X di registro MOVE.X 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] + o o 4 con autodecremento (indiretto da registro con autodecremento anticipato) 5 MOVE.X (Ai), Dd con indice e spiazzamento Ai [Ai] o o 4 e poi d X [[Ai]] X 6 MOVE.X spiazz. 6 (Ai), Dd d X [spiazz. 6 +[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 Istruzioni di trasferimento (3) Istruzione Nome Funzionamento in RTL MOVE.X trasferimento d, esiti [s] MOVEA.Y s, Ai trasferimento Ai [s] MOVEM.Y trasferimento di blocco - - blocco d [blocco s] COME DENOTARE IL BLOCCO DI REGISTRI: esempi D-D3/A-A5 vale a dire: D, D, D3, A, A3, A4, A5 D/D3/A/A5vale a dire: D, D3, A, A5 D-D3/A4 vale a dire: D, D, D3 e A4 D-D3/D5-D7/A vale a dire: D, D, D3, D5, D6, D7, A cioè con Da-Db si denota l intervallo di registri da Da a Db (a e b inclusi), mentre con Da/Db si denotano solo i due registri Da e Db; similmente per i registri di indirizzo COME FUNZIONA MOVEM Con modalità di indirizzamento ad autodecremento, MOVEM lavora sul blocco di registri 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 D-D3/A4, (SP) impila il blocco di registri (A4, D3, D, D) MOVEM.Y (SP) +, D-D3/A4 spila il blocco di registri (D, D, D3, A4) Pag. 5 5

6 Ortogonalità nelle istruzioni di trasferimento MOVE s,d Ortogonalità completa, sorgente qualsiasi e per destinazione vietato Destinazione (=d) = registro di indirizzo Destinazione (=d) = costante MOVEA Ortogonalità completa, destinazione qualsiasi (tranne A7) e sorgente qualsiasi MOVEM blocco di registri, blocco di parole di memoria consecutive Come zona di memoria si utilizza solo la pila (utilizzo ristretto rispetto a quanto consentito da M68) - - Istruzioni aritmetiche-logiche Istruzione Nome Funzionamento in RTL ADD.X ADDI.X #cost., d ADDA.Y s, Ai SUB.X SUBI.X #cost., d SUBA.Y s, Ai addizione (naturale / comp. a due) sottrazione (naturale / comp. a due) d X, esiti [s] X +[d] X d X, esiti cost. X +[d] X Ai Y [s] Y +[Ai] Y d X, esiti [d] X [s] X d X, esiti [d] X cost. X Ai Y [Ai] Y [s] Y AND.X ANDI.X #cost., d prodotto logico bit a bit (bitwise) d X, esiti [s] X [d] X d X, esiti cost. X [d] X OR.X ORI.X #cost., d somma logica bit a bit (bitwise) d X, esiti [s] X [d] X d X, esiti cost. X [d] X CMP.X s, s CMPI.X #cost., s CMPA.Y s, Ai confronto (naturale / comp. a due) esiti esiti esiti [s ] X [s ] X [s ] X cost. X [Ai] Y [s ] Y ASR.X ASL.X LSR.X LSL.X ROR.X ROL.X 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 NOT.X d d complemento a due inversione logica (bitwise) CLR.X d azzeramento d X, esiti d X, esiti complementa a due [d] X d X, esiti inverti logicamente [d] X BTST s, s test di un bit Z negazione del bit di s in posizione [ s ] Pag. 6 6

7 Ortogonalità nelle istruzioni aritmetiche-logiche Operazioni binarie: sono sostanzialmente semi ortogonali e non ortogonali ADD/SUB/AND/OR/CMP: semiortogonalità s registro di dato, s=d qualsiasi (no reg di indirizzo, costante) Non contemplata in CMP s=d registro di dato, s qualsiasi (no reg di indirizzo, costante) ADDI/SUBI/ANDI/ORI/CMPI: semiortogonalità s costante, s=d qualsiasi (no reg di indirizzo, costante) ADDA/SUBA/CMPA: semiortogonalità s= d = Ai (tranne A7), costante, s qualsiasi Scorrimento e rotazione: non ortogonale s registro di dato, s=d registro di dato Operazioni unarie: ortogonalità completa Istruzioni di modifica del flusso di esecuzione: istruzioni di salto Esecuzione delle istruzioni in sequenza: la prossima istruzione da eseguire è la successiva Istruzioni di salto incondizionato: specificano quale è la prossima istruzione da eseguire, diversa da quella in sequenza In linguaggio macchina la prossima istruzione da eseguire è specificata tramite un riferimento, diretto o indiretto, al suo indirizzo di memoria In linguaggio Assemblatore la prossima istruzione da eseguire è specificata tramite un riferimento simbolico del suo indirizzo di memoria Istruzioni di salto condizionato: se la condizione è verificata si salta, se non è verificata si procede in sequenza Le condizioni esprimibili sono molto semplici (confronti tra operandi). I risultati dei confronti, eseguiti dall ALU, sono memorizzati nei codici di condizione presenti nel registro CCR I codici vengono testati nelle istruzioni di salto condizionato Istruzione di salto a sottoprogramma E l equivalente di un salto incondizionato, ma la prossima istruzione da eseguire è la prima del sottoprogramma La sua esecuzione prevede che venga automaticamente salvato in pila l indirizzo di ritorno al chiamante Pag. 7 7

8 I codici di condizione nel 68 (o flag) Sono memorizzati in un registro di 6 bit chhiamato SR (status register), composto da: Byte di sistema Byte utente (registro CCR, 8 bit) T - S - - I I I X N Z V C C = riporto, carry; vale se l'ultima istruzione ha generato riporto; V = overflow; vale se l'ultima istruzione ha generato un valore non rappresentabile; Z = zero; vale se l'ultima istruzione ha generato il valore zero; N = negativo vale 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=; I = livello di abilitazione degli interrupt, su 3 bit; sono abilitati solo gli interrupt > I; Istruzioni di salto () Le istruzioni di salto più importanti sono fondamentalmente di due categorie a seconda della modalità di indirizzamento utilizzabile per specificare la destinazione del salto Branch: solo con modalità di indirizzamento relativo a contatore di programma Bcc: salto condizionato (condition code) con 5 condizioni di salto e BRA (Branch Always) salto incondizionato DBcc: come sopra con decremento di un registro contatore specificato nell istruzione (utile per i cicli) Jump: con tutte le modalità di indirizzamento previste per le istruzioni JMP: salto incondizionato JSR: salto a sottoprogramma Pag. 8 8

9 Istruzioni di salto () SALTA dest. (Aj) spiazz. (PC) etichetta spiazz. (PC, Dq.W/L) etichetta (Dq.W/L) spiazz. (PC, Aq.W/L) etichetta (Aq.W/L) Indirizzo.W/L JMP JSR dest. = BRA Bcc BSR DBcc DBRA dest. = vietato vietato Condizioni di salto 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 è trabocco VS overflow set c è trabocco PL plus positività o nullità A MI minus negatività (nullità esclusa) A < 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 Pag. 9 9

10 Istruzioni di salto in dettaglio (3) JMP dest. JSR dest. BRAdest. (equivale a BT) Bcc dest. BSR dest. DBcc Istruzione dest. DBRA dest. (equivale a DBF) Nome salto incondizionato salto (incondizionato) a routine salto incondizionato salto condizionato (cond. cc) salto (incondizionato) a routine salto condizionato con decremento (cond. cc) salto incondizionato con decremento Funzionamento in RTL PC i.e. dest. SP [SP] 4 [SP] [PC] PC i.e. dest. PC i.e. dest. se cc è verificata, allora PC i.e. dest. PC [PC] + 4 SP [SP] 4 [SP] [PC] PC i.e. dest. se cc non è verificata, allora Di [Di] se [Di], allora PC i.e. dest. PC [PC] + 4 PC [PC] + 4 Di [Di] se [Di], allora PC i.e. dest. PC [PC] + 4 fine Istruzioni di controllo NOP UNLK Ai (idem, di solito i = 6) RTS Istruzione LINK Ai, #cost. (di solito i = 6, cioè il puntatore all area di attivazione o frame pointer FP coincide con A6) TRAP #cost. ( cost. 5) Nome nessuna operazione collegamento a routine (creazione area di attivazione) rilascio di routine (eliminazione di area di attivazione) rientra da routine chiamata a supervisore (SVC) Funzionamento in RTL niente 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] [SSP] [SR] bit M di SR (attiva modo S) PC [base tab. + cost.] (cioè PC vettore di interruzione) - - Pag.

11 Istruzioni di classe privilegiata MOVE RTE RESET STOP #cost. Istruzione ANDI#cost, SR ORI#cost, SR Nome 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 Funzionamento in RTL se bit M di SR = (modo S), allora d [s] esegui TRAP #cod_istr_priv se bit M di SR = (modo S), allora SR cost. o [SR] esegui TRAP #cod_istr_priv se bit M di SR = (modo S), allora SR [[SSP]] SSP [SSP] + PC [[SSP] SSP [SSP] + 4 esegui TRAP #cod_istr_priv se bit M di SR = (modo S), allora attiva la linea RESET del bus esegui TRAP #cod_istr_priv se bit M di SR = (modo S), allora SR cost. attendi richiesta interruzione esegui TRAP #cod_istr_priv Come usare SSP e USP Il simbolo SP è sinonimo di A7, e i due sono intercambiabili SP corrisponde a USP se il modo è U, a SSP se il modo è S Quando il processore è in modo U (bit M di SR = ) è consentito nominare SP o A7 come argomento, e allora corrispondono a USP: MOVEA SP, A! A [USP] Ricorda: è vietato utilizzare A7 (SP) come destinazione è vietato nominare SSP come argomento, perché sarebbe violazione del privilegio è vietato nominare USP come argomento, non perché ci sia divieto logico bensì per semplicità di notazione; sarebbe infatti del tutto equivalente nominare SP o A7, come già è consentito Quando il processore è in modo S (bit M di SR = ) è consentito nominare SP o A7 come argomento, e allora corrispondono a SSP: MOVEA SP, A! A [SSP] MOVEA A, SP! SSP [A] è consentito utilizzare A7 (SP) come destinazione è consentito nominare USP come argomento (perché vale il privilegio), e corrisponde allo user stack pointer anche se il bit M del registro SR vale (modo S): MOVE USP, A! A [USP] MOVE A, USP! USP [A] è vietato nominare SSP come argomento, non perché ci sia divieto logico bensì per semplicità di notazione; sarebbe infatti del tutto equivalente nominare SP o A7, come già è consentito - - Pag.

12 Istruzioni di ingresso e uscita Nel Motorola 68 non ci sono istruzioni specifiche di ingresso e uscita A ciascuna interfaccia di periferica è associato uno spazio di indirizzamento in memoria (memory mapped Input/Output) In questo spazio di indirizzamento vengono mappati gli equivalenti dei registri di interfaccia (dato, stato,...) Le istruzioni di ingresso e uscita (in altri processori definite come IN e OUT) nell M68 sono delle MOVE privilegiate Istruzione MOVE.X Nome trasferimento (con indirizzo s o d in spazio di I / O) Funzionamento in RTL se i.e. di s o d in spazio I / O e bit M = (modo S), allora d X [s] X MMU genera interruzione (evento analogo a TRAP) Direttive all assemblatore assemblatore () Etichetta Direttiva Argomento / i Funzionamento N EQU val 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. INIZIO ORG ind 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. DATO DC.X val, val, Dichiarazione e inizializzazione di dato. Definisce il simbolo DATO associandolo alla cella di memoria corrente, che inizialmente avrà valore val; prosegue inizializzando anche le parole successive con val, ; è 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. BLOCCO DS.X dim 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. FINE END etichetta 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. Pag.

13 Direttive all assemblatore assemblatore () Il programma deve contenere almeno una direttiva ORG e ne può contenere due o più (e deve contenere esattamente una direttiva END con l indirizzo di partenza), riferite a codice, dati, pila o altro. Gli indirizzi dati come argomento a ORG sono inglobati nell intestazione del file eseguibile, e il caricatore (loader) del S.O. li interpreta in due modi diversi possibili: Se il S.O. non prevede meccanismo di memoria virtuale, sono indirizzi reali di memoria fisica dove impiantare i vari segmenti del programma Se il S.O. prevede meccanismo di memoria virtuale, sono indirizzi virtuali, vale a dire spiazzamenti rispetto all indirizzo che idealmente è sempre l indirizzo virtuale iniziale del processo; in pratica i vari indirizzi di ORG sono allora semplicemente gli indirizzi virtuali dei vari segmenti di processo nello spazio di indirizzamento virtuale; ovviamente il meccanismo di memoria virtuale decide poi come associare il tutto a pagine fisiche, ma ciò non riguarda il caricatore Ingombro delle istruzioni per istruzioni che manipolano dati () Dimensione della parola di memoria: 6 bit Dimensione della costante: 8, 6 o 3 bit Dimensione dello spiazzamento: 8 o 6 bit Dimensione dell indirizzo di memoria: 6 o 3 bit L istruzione è sempre costituita da una parola da 6 bit iniziale, detta parola di codice operativo, cui si aggiungono eventualmente altre parole consecutive, dette parole aggiuntive o di estensione l ingombro max dell istruzione è di 5 parole da 6 bit ( parola di codice operativo + 4 parole di estensione) Il codice operativo occupa una frazione breve della parola di codice operativo, spesso (ma non sempre) incorpora il segnale di dimensione del dato, e lascia spazio per argomenti non troppo lunghi Eventuali argomenti (o parti di argomenti) di tipo costante, indirizzo o spiazzamento, occupano ciascuno una parola aggiuntiva oppure due parole aggiuntive a quella di codice operativo Pag. 3 3

14 Ingombro delle istruzioni per istruzioni che manipolano dati () Più in dettaglio Il codice operativo occupa una frazione breve della parola di codice operativo, spesso (ma non sempre) incorpora il segnale di dimensione del dato, e lascia spazio per argomenti non troppo lunghi da codificare: o Modo di indirizzamento del primo argomento. o Se il primo argomento nomina un solo registro, il numero del registro e la specifica se sia di dato o indirizzo o Modo di indirizzamento del secondo argomento. o Se il secondo argomento nomina un solo registro, il numero del registro e la specifica se sia di dato o indirizzo. o NOTA BENE: nella parola di codice operativo NON CI STANNO MAI il modo e il numero dell indirizzo base del modo di indirizzamento con base indice e spiazzamento (vedi dopo dove stanno). Eventuali argomenti (o parti di argomenti) di tipo costante, indirizzo o spiazzamento, occupano ciascuno una parola aggiuntiva oppure due parole aggiuntive a quella di codice operativo, secondo i casi: o Costante: se byte o corta (8 o 6 bit) occupa una parola, se lunga (3 bit) occupa due parole o Spiazzamento: occupa sempre una parola, sia quando è corto (8 bit), e allora ne usa metà, sia quando è lungo (6 bit), e allora la usa tutta. o Indirizzo: se corto (6 bit) occupa una parola, se lungo (3 bit) bit occupa due parole. MOVEM ha una codifica sua particolare (vedi libro), comunque ingombra due parole, e i bit della parola aggiuntiva specificano uno ciascuno un registro di dato Dp o uno di indirizzo Aq istruzione (a indirizzo ) MOVE.B #$, D MOVE.W #$3, D MOVE.L #$34567, D MOVE.X A, D MOVE.X (A), D MOVE.X (A)+, D MOVE.X (A), D MOVE.X $3 (A), D MOVE.X $ (A, D.Y), D MOVE.X $ (A, D.Y), $3 (A3, A4.Y), MOVE.X $3.W, D MOVE.X $34567.L, D MOVE.X $3.W, $456789AB.L MOVE.W #$3, $456789AB.L MOVE.X $34567.L, $89ABCDEF.L MOVE.L #$34567, $89ABCDEF.L ADD.X D, D ADD.X $3.W, D ADDX. $34567.L, D LSL.X #, D parola di cod. op arg parole aggiuntive arg parole total i Pag. 4 4

15 Dettagli Formato generale codice operativo modo reg. / aux modo reg. / aux MOVE.B #$, Da MOVE immed. byte di registro a # hex MOVE.L #$34567, Da MOVE immed. long di registro a #3 hex #4567 hex Altri dettagli MOVE.X $ (Aa, Db.Yb), $ (Ac, Ad.Yd) MOVE.X bas ind spi A Y b D b Y d A d MOVE.X $34567.L, Da 5 3 di registro c hex hex MOVE.X assoluto long di registro a 3 hex MOVE.W #$3, $456789AB.L 4567 hex MOVE immed. word assoluto long #3 hex 4567 hex 89AB hex Pag. 5 5

16 Ingombro delle istruzioni per istruzioni che manipolano istruzioni Dimensione della parola di memoria: 6 bit Dimensione dello spiazzamento: 8 o 6 bit Dimensione dell indirizzo di memoria: 6 o 3 bit L istruzione è costituita da una parola da 6 bit iniziale, detta parola di codice operativo, cui si aggiungono eventualmente altre parole consecutive, dette parole aggiuntive o di estensione ; l ingombro max dell istruzione è di 3 parole da 6 bit ( parola di codice operativo + parole di estensione). Il codice operativo occupa una frazione della parola di codice operativo, e lascia spazio per argomenti non troppo lunghi da codificare, vale a dire: Modo di indirizzamento della destinazione. Se la destinazione nomina un solo registro, il numero del registro indirizzo. Eventuale condizione di salto. Spiazzamento corto, cioè da 8 bit, in caso di indirizzamento relativo a PC (ma senza registro base, vedi sotto); si può usare solo con i salti di tipo B o branch (BRA e simili), non con quelli di tipo J o jump (JMP e simili). Eventuali argomenti (o parti di argomenti) di tipo indirizzo o spiazzamento (da 6 bit oppure da 8 bit ma se c è anche registro base), occupano ciascuno una parola oppure due parole aggiuntive a quella di codice operativo, secondo i casi. In particolare: Spiazzamento: se lungo occupa un intera parola aggiuntiva da 6 bit se corto ma in modo con base relativo a PC, occupa metà di una parola aggiuntiva, e l altra metà contiene la specifica del registro base, come con l analogo indirizzamento di dato Indirizzo: se corto (6 bit) occupa una parola, se lungo (3 bit) bit occupa due parole Esempi concreti istruzione (all indirizzo ) parola di cod. op parole aggiuntive dest parole totali JMP (A) BRA $ (PC) Bcc $ (PC) BRA $34 (PC) Bcc $34 (PC) JMP $ (PC, A) JMP $34.W JMP $ L Pag. 6 6

17 Dettagli Formato generale JMP $ (PC, A) 5 5 codice operativo spiazz./ mod./reg. /cond. JMP con base rel. a PC A (hex) JMP (A) 5 BRA $34 (PC) JMP da reg. numero 5 BRA $ (PC) BRA lungo (= ) 34 (hex) 5 BRA (hex) Pag. 7 7

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

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

Instruction set architecture

Instruction set architecture 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

LE STRUTTURE IN PROGRAMMAZIONE ASSEMBLER

LE STRUTTURE IN PROGRAMMAZIONE ASSEMBLER LE STRUTTURE IN PROGRAMMAZIONE ASSEMBLER CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Istruzioni di selezione Linguaggio ad alto livello Assembler

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

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

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

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

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

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

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

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

Il processore Motorola (MC68000)

Il processore Motorola (MC68000) Il processore Motorola 68000 (MC68000) Il processore Motorola 68000 è stato un processore innovativo, che ha visto la luce all inizio degli anni 80, ed il cui successo ha posto le basi per lo sviluppo

Dettagli

Assemblaggio per il processore Motorola 68000

Assemblaggio per il processore Motorola 68000 Assemblaggio per il processore Motorola 68000 Daniele Paolo Scarpazza daniele.scarpazza@elet.polimi.it Politecnico di Milano Ultimo aggiornamento: 16 Maggio 2005 Assemblaggio A prima vista sembra un problema

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

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

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

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

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

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

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

ASSEMBLER 68K parte 2

ASSEMBLER 68K parte 2 ASSEMBLER 68K parte 2 CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Classi di istruzioni Un calcolatore deve avere istruzioni in grado

Dettagli

Il Linguaggio Assembly

Il Linguaggio Assembly Il Linguaggio Assembly Luca Abeni March 16, 2016 Linguaggio Macchina ed Assembly CPU: capisce (e riesce ad eseguire) solo il suo linguaggio macchina Sequenza di 0 e 1 Non proprio utilissimo per noi umani...

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

ESERCITAZIONE Operandi Architettura ad 1 operando Architettura a 2 operandi Architettura a 3 operandi

ESERCITAZIONE Operandi Architettura ad 1 operando Architettura a 2 operandi Architettura a 3 operandi ESERCITAZIONE 9 Sommario Operandi Registri dedicati Gestione di sottoprogrammi Meccanismi di interruzione 1. Operandi Le prestazioni di una CPU possono variare considerevolmente a seconda del numero di

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

Il sistema delle interruzioni nel processore MC68000 (cenni)

Il sistema delle interruzioni nel processore MC68000 (cenni) Corso di Calcolatori Elettronici I A.A. 2011-2012 Il sistema delle interruzioni nel processore MC68000 (cenni) Lezione 33 Prof. Antonio Pescapè Università degli Studi di Napoli Federico II Facoltà di Ingegneria

Dettagli

AMBIENTE DI SIMULAZIONE ASIM

AMBIENTE DI SIMULAZIONE ASIM LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 10 Prof. Rosario Cerbone rosario.cerbone@uniparthenope.it http://digilander.libero.it/rosario.cerbone a.a. 2008-2009 AMBIENTE DI SIMULAZIONE ASIM Digitazione

Dettagli

Introduzione al linguaggio assembly MC68000

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

Dettagli

Architettura del calcolatore (Seconda parte)

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

Dettagli

Fondamenti di Informatica e Programmazione. P ro f. G i a n n i D A n g e l o

Fondamenti di Informatica e Programmazione. P ro f. G i a n n i D A n g e l o Fondamenti di Informatica e Programmazione CPU e Linguag gio Macchina P ro f. G i a n n i D A n g e l o Email: giadangelo@unisa.it A.A. 2018/19 Elaborazione dell Informazione L'elaborazione delle informazioni

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

Fondamenti di Informatica A. A / 1 9

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

Dettagli

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

Calcolatori Elettronici Lezione A4 Programmazione a Moduli

Calcolatori Elettronici Lezione A4 Programmazione a Moduli Calcolatori Elettronici Lezione A4 Programmazione a Moduli Ing. Gestionale e delle Telecomunicazioni A.A. 2007/08 Gabriele Cecchetti Sommario Programmazione a moduli Programmi con linguaggi misti Tempo

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

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

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

Dettagli

Esercitazioni ElDig2-09. Dott. Salvatore Pontarelli

Esercitazioni ElDig2-09. Dott. Salvatore Pontarelli Esercitazioni ElDig2-09 Dott. Salvatore Pontarelli mercoledì 9 dicembre 2009 Esercitazioni ElDig2-09 Esercitazioni in aula Giovedi 11:30-13:00 Ricevimento: Giovedi 9:30-11:30 e-mail pontarelli@ing.uniroma2.it

Dettagli

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

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

Dettagli

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

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

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

Nel microprocessore 8086 abbiamo una gran quantità di registri

Nel microprocessore 8086 abbiamo una gran quantità di registri I registri del microprocessore 8086 Nel microprocessore 8086 abbiamo una gran quantità di registri AH AL AX 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 B H B L BX 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 C H C L CX 1 0 1 1

Dettagli

Istruzioni di Controllo del Flusso Istruz. di Controllo di Flusso

Istruzioni di Controllo del Flusso Istruz. di Controllo di Flusso Istruzioni di Controllo del Flusso Istruz. di Controllo di Flusso Salto Non Condizionato Salto Condizionato JMP jump BRA branch non condizionato BEQ branch if Equal BNE branch if Not Equal BCS branch if

Dettagli

Set di istruzioni Z80 (quarta parte) Pagina 1 di 9 ISTRUZIONI DI SALTO

Set di istruzioni Z80 (quarta parte) Pagina 1 di 9 ISTRUZIONI DI SALTO Set di istruzioni Z80 (quarta parte) Pagina 1 di 9 ISTRUZIONI DI SALTO JP pq E un istruzione di salto assoluto incondizionato. Per salto assoluto si intende il fatto che grazie a quest istruzione, il contenuto

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Gestione eccezioni nel MIPS Interruzioni Anno Accademico 2004/2005 Francesco Tortorella Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione

Dettagli

Gestione delle subroutine. Appunti di Sistemi per la cl. IV Dinf A cura del prof. Ing. Mario Catalano

Gestione delle subroutine. Appunti di Sistemi per la cl. IV Dinf A cura del prof. Ing. Mario Catalano Gestione delle subroutine Appunti di Sistemi per la cl. IV Dinf A cura del prof. Ing. Mario Catalano Vantaggi delle subroutines In maniera analoga alle funzioni/metodi dei linguaggi di alto livello, anche

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

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante A.A. 2018/2019 Docente Prof. Raffaele Pizzolante FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE Architettura di Von Neumann Modello concettuale di un architettura di computer che permette di rappresentare,

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 29/01/07 Nota Questi lucidi sono tratti

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

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

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

Passaggio di Parametri per Valore o Indirizzo

Passaggio di Parametri per Valore o Indirizzo Passaggio di Parametri per Valore o Indirizzo Come in C, l assembler permette di passare un dato per valore (copia) o per indirizzo, nel secondo caso rendendo modificabile il dato stesso da dentro una

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Gestione eccezioni nel MIPS Interruzioni Anno Accademico 2007/2008 Francesco Tortorella Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione

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

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

Modi di esecuzione user / kernel

Modi di esecuzione user / kernel Corso di Gestione eccezioni nel MIPS Interruzioni Anno Accademico 2006/2007 Francesco Tortorella Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione

Dettagli

Introduzione al linguaggio assembly del processore Motorola 68000

Introduzione al linguaggio assembly del processore Motorola 68000 Corso di Calcolatori Elettronici I Introduzione al linguaggio assembly del processore Motorola 68000 ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica 68000: Modello di programmazione 31

Dettagli

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione ESERCITAZIONE 8 Sommario Unità centrale di elaborazione Meccanismo di interruzione CPU-Memoria Architettura di una CPU Linguaggio macchina Modi di indirizzamento 1. Unità centrale di elaborazione L unità

Dettagli

15 April LABORATORIO 04 PROCEDURE STACK. CHIAMATA A PROCEDURE I. Frosio

15 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

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

Lezione XII: La gestione delle eccezioni in MINIX

Lezione XII: La gestione delle eccezioni in MINIX 1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 4 aprile 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

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

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto Un quadro della situazione Lezione 14 Il Set di Istruzioni (2) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri

Dettagli