Assembly. Modello x86

Documenti analoghi
Famiglia dei processori INTEL

Nel microprocessore 8086 abbiamo una gran quantità di registri

Architettura degli Elaboratori

Architettura degli Elaboratori

ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088

ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088

ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088

Architettura degli elaboratori (A)

ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088

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

ARCHITETTURA DEL MICROPROCESSORE INTEL 8086 (iapx86/10)

Linguaggio Assembler Intel -cenni - Calcolatori Elettronici B a.a. 2005/2006 Massimiliano Giacomin

Il microprocessore 8086

Calcolatori Elettronici Lezione A2 Architettura i8086

Architettura 8086/8088

L insieme delle istruzioni (6)

Sistemi Operativi. Introduzione all architettura IA-32 Lez. 16. Corso: Sistemi Operativi Danilo Bruschi A.A. 2010/2011

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

L architettura Intel

Architettura di una CPU

iafelice at cs(dot)unibo(dot)it

Questi trasparenti sono una versione estesa di quelli prodotti per il consorzio NETTUNO. 01/04/03 G. Bucci - Calcolatori Elettoronici 1

Il livello architettura e set di istruzioni

Ing. Gabriele MONTI

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Componenti principali

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Parte VI. Istruzioni ed indirizzamento

Consegne estive per gli studenti con sospensione del giudizio nella materia Sistemi per l'elaborazione e la trasmissione dell'informazione.

Hardware di un Computer

Parte V. Il Livello delle Istruzioni Macchina

Componenti e connessioni. Capitolo 3

Scopo della lezione. Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato

Sistemi x86 CALCOLATORI ELETTRONICI LM

Lezione XII: La gestione delle eccezioni in MINIX

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

ARCHITETTURA DEI CALCOLATORI VOLUME I

Interazione con il DOS e il BIOS

Cenni ad Assembly Intel

Breve guida AL LINGUAGGIO ASSEMBLY (emulatore EMU8086)

Esercizi per il recupero del debito formativo:

Modi di indirizzamento

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

HARDWARE E SOFTWARE DEL µp 8086

Macchina di Riferimento: argomenti

Sistemi Operativi 1. Mattia Monga. 6 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

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

Programmazione Assembly Note su Microsoft Assembler

Programmazione Assembly

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

Architettura dei Calcolatori elettronici

Il linguaggio assembly

