Anteprima
Vedrai una selezione di 10 pagine su 225
Calcolatori elettronici 1 (teoria ed esercizi assembly) Pag. 1 Calcolatori elettronici 1 (teoria ed esercizi assembly) Pag. 2
Anteprima di 10 pagg. su 225.
Scarica il documento per vederlo tutto.
Calcolatori elettronici 1 (teoria ed esercizi assembly) Pag. 6
Anteprima di 10 pagg. su 225.
Scarica il documento per vederlo tutto.
Calcolatori elettronici 1 (teoria ed esercizi assembly) Pag. 11
Anteprima di 10 pagg. su 225.
Scarica il documento per vederlo tutto.
Calcolatori elettronici 1 (teoria ed esercizi assembly) Pag. 16
Anteprima di 10 pagg. su 225.
Scarica il documento per vederlo tutto.
Calcolatori elettronici 1 (teoria ed esercizi assembly) Pag. 21
Anteprima di 10 pagg. su 225.
Scarica il documento per vederlo tutto.
Calcolatori elettronici 1 (teoria ed esercizi assembly) Pag. 26
Anteprima di 10 pagg. su 225.
Scarica il documento per vederlo tutto.
Calcolatori elettronici 1 (teoria ed esercizi assembly) Pag. 31
Anteprima di 10 pagg. su 225.
Scarica il documento per vederlo tutto.
Calcolatori elettronici 1 (teoria ed esercizi assembly) Pag. 36
Anteprima di 10 pagg. su 225.
Scarica il documento per vederlo tutto.
Calcolatori elettronici 1 (teoria ed esercizi assembly) Pag. 41
1 su 225
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

BASE DI RISC CISC

CONFRONTO RISC ha meno modalità di CISC ha molte diverse modalità di

Numero di indirizzamento e la maggior parte delle indirizzamento e può quindi essere utilizzato

modalità di istruzioni nel set di istruzioni ha un per rappresentare in modo più efficiente le

indirizzamento registro per registrare la modalità di dichiarazioni del linguaggio di

indirizzamento. programmazione di livello superiore.

Vengono utilizzate le codifiche a Vengono utilizzate codifiche a lunghezza

lunghezza fissa delle

Codifica delle variabile delle istruzioni. Esempio: la

istruzioni. Esempio: in IA32,

istruzioni dimensione dell’istruzione IA32 può variare

generalmente tutte le istruzioni sono da 1 a 15 byte.

codificate come 4 byte.

Operazioni Le operazioni aritmetiche e logiche possono

Le operazioni aritmetiche e logiche

aritmetiche e essere applicate sia alla memoria che agli

utilizzano solo operandi di registro.

logiche operandi del registro.

Il set di istruzioni è ridotto, cioè ha solo Il set di istruzioni ha una varietà di istruzioni

poche istruzioni nel set di

Il set di istruzioni differenti che possono essere utilizzate per

istruzioni. Molte di queste istruzioni operazioni complesse.

sono molto primitive.

Viene utilizzato in applicazioni di fascia Viene utilizzato in applicazioni di fascia

alta come elaborazione video,

Applicazione bassa come sistemi di sicurezza,

telecomunicazioni ed elaborazione di automazione domestica ecc.

immagini.

I suoi processori hanno semplici Il suo processore ha istruzioni complesse

Processore istruzioni che richiedono circa un ciclo che richiedono più clock per l’esecuzione.

di clock.

Modalità di Le modalità di indirizzamento Supporta già modalità di indirizzamento

indirizzamento complesse vengono sintetizzate complesse.

complesse utilizzando il software.

La complessità sta nel micro La complessità risiede nel compilatore che

Complessità programma. esegue il programma.

Non richiede memoria esterna per i

Memoria esterna Richiede una memoria esterna per i calcoli.

calcoli.

Decodifica delle La decodifica delle istruzioni è La decodifica delle istruzioni è complessa.

istruzioni semplice.

Tempo di Il tempo di esecuzione è molto Il tempo di esecuzione è molto alto.

esecuzione inferiore.

Dimensione del RISC ha una grande dimensione del I CISC hanno un programma di piccole

programma programma. dimensioni. 165

L A

53.5 INGUAGGIO SSEMBLY

