36
UNIVERSITÀ DEGLI STUDI DI CAGLIARI Facoltà di Scienze Corso di Laurea in Informatica Danilo Dessì [email protected] CORSO DI ARCHITETTURA DEGLI ELABORATORI Il Processore 8088

C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Embed Size (px)

Citation preview

Page 1: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

UNIVERSITÀ DEGLI STUDI DI CAGLIARI

Facoltà di ScienzeCorso di Laurea in Informatica

Danilo Dessì[email protected]

CORSO DI ARCHITETTURA DEGLI ELABORATORI

Il Processore 8088

Page 2: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Processore 8088

Architettura degli elaboratori 8088

• Il processore 8088 è stato progettato dalla Intel nel periodo 1978/1979

• La sua architettura è simile a quella dell’8086; utilizza meno bit per il busdati (8 invece di 16)

• È stato progettato per permettere il riutilizzo di componenti che lavoravanocon 8 bit non più compatibili con l’8086

• L’8088 fu scelto come processore per il primo PC IBM e divenne unostandard per la produzione dei personal computer

Page 3: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Caratteristiche

Architettura degli elaboratori 8088

• Architettura a 16 bit

• Bus dati a 8 bit

• Bus indirizzi a 20 bit

• Memoria indirizzabile: 220 = 1 MB

• I segmenti di codice possono essere di soli 64 KB

• Coda di istruzioni a 4 byte

Page 4: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura

Architettura degli elaboratori 8088

Page 5: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura

Architettura degli elaboratori 8088

• Il processore è organizzato in due sezioni separate: BIU e EU

• BIU (Bus Interface Unit) che ha il compito di generare indirizzi per iltrasferimento dei dati e delle istruzioni fra la memoria o i dispositivi di I/O eil processore

• EU (Execution Unit) che riceve le istruzioni del programma e i dati, eseguele istruzioni, e memorizza i risultati nei registri interni

• Attraverso la BIU i risultati possono essere memorizzati in memoria o scrittisu un dispositivo di output

Page 6: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Registro a uso generale

Architettura degli elaboratori 8088

• Il registro AX si chiama registroaccumulatore, è usato per memorizzare ilrisultato dell’elaborazione. È il registrodestinazione implicito di molte istruzioni

• Il registro BX può essere utilizzato permemorizzare e accedere a un indirizzo dimemoria il cui contenuto può essereutilizzato come operando senza iltrasferimento all’interno del processore

• Il registro CX svolge la funzione dicontatore con alcune istruzioni progettateper implementare iterazioni

• Il registro DX è detto registro dati. E’ usatoin coppia al registro AX per memorizzarerisultati a 32 bit

• Sono registri a cui si può accedere al byte (8 bit) o al word (16 bit)

È importante capire che AL e AH sono semplicemente i nomi delle due metà di AX

Page 7: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Registri puntatore e indice

Architettura degli elaboratori 8088

• Il registro SP è il registro che contienel’indirizzo della cima dello stack. Lo stack èutilizzato per la gestione delle chiamate alleprocedure tramite i record di attivazione oper la memorizzazione di risultatitemporanei

• Il registro BP è il registro puntatore base.Può puntare a una qualsiasi locazione dellostack

• I registri indice SI e DI, sorgente edestinazione, sono registri utilizzati assiemeal registro BP per accedere ai dati sullostack o a BX per accedere ai dati inmemoria

Page 8: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Registi IP e FLAG

Architettura degli elaboratori 8088

• Il registro IP (Instruction Pointer) è ilprogram counter. E’ utilizzato per l’operazionedi fetch delle istruzioni

• Il registro di flag è un insieme di registri aun bit che vengono impostati in base airisultati ottenuti nelle operazioniaritmetiche o per modificare lo stato difunzionamento• Z il risultato è zero• S il risultato è negativo• O il risultato ha causato overflow• C il risultato ha generato un riporto• A riporto ausiliario• P parità del risultato• I attiva gli interrupt• T abilita il tracing

• D operazioni su stringhe

Page 9: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Registri segmento

Architettura degli elaboratori 8088

• Le parti che compongono unprogramma possono trovarsi indifferenti posizioni di memoria

• Questi registri sono utilizzati perla gestione di queste porzioni chevengono chiamate segmenti

Page 10: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Struttura programma assembly

Architettura degli elaboratori 8088

• Ogni programma assembly ha tre sezioni:1) Sezione di TESTO (direttiva .SECT .TEXT) che contiene le istruzioni del

