Nel microprocessore 8086 abbiamo una gran quantità di registri

Documenti analoghi
Famiglia dei processori INTEL

ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088

ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088

ARCHITETTURA DEL MICROPROCESSORE INTEL 8086 (iapx86/10)

ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088

Architettura degli elaboratori (A)

Il microprocessore 8086

Calcolatori Elettronici Lezione A2 Architettura i8086

ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088

Architettura 8086/8088

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Architettura degli Elaboratori

Breve guida AL LINGUAGGIO ASSEMBLY (emulatore EMU8086)

I.T.I. A. RIGHI e VIII Napoli Specializzazione Informatica Tradizionale Corso D Materia: Sistemi. Elementi di Assembly 8086

)21'$0(17,',,1)250$7,&$,,

Architettura di una CPU

Tutta la famiglia dei processori Intel (x86) si basa ed e' compatibile con il primo processore di questo tipo: l'8086.

FONDAMENTI DI INFORMATICA Lezione n. 11

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

iafelice at cs(dot)unibo(dot)it

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

Programmazione Assembly per 8088: Esercizi svolti

Esercizi per il recupero del debito formativo:

Modi di indirizzamento

Il linguaggio assembly

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

Rappresentazione di numeri relativi (interi con segno) Rappresentazione di numeri interi relativi (con N bit) Segno e Valore Assoluto

Esame di INFORMATICA (*) Operazioni Aritmetiche: Somma. Lezione 3. Operazioni Aritmetiche: Somma. Operazioni Aritmetiche: Somma

ARCHITETTURA DEI CALCOLATORI VOLUME I

Il linguaggio assembly 8086

L Assembler Istruzioni Aritmetiche. M. Rebaudengo - M. Sonza Reorda. Politecnico di Torino Dip. di Automatica e Informatica

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

Firmware Division & Floating pointer adder

Programmi per la macchina di Mano addizione di due numeri

I numeri relativi. Definizioni Rappresentazione Operazioni Espressioni Esercizi. Materia: Matematica Autore: Mario De Leo

Componenti e connessioni. Capitolo 3

Programmazione dello Z80

PASSI DI SVILUPPO DI UN PROGRAMMA: ESEMPIO

Linguaggio Assembler Intel 80x86. Calcolatori Elettronici B a.a. 2004/2005 Massimiliano Giacomin

HARDWARE E SOFTWARE DEL µp 8086

Sistemi di numerazione

Sistema Numerico Decimale

Ing. Gabriele MONTI

Riprendiamo l esercizio calcolatrice

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

ARCHITETTURA DI UN CALCOLATORE ELETTRONICO

Aritmetica nel sistema Ternario bilanciato Giuseppe Talarico - 30/10/2013

Metodi di indirizzamento

Esercizi svolti e da svolgere sugli argomenti trattati nella lezione 25

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

Codifica dei Numeri. Informatica ICA (LC) 12 Novembre 2015 Giacomo Boracchi

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

1.2f: Operazioni Binarie

Cenni ad Assembly Intel

Linguaggio Assembly e linguaggio macchina

La macchina di Von Neumann

Lezione 15. L elaboratore Elettronico

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

Elaborazione dell informazione

LA TRASMISSIONE DELLE INFORMAZIONI SECONDA PARTE 1

Architetture aritmetiche

Cap. 2 - Rappresentazione in base 2 dei numeri interi

espressione letterale valore numerico Monomio: forma normale coefficiente parte letterale Monomi simili: Monomi opposti: Grado di un monomio:

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

GLOSSARIO MATEMATICO. ,0,, 2, 3,,... = {razionali e irrazionali}

Architettura del processore. Modello di calcolatore. Caratteristiche del processore. Caratteristiche del processore. Fondamenti di Informatica

Il processore N.12. Vediamo come è strutturato un microprocessore e con quale sequenza esegue le istruzioni dettate da un programma assembler.

Istruzioni di modifica della sequenza di elaborazione

Lezione 3. I numeri relativi

Linguaggio Assembly e linguaggio macchina

NUMERO RELATIVO. È caratterizzato da: segno positivo (+) o negativo (-) parte numerica che è detta valore assoluto

Firmware Division & Floating gpointer adder

Appunti di informatica. Lezione 4 anno accademico Mario Verdicchio

Si ottiene facendo precedere i numeri naturali dal segno + o dal segno -.

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Architettura degli Elaboratori

Lezione 7 Sommatori e Moltiplicatori

Rappresentazione dell informazione

Operazioni in N Le quattro operazioni Definizioni e Proprietà

Rappresentazione dei Numeri

I.4 Rappresentazione dell informazione

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

NOZIONI BASE DEL PROCESSORE (CPU)

Rappresentazione di dati: numerazione binaria. Appunti per la cl. 3 Di A cura del prof. Ing. Mario Catalano

Set Istruzioni della CPU. Classificazione del set istruzioni Modi di indirizzamento

Aritmetica dei Calcolatori Elettronici

CLASSIFICAZIONE DEI SISTEMI DI ELABORAZIONE AUTOMATICA DELL INFORMAZIONE

Le operazioni fondamentali con i numeri relativi

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

LABORATORIO Costruzione di un ipertesto. Studio delle varie specie di numeri dai numeri naturali ai numeri reali

Rapida Nota sulla Rappresentazione dei Caratteri

Modulo e segno Complemento a 1 (CA1) Complemento a 2 (CA2)

Somma di numeri binari

Manualetto. Aggiornato al 31/07/2014

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Esercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it

Lezione 7 ALU: Moltiplicazione e divisione

Il microprocessore DMC8

