CALCOLATORI ELETTRONICI II



Похожие документы
L Assembler 80x86 Concetti Generali. M. Rebaudengo M. Sonza Reorda P. Bernardi

Assembler 8086/8088: Concetti Generali

Assembler Intel 80x86: Struttura di un programma e Direttive

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

Capitolo Quarto...2 Le direttive di assemblaggio di ASM Premessa Program Location Counter e direttiva ORG

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

Calcolatori Elettronici Parte X: l'assemblatore as88

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

I database relazionali (Access)

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Access. P a r t e p r i m a

Architettura degli elaboratori (A)

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Architettura del calcolatore

Lezione 8. La macchina universale

Richiesta pagina PHP (es: index.php)

L utility Unix awk [Aho-Weinberger-Kernighan]

Esempio di moltiplicazione come somma e spostamento

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Le Mappe di Karnaugh.

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Alcune regole di base per scrivere un programma in linguaggio C

Introduzione al Foglio Elettronico

Il simulatore SPIM SPIM

SPECIFICHE E LIMITI DI EXCEL

Introduzione alla programmazione in C

Assembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Dati testuali. Caratteri e stringhe. Tipi di dato testuali. Dati testuali. Il sistema dei tipi C. Rappresentazione dei testi

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Informazione analogica e digitale

Le query. Lezione 6 a cura di Maria Novella Mosciatti

la scienza della rappresentazione e della elaborazione dell informazione

ASSEMBLER 68K parte 1

Prof. Alberto Postiglione Scienze della Comunicazione. Università degli Studi di Salerno

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni

Il Processore: i registri

Fogli Elettronici: MS Excel

LINGUAGGI DI PROGRAMMAZIONE

Introduzione al MATLAB c Parte 2

REQUISITI DISTINTA ELETTRONICA PREADVISING POSTA 1 PRO E MASSIVA DA RENDICONTARE. Edizione Settembre 2015

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

la scienza della rappresentazione e della elaborazione dell informazione

Excel. Excel. Videata iniziale Fogli elettronici. Fogli elettronici. Come si inserisce un dato

Un ripasso di aritmetica: Conversione dalla base 10 alla base 16

Raggruppamenti Conti Movimenti

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it

Le variabili. Olga Scotti

Potenzialità statistiche Excel

CPU. Maurizio Palesi

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Architettura hardware

Programmare in Java. Olga Scotti

SISTEMI DI NUMERAZIONE E CODICI

Microsoft Excel. Sommario. Cosa è un foglio elettronico. L interfaccia Utente. La cartella di Lavoro. Corso di introduzione all informatica

Editor vi. Editor vi

Ing. Paolo Domenici PREFAZIONE

Classe 3 A Inf - Alcune informazioni sull'uso del programma Debug

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

AXO Achitettura dei Calcolatori e Sistema Operativo. Instruction Set Architecture (ISA) e 68000

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Calcolatori: Algebra Booleana e Reti Logiche

Facoltà di Farmacia - Corso di Informatica

Codifica delle Informazioni

I.I.S. Primo Levi Badia Polesine A.S

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

introduzione I MICROCONTROLLORI

Uso delle basi di dati. Informazione e dato. Cos è un database. Tabelle. Esempi di database

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati

Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch.

DATABASE RELAZIONALI

TECNICHE AVANZATE DI I/O. Al loro livello più basso, tutti i file scritti sull hard disk. Training per esperti SU FILE

Cap. 3 Reti combinatorie: analisi e sintesi operatori logici e porte logiche

Sistemi di Elaborazione delle Informazioni. Corso di Laurea per "Tecnico Ortopedico" 03

Funzioni in C. Violetta Lonati

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Laboratorio di Architettura degli Elaboratori

La codifica delle informazioni

Esercizi per il recupero del debito formativo:

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

1 Carattere 1 2 Carattere 2 4 Carattere 4 X Carattere diverso da 1, 2, 4. Porta chiusa Porta aperta

Laboratorio di Informatica

Assemblaggio per il processore Motorola 68000

(anno accademico )

Una metodologia di progettazione di applicazioni web centrate sui dati

Variabili e tipi di dato

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Транскрипт:

CALCOLATORI ELETTRONICI II L ASSEMBLATORE Microsoft MASM MASM Argomenti della lezione Faremo riferimento al linguaggio sorgente accettato dall assemblatore Microsoft MASM nelle versioni successive alla 6.0 Generalità Direttive Operatori Linguaggio sorgente Generalità È definito dall'assemblatore, non dal processore 1

Case sensitivity Commenti L'assemblatore non distingue tra lettere maiuscole e minuscole Tutto ciò che segue il carattere ";" sino al termine della riga corrente è considerato un commento Istruzioni e direttive ; questa riga è un commento MOV AX, 0 ;istruzione di azzeramento I programmi sorgente Assembler sono composti di: istruzioni Generano ciascuna un istruzione macchina Istruzioni e direttive I programmi sorgente Assembler sono composti di: direttive (o pseudo-istruzioni) Sono comandi per l assemblatore Istruzione Direttiva ADD AX, 0 VAR1 DB? 2