Funzionalmente equivalente al codice macchina

Definisce l'Instruction Set Architecture di una CPU

Utilizza mnemonici e simboli per definire codici operativi e operandi

N.B non c'è corrispondenza biunivoca tra linguaggio assembly e linguaggio macchina

o Struttura interna diversa, e.g., diverso ordine degli operandi

o Omissione di operandi impliciti invece specificati nell'istruzione in linguaggio

macchina

o Istruzioni assembly che corrispondono a una sequenza di istruzioni in linguaggio

macchina

o Istruzioni che non hanno controparte in linguaggio macchina, e.g., definizione di

costanti, direttive di allocazione del codice, direttive per l'assemblatore

Ogni istruzione è costituita da quattro campi:

Etichetta (opzionale), ovvero una stringa che definisce un nome simbolico per il

• corrispondente indirizzo

Mnemonico di un codice operativo, obbligatorio

• Operandi, che variano a seconda del codice operativo e del modo di indirizzamento

• Commento (opzionale)

• E.s: MAIN MOVE D0,D1

L'assemblatore traduce il programma dal linguaggio Assembly a codice binario

Il costruttore del processore fornisce il linguaggio Assembly e un assemblatore

Esistono linguaggi Assembly e assemblatori di terze parti

• o Si ha libertà di scelta per gli mnemonici, il formato delle linee, il formato con cui

esprimere I modi di indirizzamento, varianti per le istruzioni, pseudooperatori, ecc.

o NON si ha libertà sull'effetto finale di ogni istruzione in linguaggio macchina

53.5.1 Livelli di privilegio

Alcune istruzioni non sono sempre eseguibili

Meccanismi di protezione per l'esecuzione di codice di gestione del sistema, e.g., di un

• sistema operativo

I processori possono trovarsi, durante l'esecuzione, in un particolare stato di protezione, detto

• livello di privilegio: Il Motorola 68000 ne ha 2:

o livello utente: più limitato

o livello supervisore: posso accedere a qualsiasi area di memoria e posso usare tutte le

istruzioni del processore 166

19 – Motorola 68000

6 pagine 167

54 P M 68K

ROCESSORE OTOROLA

Lanciato sul mercato nel 1979 come processore general purpose

Utilizzato in personal computer (Apple Macintosh 128K, Amiga, Atari, etc.), console (Sega

• Genesis/Mega Drive), sistemi di controllo, sistemi embedded

La sua architettura è ancora in uso e largamente diffusa

Processore CISC

Architettura complessa, ma al contempo semplice tanto da poter essere usato come

• riferimento didattico

16/32 bits: tutti I registri interni sono a 32 bits, ma ALU e bus verso la memoria sono a 16 bits,

• mentre il bus indirizzi è a 24 bits

Due livelli di privilegio: utente e supervisore

• o I programmi eseguiti a livello utente hanno accesso a tutti I registri, eccetto quelli per

la gestione delle interruzioni

M

54.1 ODELLO DI PROGRAMMAZIONE

Il modello di programmazione include tutti I registri accessibili da programma

8 registri dato, D0-D7, utilizzabili per contenere dati a 8, 16 o 32 bits

• o Utilizzabili liberamente per memorizzare dati temporanei

8 registri indirizzo A0-A7, utilizzabili a 32 o 16 bits

• o Utilizzabili per contenere indirizzi per l'accesso alla memoria

o A7 assolve funzione di stack pointer, e contiene l'indirizzo della cima dell'area stack

(area di memoria gestita in modalità LIFO per allocazione di variabili automatiche e per

I salti a sottoprogramma)

o A7' è un registro alias di A7 accessibile solo in modalità supervisore e costituisce il

supervisor stack pointer

Status register, a 16 bits, contiene I codici di condizione risultandi dall'ALU e altri bit di stato

• Program Counter, a 32 bits

• 168

54.1.1 Status Register

Il registro di stato è a 16 bits, ma solo 10 hanno utilizzo effettivo

Il byte meno significativo è detto user byte, e contiene informazioni riguardo l'ultima

• operazione eseguita all'ALU

Il byte più significativo è detto system byte, e contiene

• o La maschera delle interruzioni, che codifica la sorgente dell'interruzione

o Bit supervisor, che indica se il processore stia eseguendo in modalità privilegiata