programma2) Sezione DATI (direttiva .SECT .DATA) che alloca lo spazio nel segmento dati per i

dati inizializzati3) Sezione BSS (direttiva .SECT .BSS) che alloca lo spazio nel segmento dati per i

dati non inizializzati

• È possibile definire etichette di due tipi:• Globali: identificatori alfanumerici seguiti dal simbolo «:»• Locali: utilizzabili solo nel segmento testo, costituite da una sola cifra e seguite

dal simbolo «:»

• Le etichette globali devono essere univoche

• I commenti iniziano con il carattere «!»

• I programmi vengono scritti in file di testo con estensione .s

Page 11: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Assemblatore e Tracer

Architettura degli elaboratori 8088

• Compilatore:• È un programma che riceve in ingresso un programma scritto in

linguaggio ad alto livello e lo trasforma in un programma assemblativo

• Assemblatore:• È un programma che riceve in ingresso un programma in linguaggio

assemblativo e genera un programma in linguaggio macchina (binario)che può essere eseguito dall’hardware (codice oggetto)

• Tracer:• Simulatore dell’esecuzione del programma scritto in linguaggio

assemblativo• Consente di procedere step-by-step• È utilizzato come debugger

Page 12: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Tracer t88

Architettura degli elaboratori 8088

• Il tracer consente di effettuare l’esecuzione step-by-step del programma edi monitorare lo stato del processore (usatelo!)

Page 13: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Uso dei simulatori

Architettura degli elaboratori 8088

• Abbiamo tre files eseguibili:• as88 -> assemblatore• t88 -> tracer• s88 -> esecutore (esegue il programma ma non ci mostra cosa

succede nel processore)

• Per avviarli dovete andare nella directory che contiene i files

1. ./as88 mio_programma.s -> per assemblare il programma2. ./t88 mio_programma -> per eseguire il programma step-by-step

Page 14: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Istruzione MOV(B)

• Trasferisce un byte o un word da una sorgente a una destinazione senzaalterare il contenuto della sorgente

• destinazione: operando che sta sulla sinistra• sorgente: operando che sta sulla destra

• Per trasferire un solo byte si aggiunge una B -> MOVB

• Vincoli:• Non è possibile caricare un valore immediato in un registro segmento• Il registro CS non può essere registro destinazione in un’istruzione MOV• L’operando destinazione deve permettere la memorizzazione

dell’informazione (registro, stack, locazione di memoria ecc.)

• Indirizzamento dell’istruzione:• Registro – indirizzo effettivo (Es. MOV AX, (BX))• Indirizzo effettivo – registro (Es. MOV (200), CX)• Indirizzo effettivo – dato immediato (Es. AX, 10)

Page 15: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

• Nell’indirizzamento a registro l’operando si trova nei registri e non ènecessario accedere alla memoria

• Esempio: CX = 5; MOV AX, CX; AX = 5

• Nell’indirizzamento immediato l’operando è contenuto direttamentenell’istruzione e può essere un valore costante a 8 o 16 bit

• Esempio: MOV AX, 5; AX = 5

Indirizzamento a registro immediato

Page 16: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Indirizzamento diretto

• L’operando contiene l’indirizzo dei dati

MOVB AL, (3)

00000

00001

00002

00003

00004

……….3081039

AL

FFFFF

AL 8

Memoria

Page 17: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Indirizzamento indiretto a registro

• L’indirizzo dell’operando è memorizzato in uno dei registri BX, SI o DI

MOVB AL, (BX)

00000

00001

00002

00003

00004

……….3081039

AL

FFFFF

AL 8

BX 3 BX 3

Memoria

Page 18: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Indirizzamento indiretto a registro con spiazzamento

• L’indirizzo si ottiene dalla somma del contenuto di uno dei registri BX, SIo DI e una costante

MOVB AL, 1(SI)

00000

00001

00002

00003

00004

……….3081039

AL

FFFFF

AL 30

SI 3 SI 3

Memoria

Page 19: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Indirizzamento a registro indice

• L’indirizzo si ottiene dalla somma dei contenuti di uno dei registri SI o DIcon BX

MOVB AL, (BX)(SI)

AL

00000

00001

00002

00003

00004

……….3081039

Memoria

FFFFF

BX 1

SI 3

AL 30

BX 1

SI 3

Page 20: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Indirizzamento a registro indice con spiazzamento

