Introduzione al linguaggio assembly del microprocessore a parte

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

A. FERRARI MATERIALE DALLA DISPENSA DI P. OLLARI
La struttura fisica e logica di un elaboratore
Procedure In assembler.
Organizzazione della memoria
Definizione e tipi di implementazione
IL MICROCONTROLLORE ST6
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Algoritmi e Programmazione
Ottimizzazione statica del codice per processori pipelined Canella Matteo & Miglioli Filippo.
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Anno accademico Le classi di memorizzazione.
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
Laboratorio di informatica: ASSEMBLER
L’organizzazione della comunicazione di I/O G. Vercelli
CALCOLATORI ELETTRONICI Gestione delle subroutine.
Gestione delle subroutine
Corso di Informatica Applicata - Lezione 3 - © 2005 Saverio De Vito Corso di Informatica Applicata Lezione 3 Università degli studi di Cassino Corso di.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Il calcolatore Stefano Cagnoni e Monica Mordonini Dipartimento.
Istruzioni per il Controllo del Processore
Gestione della memoria logica e fisica degli elaboratori x86
Esercizio 18 – Le eccezioni Creare un trap-handler che gestisca opportunamente le eccezioni 7 (Bus error durante accesso ad area dati/stack ) e 12 (overflow)
Le procedure di gestione input/output Poiché le operazioni di input/output sono più lente rispetto alla velocità del processore, occorrerà sincronizzarle.
Microprocessore Intel 8086
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
I blocchi fondamentali dell’elaborazione Componenti e funzionamento del calcolatore I blocchi fondamentali dell’elaborazione.
Introduzione al linguaggio assembly del microprocessore a parte
Introduzione al linguaggio assemby del microprocessore a parte
Architettura degli elaboratori
I vettore interruzioni
Istruzioni per la Manipolazione dei Bit
Architettura del calcolatore
Dimitri Caruso Classe 2^ Beat ISIS G. Meroni Anno Scolastico 2007/08
ARCHITETTURA DI UN ELABORATORE
Unità centrale di processo

1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
Architettura di una CPU
Il µP Intel 8086 Marco Lettieri 3 C Informatica A.S. 2009/2010 All’attenzione del Professor Claudio Gatto.
Tesina di fine corso Argomento: Corso: Professore: Autori:
Architettura IA - 16 M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Programmazione Assembly
Gestione dei dispositivi di I/O:
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
Sistemi Elettronici Programmabili
Relazione sulle strutture dati Svolta da: Buccella Simone Strutture di dati Aree di memoria Puntatore numericibooleani alfabetici Statici dinamici Puntatori.
Architettura di un calcolatore e linguaggio macchina.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
L’esecuzione dei programmi
I MICROPROCESSORI.
Fondamenti di Informatica1 Linguaggi Diversi tipi di linguaggi: –Imperativi –Funzionali –Dichiarativi Tutti basati sulla traduzione nell'unico linguaggio.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Il calcolatore Stefano Cagnoni e Monica Mordonini
Architettura IA - 16 M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Architettura 8086/8088 M. Rebaudengo - M. Sonza Reorda
Corso di Informatica Applicata Introduzione Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Ing. Saverio De.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
Aprile 2015Architettura degli Elaboratori - Mod. B - 2. Macchina di Mano1 Logica di controllo “hardwired”
IL PROCESSORE I MICROPROCESSORI INTEL Il microprocessore è un circuito integrato dotato di una struttura circuitale in grado di effettuare un determinato.
Comandi assembly Il termine assembly deriva dal programma traduttore in linguaggio macchina assembler, l’assemblatore non fa altro che assemblare il.
Transcript della presentazione:

Introduzione al linguaggio assembly del microprocessore 8086 3a parte Assembler Introduzione al linguaggio assembly del microprocessore 8086 3a parte

I registri dell’8086 Il microprocessore 8086 dispone di 14 registri per l’esecuzione delle operazioni aritmetiche e logiche e per l’indirizzamento delle aree dati, di programma e di catasta(stack). Alcuni registri sono associati a particolari operazioni. Accumulatore Base Conteggio Dati AH AL AX BX CX DX BH BL CH CL DH DL 15 8 7 0 Questi quattro registri vengono chiamati registri generali, essi possono essere visti anche come otto registri ad 8 bit.

I registri dell’8086 Il microprocessore 8086 dispone di 14 registri per l’esecuzione delle operazioni aritmetiche e logiche e per l’indirizzamento delle aree dati, di programma e di catasta(stack). Punt. a catasta Punt. base Indice Sorgente Indice Destinazione SP BP SI DI 15 0 Questi quattro registri vengono chiamati registri puntatori e vengono gestiti sempre a 16 bit.