Direttive Direttive Non corrispondono a nessuna istruzione nel codice macchina Possono essere raggruppate in: direttive per la definizione di variabili direttive per la definizione di costanti direttive per la gestione dei segmenti Direttive per la definizione di variabili Direttive per la definizione di variabili Richiedono all assemblatore di riservare nel segmento dati lo spazio per una variabile Richiedono all assemblatore di associare a tale spazio un nome simbolico Direttive per la definizione di variabili Richiedono all assemblatore di eventualmente inizializzare la variabile Formato [nome] direttiva valore direttiva BYTE (DB), WORD (DW), DWORD (DD), QWORD (DQ) 3

Formato [nome] direttiva valore valore Formato [nome] direttiva valore valore un valore numerico una stringa (tra apici) il carattere? il costrutto num DUP (val) che replica num volte il valore val Direttiva DB Esempi La direttiva DB (o BYTE) permette di definire strutture dati costituite da byte È utilizzata per la memorizzazione di: caratteri stringhe numeri interi ZETA DB "Z" CITTA DB "T","o","r","i","n","o" CITTA2 DB "Torino" STR2 DB 'Programma perfetto!' SEQ DB 1, 123, 84, -10 Operatore DUP Semplifica la definizione di strutture ripetute SEQ0 DB 20 DUP (0) SEQ20 DB 20 DUP (?) DB 4 DUP ("STACK") 4

Direttiva DW Esempi La direttiva DW (o WORD) permette di definire strutture dati costituite da word (2 byte) È utilizzata per la memorizzazione di: numeri interi SEQ DW 1, 350, -4000, 1024 LISTA DB 100 DUP (?) LIST_OFF DW LISTA indirizzi di offset La direttiva DD permette di definire strutture dati costituite da doubleword (4 byte) Direttiva DD È utilizzata per la memorizzazione di: numeri interi indirizzi interi (registro di segmento e offset) TAB DD 125000 LISTA DB 100 DUP (?) LIST_ADD DD Esempi LISTA Direttive per la definizione di costanti Definiscono costanti simboliche usate durante l assemblaggio Formato simbolo EQU espressione simbolo = espressione espressione può essere un espressione intera, o un indirizzo 5

Esempi Costanti colonne EQU 80 righe EQU 25 schermo EQU colonne*righe Nel codice assembler possono comparire costanti di tipo diverso: binarie ottali 001101B 15O, 15Q Costanti Costanti Nel codice assembler possono comparire costanti di tipo diverso: Nel codice assembler possono comparire costanti di tipo diverso: esadecimali decimali 72H, 0DH, 0BEACH (devono iniziare con un numero) 13, 13D stringhe reali in base 10 S, "Ciao" 2.345925, 715E-3 Direttive per la gestione dei segmenti Permettono la definizione e la gestione dei segmenti A partire dalla versione 5.0 sono state introdotte alcune direttive (.MODEL,.DATA,.CODE,.STACK) che semplificano il problema La direttiva.model definisce le modalità generali con cui è organizzato il modulo sorgente, in particolare il modello di memoria Direttiva.MODEL 6

Formato Modelli di memoria.model modello [opzioni,...] Il modello è obbligatorio e definisce le dimensioni dei segmenti di codice e di dato Il MASM supporta i modelli di memoria standard usati dai linguaggi di alto livello Microsoft Modelli di memoria Tiny I possibili modelli di memoria sono: Tiny Small Medium Compact Large Huge Flat Dati, codice e stack sono combinati in un unico segmento È il modello dei programmi.com Small Medium Prevede Prevede un segmento per il codice ed uno per dati e stack un segmento per dati e stack, più di un segmento per il codice 7

Compact Large Prevede Prevede un segmento per il codice, più di un segmento per dati e stack più di un segmento per il codice, più di un segmento per dati e stack Huge Flat Come nel modello large, ma una singola variabile può essere più grande di un segmento Gli offset sono su 32 bit È usato in Protected Mode Direttiva END END {etichetta} Conclude un modulo di programma Se il modulo contiene la prima istruzione del programma, la relativa etichetta deve essere specificata come operando Operatori 8

Operatori Operatori Si distinguono in Si distinguono in operatori per il calcolo degli attributi di una variabile operatori aritmetici, logici e relazionali Operatori Operatore OFFSET Si distinguono in operatori che modificano il tipo di una variabile Restituisce il valore dell'offset di una variabile Formato: OFFSET variabile Operatore SEG MOV BX, OFFSET VAR Restituisce l indirizzo di inizio del segmento a cui appartiene una variabile Formato: SEG variabile 9

Operatori aritmetici, logici e relazionali MOV MOV AX, SEG VAR DS, AX Aritmetici Logici +, -, *, /, MOD AND, OR, NOT, XOR Relazionali EQ, NE, LT, LE, GT, GE Operatori aritmetici, logici e relazionali Esempi Gli operatori possono comparire esclusivamente in espressioni valutabili al tempo di assemblaggio MOV AX, 31*2 MOV AX, BX*4 ; ERRORE! Formato: Operatore PTR L operatore PTR forza l assemblatore a modificare per l'istruzione corrente il tipo di una variabile tipo PTR nome.data TOT DW?.CODE MOV BH, BYTE PTR TOT MOV CH, BYTE PTR TOT+1 10

2 2 INC [BX] La cella da incrementare corrisponde ad una word o ad un byte? Soluzione: INC BYTE PTR [BX] L assemblatore segnala errore CALCOLATORI ELETTRONICI II 11