• L’indirizzo si ottiene dalla somma di uno dei registri SI o DI, una costantee BX

MOVB AL, 1(BX)(SI)

AL

00000

00001

00002

00003

00004

……….3081039

Memoria

FFFFF

BX 1

SI 2

AL 30

BX 1

SI 2

Page 21: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Istruzioni XCHG(B) & LEA

• XCHG scambia il contenuto di un registro con il contenuto di un indirizzoeffettivo

• XCHG AX, BX -> Scambia il contenuto dei registri AX e BX• XCHG AX, (BX) -> Scambia il contenuto del registro AX con il contenuto

della locazione di memoria puntata da BX

• Vincoli:• L’operando destinazione deve essere un registro

• LEA calcola il valore numerico di un indirizzo effettivo e lo memorizza in unregistro

• LEA AX, 5 -> Mette 5 in AX• LEA AX, 5(BX) -> Mette in AX la somma di 5 con il contenuto di BX

Page 22: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Istruzione ADD(B)

• Somma l’operando sorgente all’operando destinazione e mette il risultatonell’operando destinazione

• Questa istruzione va a modificare il contenuto del registro dei flags

• ADD AX, BX -> somma il contenuto del registro AX al contenuto del registroBX e memorizza il risultato in AX

• Vincoli:• L’operando destinazione deve permettere la memorizzazione

dell’informazione

• Esiste la variante ADC che comprende nella somma il flag di riporto

• Indirizzamento dell’istruzione:• Registro – indirizzo effettivo (Es. ADD AX, (BX))• Indirizzo effettivo – registro (Es. ADD (AX), CX)• Indirizzo effettivo – dato immediato (Es. ADD (200), 10)

Page 23: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Istruzione SUB(B)

• Sottrae l’operando sorgente all’operando destinazione e mette il risultatonell’operando destinazione

• Questa istruzione va a modificare il contenuto del registro dei flags

• SUB AX, BX -> sottrae al contenuto del registro AX il contenuto del registroBX e memorizza il risultato in AX

• Vincoli:• L’operando destinazione deve permettere la memorizzazione

dell’informazione

• Indirizzamento dell’istruzione:• Registro – indirizzo effettivo (Es. SUB AX, (BX))• Indirizzo effettivo – registro (Es. SUB (AX), CX)• Indirizzo effettivo – dato immediato (Es. SUB (200), 10)

Page 24: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Istruzione MUL(B)

• Moltiplica due valori senza considerare il segno

• Il formato prevede che a MUL sia passato un solo operando (istruzioneunaria) che prende il nome di source è deve essere un indirizzo effettivo:• L’altro operando (implicito) è il registro accumulatore (AX nel caso di

moltiplicazione a 16 bit, AL nel caso di moltiplicazione a 8 bit)• Il risultato è contenuto nel registro AX se la moltiplicazione è fatta

utilizzando 8 bit (MULB)• Il risultato è contenuto nella coppia DX:AX se la moltiplicazione è

fatta utilizzando 16 bit (MUL)

• Per eseguire una moltiplicazione con segno si utilizza l’istruzione IMUL

• Per eseguire 10 * 5:

• MOVB AL, 10• MOVB AH, 5• MULB AH

Page 25: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Istruzione DIV(B)

• Divide due valori senza considerare il segno

• Il formato prevede che all’istruzione DIV come la MUL sia passato un solooperando (source = indirizzo effettivo) . L’operando che viene passatoè il divisore• L’altro operando (implicito) è il registro accumulatore (DX:AX nel

caso di divisione a 16 bit, AX nel caso di divisione a 8 bit) chefunziona da dividendo

• Se l’operando esplicito è di 8 bit il dividendo è il registro AX; ilquoziente viene messo nel registro AL e il resto in AH (DIVB)

• Se l’operando esplicito è a 16 bit il dividendo è dato dalla coppia diregistri DX:AX; il quoziente viene messo nel registro AX e il resto inDX (DIV)

• Per eseguire una divisione con segno, similmente alla moltiplicazione, siutilizza l’istruzione IDIV

Page 26: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Istruzioni PUSH e POP

• L’istruzione PUSH aggiunge un elemento nella cima stack mentrel’istruzione POP rimuove un elemento dalla cima dello stack

• Entrambe le istruzioni lavorano sulla locazione individuata dalla copia diregistri SS:SP e modificano il valore del registro SP (Stack Pointer)

• Esempi: PUSH 10, PUSH AX, POP BX