Algebra di Boole e porte logiche

Numeri reali. Notazione scientifica (decimale) Floating Point. Normalizzazione. Esempi. Aritmetica del calcolatore (virgola mobile)

Transcript:

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 0 1 1 1 1 1 0 0 0 0 0 1 D H D L DX 1 1 1 0 0 1 0 1 0 1 0 0 1 0 1 0 SP 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 BP 1 1 1 0 1 0 1 1 0 1 1 0 1 1 1 0 SI 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 1 DI 1 1 0 1 0 0 0 1 1 0 1 1 0 0 0 1 CS 0 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 DS 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 SS 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 ES 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 IP 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 0

OF DF IF TF SF ZF AF PF CF FLAG 0 0 1 1 0 1 0 0 1 0 1 1 1 0 0 1 I registri denominati AX, BX, CX, DX sono registri di uso generale utilizzabili liberamente all interno di un programma. Essi possono però assolvere ad altre funzioni. In particolare il registro AX costituisce l accumulatore, il principale registro utilizzato nelle operazioni logico-aritmetiche. Il registro BX è utilizzato anche per l indirizzamento indiretto e indiretto con base e indice (vedi modi di indirizzamento) come registro puntatore alla memoria destinato cioè a contenere l indirizzo della locazione di memoria che contiene uno degli operandi coinvolti in un operazione. Molte istruzioni iterative (eseguite cioè più volte in base ad un numero contenuto in un registro che funge da contatore) utilizzano come contatore il registro CX. Il registro DX è coinvolto nelle operazioni di moltiplicazione con risultato a 32 bit e divisione con dividendo a 32 bit. Inoltre, nelle operazioni di IO, può essere utilizzato per contenere l indirizzo della porta di IO coinvolta. Questi registri sono a 16 bit, per cui il parallelismo interno del 8086 è a 16 bit. Tali registri si possono però sdoppiare in registri a 8 bit denominati AH (H sta per high parte alta), AL (L per low parte bassa), BH, BL, CH, CL, DH, DL.

Vi sono poi i registri di uso specifico. SP è lo stack pointer destinato a contenere l indirizzo della cima dello stack all interno del segmento di memoria destinato allo stack (vedi la segmentazione della memoria). Il registro BP è il registro base pointer. Esso ha la funzione di contenere indirizzi della memoria stack e la sua funzione è quella di consentire di accedere a locazioni dello stack senza dover modificare il contenuto dello stack pointer SP. I registri SI (source index) e DI (destination index) vengono utilizzati nelle operazioni di trasferimento dati da una zona di memoria all altra: SI contiene l indirizzo della locazione di memoria da cui provengono i dati e DI contiene l indirizzo della zona di memoria da cui provengono i dati. Il registro dei flag ha un ampiezza di 16 bit anche se ne vengono utilizzati soltanto 9 come appare nella figura seguente OF DF IF TF SF ZF AF PF CF FLAG X X X X 0 1 0 0 1 0 X 1 X 0 X 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Il flag 11 (OF) è il classico flag di overflow e va ad 1 quando segnala che il risultato di un operazione eccede la capacità di rappresentazione del registro destinato a contenerlo. Il flag 10 e il flag di direzione: nelle operazioni di trasferimento di blocchi di dati da una zona di memoria all altra se è a 0 esso indica se i blocchi di dati da trasferire vanno verso indirizzi crescenti (quindi ad ogni trasferimento

dati i registri SI e DI vanno incrementati) mentre se è a 1 esso indica se i blocchi di dati da trasferire vanno verso indirizzi decrescenti (quindi ad ogni trasferimento dati i registri SI e DI vanno decrementati). Il registro IF indica se le interruzioni mascherabili sono abilitate o meno: se vale 0 le interruzioni sono disabilitate per cui ogni segnale di interruzione esterno che giunge sulla linea INTR viene ignorato, mentre se è ad 1 le interruzioni sono abilitate. Il flag TF o flag di Trap posto ad 1 consente il verificarsi di una interruzione software in modo da costringere il microprocessore ad eseguire il programma a passo singolo o single step mode. È un opzione utilizzata quando si sta testando un programma e si vuole controllare lo stato dei registri del microprocessore dopo l esecuzione di ogni singola istruzione. Il flag SF o flag di segno indica il segno del risultato dell ultima operazione eseguita dall ALU. Se il risultato è negativo il flag va ad 1, se il risultato è positivo il flag va a 0. in pratica tale flag coincide con il bit più significativo del risultato. Il flag ZF o flag di zero indica se il risultato dell ultima operazione aritmetica o logica effettuata dall ALU è nullo (ZF=1) o diverso da zero (ZF=0). Il flag AF o auxiliary carry flag è il flag di mezzo riporto corrispondente all half carry dello Z80. esso viene settato se, in una somma si ha un riporto dal nibble inferiore al nibble superiore in una operazione a 8 bit. Se si tratta di

una sottrazione esso segnala un prestito dal nibble più significativo al nibble meno significativo. Nel caso si tratti di operazioni a 16 bit, esso si riferisce ai nibble del byte meno significativo. Tale flag viene utilizzato nelle operazioni in BCD. Il flag PF è il flag di parità. Se il risultato di un istruzione ha un numero di bit ad 1 che sia pari esso viene posto ad 1. Se il risultato contiene un numero di bit ad 1 dispari il flag va a zero. Il flag di carry (CF) viene settato se vi è un riporto o un prestito sul bit più significativo in un addizione o sottrazione. I registri CS, DS, SS e ES sono detti registri di segmento e vengono utilizzati per la segmentazione della memoria.