o Bit di trace, che indica se il processore stia eseguendo in modalità debug

I

54.2 NTERFACCIA CON LA MEMORIA

Bus dati: 16 bit di parallelismo

Pur disponendo di registri a 32 bits, il processore è in grado di accedere contemporaneamente

• a due soli byte quando si interfaccia con la memoria

o La CU effettua due accessi a 16 bits per accedere a word da 32 bits

Bus indirizzi: 24 bits

Gli 8 bits più significativi dei registri Ax e PC viene ignorato

• o Solo 16MB dei 4GB teorici sono effettivamente indirizzabili

Non è consentito accedere a locazioni di memoria non allineate

I dati sono allineati alla word, cioè tutti I dati sono memorizzati in locazioni di memoria il cui indirizzo

base è pari

I dati sono memorizzati in modalità big endian (il byte più significativo è memorizzato all'indirizzo più

basso)

C

54.3 ONVENZIONI

Ogni istruzione Assembly M68K consta di quattro campi: label, op. code, operandi, eventuali

commenti

La maggior parte delle istruzioni ha due operandi, ma ci sono istruzioni con un solo operando

• o senza operandi

È possibile specificare la dimensione degli operandi su cui un'istruzione deve operare

• o Suffisso .B: indica che l'istruzione deve agire sugli otto bit meno significativi degli

operandi

o Suffisso .W (default): indica che l'istruzione deve agire sui 16 bits meno significativi

degli operandi

o Suffisso .L: indica che l'istruzione deve agire su tutti I bit degli operandi

Gli spazi bianchi vengono ignorati dall'assemblatore

• I commenti in linea vengono fatti precedere dal carattere asterisco

• 169

Le costanti numeriche sono espresse in decimale, o, se precedute dal carattere $, in

• esadecimale

M I

54.4 ODI DI NDIRIZZAMENTO

Gli operandi delle istruzioni, durante la fase di esecuzione di un'istruzione, devono essere sempre

definiti nel loro valore

Le modalità con cui un microprocessore permette alle istruzioni di accedere agli operandi durante il

ciclo fetch-execute viene detto modo di indirizzamento.

Gli operandi vengono prelevati dall'unità di controllo in base al loro indirizzo effettivo,

• specificato, appunto, dal medo di indirizzamento.

I modi di indirizzamento si specializzano in base

Alla tipologia di operandi coinvolti (costante, registro, memoria)

• Alla tecnica con cui gli operandi sono espressi nell'istruzione (per valore, indirizzo, indirizzo

• dell'indirizzo)

o Quelli che si esprimono per indirizzo si particolarizzano ulteriormente per il modo in

cui l'indirizzo è modificato durante la fase di preparazione dell'operando

MODI DI INDIRIZZAMENTO DEL M68K

54.4.1 Indirizzamento Immediato

Il valore di un operando è codificato in uno dei campi dell'istruzione

Può essere usato unicamente per specificare un operando sorgente

• Viene indicato con il carattere # davanti l'operando sorgente

• Se la dimensione lo richiede, vengono utilizzare extension word (campi aggiuntivi)

• dell'istruzione per la memorizzazione del valore dell'operando

Es. MOVE.B #4, D0 sposta la costante 4 nel registro D0 usando indirizzamento immediato per

• l'operando di valore 4 170

54.4.2 Indirizzamento diretto

L'accesso al valore dell'operando è effettuato attraverso il suo indirizzo assoluto, posto in un campo

dell'istruzione

54.4.2.1 Diretto-registro

Nel caso di indirizzamento diretto-registro, il valore dell'operando è contenuto in un registro del

processore

Non richiede di accedere a memoria off-chip

• Lunghezza delle istruzioni ridotta

54.4.2.2 Diretto-memoria

Nel caso di indirizzamento diretto-memoria, il valore dell'operando è contenuto in una locazione di

memoria

Per accedere all’operando effettivo richiede, oltre quello già eseguito per prelevare

• l’istruzione, un ulteriore accesso in memoria

Absolute-addressi

Dettagli
Publisher
A.A. 2022-2023
225 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher vvarr0 di informazioni apprese con la frequenza delle lezioni di Calcolatori elettronici I e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Barone Salvatore.