• Esistono le istruzioni PUSHF e POPF per aggiungere o rimuovere dallostack il contenuto del registro dei flags

Page 27: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Istruzioni logiche

• Istruzioni logiche unarie:• Istruzione NEG(B) che cambia il segno dell’operando• Istruzione NOT(B) che esegue il complemento• Operazione INC(B)/DEC(B) che incrementa/diminuisce di 1 il suo operando• L’operando deve essere un indirizzo effettivo (Es. NEG AX, NEG (100))

• Principali istruzioni sui bit (con due operandi):• Istruzione AND(B)• Istruzione OR(B)• Istruzione XOR(B)• Indirizzamento:

• Registro - indirizzo effettivo (Es. AND AX, BX)• Indirizzo effettivo – registro (Es. OR (300), DX)• Indirizzo effettivo – operando immediato (Es. XOR (AX), 5)

Page 28: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Istruzione JMP

• L’istruzione JMP trasferisce il controllo all’istruzione specificata saltando inmodo incondizionato

• Sono possibili due tipi di salto:• Salto corto: l’istruzione da eseguire si trova nel segmento corrente• Salto lungo: l’istruzione da eseguire si trova in un altro segmento; in tal caso si

modifica il contenuto del registro CS

• Esempio:

JMP labelADD AX, BX

label:SUB AX, BX

• Viene eseguita la SUB

Page 29: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Istruzioni CMP e J…

• L’istruzione CMP effettua il confronto fra due operandi impostandoopportunamente i bit nel registro dei flags

• Le istruzioni J permettono dicontrollare lo stato dei flag edi saltare se corrispondonoalla verifica che viene fatta

• Sono utilizzate in coppia persaltare all’interno delprogramma in manieracondizionata

Page 30: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Condizioni e cicli

:

Page 31: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Istruzione LOOP

• L’istruzione LOOP permette di implementare un ciclo

• Il registro CX deve essere inizializzato con il numero di volte in cui il ciclodeve essere eseguito

• Per ogni esecuzione del ciclo:• Il registro CX viene decrementato• Se CX vale 0, l’esecuzione continua con l’istruzione successiva all’istruzione

LOOP (si esce dal ciclo)• Se CX è maggiore di 0, allora viene eseguito il salto all’etichetta specificata

• Varianti:• LOOPZ o LOOPE: cicla se CX > 0 e se il bit Z = 1• LOOPNZ o LOOPNE: cicla se CX > 0 e se il bit Z = 0

Page 32: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Variabili

• Vanno inserite nella sezione .SECT .DATA se possono essere inizializzate onella sezione .BSS se non si conosce il loro valore

• Si utilizzano le direttive• .BYTE per dichiarare una variabile a 8 bit• .WORD per dichiarare una variabile a 16 bit• .SPACE per allocare uno spazio qualsiasi

• .SECT .DATA• a: .WORD 10 ! Variabile a 16 bit• b: .BYTE 12 ! Variabile a 8 bit• Array: .WORD 5,10,15 ! Array di tre words

• .SECT .BSS• c: .SPACE 2 ! alloca 2 byte

• Per accedere al contenuto della variabile si utilizzano ():• MOV AX, (a) -> Copia il contenuto della variabile a in AX• MOV AX, a -> Copia l’indirizzo della variabile a in AX

Page 33: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Esempio 1

Scrivere un programma per 8088 che presi i dati a = 5, b = 7, c = 10 inmemoria calcola l’espressione (a + 3) * b / c e salva il risultato in unavariabile d

Page 34: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Esempio 2 Scrivere un programma per 8088 che trovi il massimo valore contenuto nelvettore: 2,5,1,7,3,10,12,4

Page 35: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

AAAA7 - 1

Page 36: C ARCHITETTURA DEGLI ELABORATORI Il Processore 8088people.unica.it/danilodessi/files/2018/05/07-8088-intro.pdf · Architettura degli elaboratori 8088 • Architettura a 16 bit •

Architettura degli elaboratori 8088

Esercizi

1) Scrivere un programma in linguaggio assemblativo 8088 che, preso unintero n in memoria, calcola la somma dei primi n interi

2) Scrivere un programma in linguaggio assemblativo 8088 che calcola lasomma degli elementi di un vettore vec memorizzato in memoriaprincipale.

3) Scrivere un programma in linguaggio assemblativo 8088 che mette in una variabile cresc 1 se gli elementi sono ordinati in modo strettamente crescente, 0 altrimenti