I registri dell’8086 Il microprocessore 8086 dispone di 14 registri per l’esecuzione delle operazioni aritmetiche e logiche e per l’indirizzamento delle aree dati, di programma e di catasta(stack). Seg. Codice Seg. Dati Seg. Catasta Seg. Extra CS DS SS ES 15 0 Questi quattro registri vengono gestiti sempre a 16 bit e contengono gli indirizzi dei quattro segmenti in cui è strutturato un programma assembly.

I registri dell’8086 Il microprocessore 8086 dispone di 14 registri per l’esecuzione delle operazioni aritmetiche e logiche e per l’indirizzamento delle aree dati, di programma e di catasta(stack). Contatore di programma Reg. Flag IP 15 0 FLAG O D I T S Z A P C Questi due registri servono rispettivamente a: contenere l’indirizzo della prossima istruzione da eseguire (IP) a 16 bit; contenere valori binari che riflettono l’avverarsi o meno di alcuni eventi a seguito dell’esecuzione di un istruzione (FLAG), bit singoli.

Utilizzo dei registri Il registro AX serve da accumulatore principale. Operazioni aritmetiche e logiche vengono di solito effettuate su questo registro. Tutte le operazioni di ingresso e uscita vengono effettuate via AX. BX è il registro base. Questo è l’unico dei registri di uso generale che può anche essere utilizzato per puntare a locazioni di memoria. CX è il registro di conteggio. Il contenuto di CX viene automaticamente diminuito di 1 a ogni ciclo nell’esecuzione di istruzioni iterative, facilitando in questo modo molte operazioni su stringhe e di spostamento dati. Il registro dati DX è anche utilizzato come puntatore in alcune istruzioni di ingresso/uscita. I registri AX, BX, CX, DX possono essere usati liberamente per operazioni aritmetiche e logiche, a eccezione di alcune operazioni quali la moltiplicazione MUL, la divisione DIV e altre ancora che richiedono che alcuni degli operandi si trovino in registri prestabiliti.

Utilizzo dei registri Un secondo gruppo di registri è quello dei registri puntatori e indice. SP (stack pointer) è il puntatore all’inizio della catasta; viene automaticamente modificato all’esecuzione delle istruzioni PUSH, quando nuovi dati vengono messi in catasta, e POP quando i dati vengono tolti dalla catasta. BP è il puntatore base e serve per accedere direttamente a dati che si trovano sulla catasta. I due indici sorgente SI e destinazione DI puntano alla memoria dati. Essi vengono usati per passare più dati in successione da una locazione iniziale a una finale, ad esempio nel trasferimento di stringhe di caratteri.

Utilizzo dei registri I registri CS, DS, SS, ES puntano ai segmenti definiti in memoria. Il registro CS (code segment) punta al segmento contenente le istruzioni del programma, Il registro DS (data segment) punta al segmento dell’area dati Il registro SS (stack segment) al punta al segmento di catasta. Non è necessario che i segmenti siano localizzati in zone diverse della memoria; le rispettive aree possono coincidere. E’ infine a disposizione un altro registro di segmento, ES (extra segment). Esso è usato per indirizzare un’area dati diversa da quella alla quale fa riferimento DS.

Il registro delle flag Le 9 flag del sistema 8086 sono raccolte in un registro collettivo che ha come nome stato del processore. Ogni flag corrisponde ad un bit del registro di stato; i rimanenti 7 bit non sono utilizzati. Le flag non sono indirizzabili singolarmente, per l’accesso ad esse occorre far uso delle funzioni definite a questo scopo. Le flag sono: Carry, Parità, Auxiliary carry, Zero, Sign, Trap, Interrupt, Direction e Overflow. In generale, le flag servono sia per determinare le condizioni di esecuzione del processo, sia per riportare il risultato di un’operazione e gli eventuali errori. Per questo i valori delle flag vengono modificati mediante l’uso di apposite istruzioni e anche automaticamente durante l’esecuzione di operazioni aritmetiche e logiche. Le flag Carry, Auxiliary carry, Overflow e Sign riflettono il risultato dell’ultima operazione aritmetica che è stata eseguita, segnalando eventuali condizioni di errore. Le flag Parità e Zero indicano in maniera compatta le condizioni di parità sui bit di una parola e se il risultato di una operazione è uguale a zero. Le flag Direction, Interrupt e Trap sono sotto il controllo esclusivo dell’operatore. Direction indica se le operazioni di trasferimento di blocchi di dati vanno eseguite per indirizzi crescenti o decrescenti di memoria; Interrupt serve all’abilitazione o disabilitazione delle interruzioni e Trap mette il processore in un modo di esecuzione di una sola istruzione alla volta. Quest’ultima flag è di utilità in fase di controllo dei programmi.