MDR MAR IR RN ALU PC FLAG DATA BUS BANCO DEI REGISTRI ADDRESS BUS MODELLO DI PROGRAMMAZIONE(A REA ACCESSIBILE DECODIFICA DELLE ISTRUZIONI CLOCK

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

ARCHITETTURA DI UN CALCOLATORE ELETTRONICO

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

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

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

Il linguaggio assembly 8086

Programmazione Assembly per 8088: Esercizi svolti

FONDAMENTI DI INFORMATICA Lezione n. 11

Il processore Pentium (G. Manduchi - M. Moro )

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

Il processore. Istituzionii di Informatica -- Rossano Gaeta

ARCHITETTURA DI UN ELABORATORE

Il microprocessore DMC8

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

CALCOLATORI ELETTRONICI II

CAPITOLO 4: BASI DI ASSEMBLY

PASSI DI SVILUPPO DI UN PROGRAMMA: ESEMPIO

Componenti di un processore

Il Processore: l unità di controllo

SET/CLEAR LOAD DATA FROM STRING

Lezione 15. L elaboratore Elettronico

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

ARCHITETTURA DI UN ELABORATORE

Informatica (A-K) 3. Architettura del Computer

1.8 Architettura interna della CPU

Microcontrollori 12/03/2014. Progettazione Sistemi Elettronici 2013/2014 1

Numeri Reali. Sottoinsieme discreto dei Numeri Razionali. Sequenze di bit. Underflow. Densità che dipende dal numero di bit usati

Architettura di un calcolatore: Introduzione parte 2

Calcolatori Elettronici Parte VII: il Livello delle Istruzioni Macchina

Fondamenti di Informatica

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

1 Esercizi con architettura a 1 bus

ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE

Istruzioni di modifica della sequenza di elaborazione

Lezione4: MIPS e Istruzioni (1 Parte)

PROGRAMMAZIONE MISTA. G. Frosini Programmazione mista Slide 1

Introduzione ai Sistemi Operativi

Gestione della memoria centrale. Marco Cesati. Schema della lezione. Memoria centrale. Linux su Intel IA-32 SO Gestione della memoria centrale

Cosa è? Come lo si usa? Come iniziare? Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Linguaggio Assembly e linguaggio macchina

A.S. 2017/2018 PIANO DI LAVORO PREVENTIVO CLASSE 4Be

Il processore Pentium

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale

Sistemi Operativi. Introduzione all architettura IA-32 Lez. 15. Corso: Sistemi Operativi Danilo Bruschi A.A. 2014/2015

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

CLASSIFICAZIONE DEI SISTEMI DI ELABORAZIONE AUTOMATICA DELL INFORMAZIONE

Il linguaggio macchina

Transcript:

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 Nel mercato ci sono diversi microprocessori tra loro differenti a livello fisico e software; In comune hanno: La dimensione delle celle di memoria: 1, 2, 4, 8 byte; Il numero ed il tipo di registri interni: 8, 16, 32, 64 bit; L ampiezza dei bus (dati ed indirizzi); Il numero di istruzioni: ridotte (RISC) o complesse (CISC); La dimensione delle istruzioni. 3

CPU INTEL 8086 L 8086 è un microprocessore a 16 bit. Le caratteristiche principali sono: Capacità di indirizzamento: 1 MB Bus indirizzi da 20 bit; 14 registri interni da 16 bit; Bus dati da 16 bit; Alimentazione a 5 volt; 48 pin di interconnessione (dual in line); Set di istruzioni esteso (CISC). 4

Architettura della CPU 5

SEGMENT POINTER GENERAL PURPOSE Registri dell 8086 AX (ACCUMULATOR) BX (BASE) CX (COUNTER) DX (DATA) 15 AH BH CH DH 8-7 AL BL CL DL 0 SP (STACK POINTER) BP (BASE POINTER) SI (SOURCE INDEX) DI (DESTINATION INDEX) SP BP SI DI IP (INSTRUCTION POINTER) IP CS (CODE SEGMENT) DS (DATA SEGMENT) SS (STACK SEGMENT) ES (EXTRA SEGMENT) CS DS SS ES FLAGS FLAGS 6

Registri General Purpose AX Accumulatore (diviso in AH e AL) BX Puntatore memoria (diviso in BH e BL) CX Contatore di cicli (diviso in CH e CL) DX Dati (diviso in DH e DL) 7

Registri speciali Instruction Register: contiene il codice operativo dell istruzione prelevata dalla memoria durante il fetch; Instruction pointer: contiene l indirizzo di memoria in cui è contenuta l istruzione immediatamente successiva a quella attuale; Stack Pointer: contiene l indirizzo di una zona di memoria interna chiamata Stack; Flag Register: gruppo di bit che forniscono una serie di informazioni sullo stato dei risultati dell ultima operazione. Address Registers: sono i registri che contengono gli indirizzi dei vari segmenti di memoria: Code Segment Data Segment Stack Segment Extra Segment 8

Registri Segment CS: Code Segment Register Contiene sempre l indirizzo di testa del segmento contenente il codice; viene inizializzato dal Sistema Operativo e non deve essere utilizzato dal programmatore. SS: Stack Segment Register Contiene sempre l indirizzo di testa del segmento contenente lo stack; viene inizializzato dal Sistema Operativo e non deve essere modificato dal programmatore. DS: Data Segment Register di solito contiene l indirizzo di testa del segmento dei dati utilizzati dal programma; deve essere inizializzato dal programmatore all interno del suo programma. ES: Extra Segment Register può essere utilizzato per definire un segmento ausiliario, per esempio per un ulteriore segmento dati; deve essere inizializzato dal programmatore 9 all interno del suo programma.

Registri Pointer SP BP SI DI IP Puntatore alla memoria di Stack (SS:SP) Di solito punta alla memoria di Stack (SS:BP) Puntatore alla memoria del segmento dati (DS:SI) Puntatore alla memoria del segmento dati esteso (ES:DI) Puntatore all indirizzo dell istruzione successiva (CS:IP) 10

Gestione della RAM Per comodità la memoria si può pensare divisa in: Paragrafi: Sono zone di memoria costituite da 16B contigui. Il sistema può gestire fino a 65536 (64K) paragrafi. I paragrafi sono numerati a partire dalla locazione di memoria00000h. I paragrafi non possono sovrapporsi. Segmenti: Sono zone di memoria costituite da 64KB contigui. Il sistema può gestire fino a 65536 (64K) segmenti; Ogni segmento inizia in corrispondenza di un paragrafo, ossia ad un indirizzo multiplo di 16 (10h). I segmenti possono sovrapporsi (Overlapping Segments). 11

Paragrafi e segmenti Indirizzo 00000h 00010h 00020h FFFFFh 12

Calcolo dell indirizzo fisico L indirizzo fisico di una cella di memoria è espresso da 20 bit; non è quindi possibile un indirizzamento mediante un solo registro a 16 bit. Esso è infatti ottenuto mediante la somma di due contributi: Segment Address: è l indirizzo di testa del segmento e viene ottenuto moltiplicando per 16 il numero del segmento (shift di 4 bit a sinistra). Offset: è l indirizzo relativo all interno del segmento. 13

Esempio di indirizzamento INDIRIZZO [SEGMENT:OFFSET] A100:0200 OFFSET 0 2 0 0 SEGMENT A 1 0 0 PHYSICAL ADDRESS A 1 2 0 0 14

Organizzazione della memoria RAM Segmenti Puntatori STACK SEGMENT Stack Segment Stack Offset CODE SEGMENT DATA SEGMENT EXTRA SEGMENT Code Segment Data Segment Extra Segment Code Offset Data Offset Extra Offset 15

La memoria di Stack Indirizzo SS:SP 0 1 0 5 0 0 1 2 0 1 0 6 2 0 1 0 5 0 0 1 0 0 1 0 6 0 0 1 0 5 0 0 0 E 0 1 0 5 E 0 1 0 5 0 0 1 0 0 1 0 6 0 16

Flag 17

Flag di stato Forniscono indicazioni relative al risultato dell ultima istruzione eseguita. Vengono automaticamente aggiornati dal processore ed il loro valore può essere testato dall utente tramite opportune istruzioni. I principali sono: Carry Flag (CF) indica se un istruzione di somma (o sottrazione) produce un riporto (o un prestito); Parity Flag (PF) indica se il risultato di una operazione contiene un numero pari di 1; usato principalmente per trasmissione dati. Zero Flag (ZF) indica se il risultato di una operazione è un valore nullo; Sign Flag (SF) ripete il valore del bit più significativo del risultato di una operazione; Overflow Flag (OF) indica se un operazione aritmetica dà origine ad una condizione di overflow. 18

Flag di controllo Il loro valore può essere forzato dall utente attraverso apposite istruzioni. In determinate situazioni sono testati dal processore che, a seconda del loro valore, si comporta in modi diversi. Trap Flag (TF) usato in ambiente di debug, causa l esecuzione single-step dei programmi Interrupt Enable Flag (IF) usato per disabilitare (quando uguale a 0) eventuali richieste di interruzioni esterne (interrupt) Direction Flag (DF) usato nelle operazioni sulle stringhe per regolare l incremento (DF=0) o il decremento (DF=1) dei Registri Indice 19

Modello di programmazione x86 Un modello di programmazione è la parte dell architettura di un microprocessore accessibile al programmatore: registri ed istruzioni L architettura x86 rappresenta il modello di programmazione dei processori 8086 e successivi (80286, 80386, 80486, Pentium, ) detti anche PC compatibili 20

Evoluzione dell 8086 21

SEGMENT POINTER GENERAL PURPOSE Registri dell x86 EAX (ACCUMULATOR) EBX (BASE) ECX (COUNTER) EDX (DATA) 31 EAX EBX ECX EDX 15 AH BH CH DH 8-7 AL BL CL DL 0 ESP (STACK POINTER) ESP SP EBP (BASE POINTER) ESI (SOURCE INDEX) EDI (DESTINATION INDEX) EBP ESI EDI BP SI DI EIP (INSTRUCTION PTR) EIP IP CS (CODE SEGMENT) CS DS (DATA SEGMENT) DS SS (STACK SEGMENT) SS ES (EXTRA SEGMENT) ES EFLAGS EFLAGS FLAGS 22