SlideShare a Scribd company logo
1 of 20
Download to read offline
Sistemi a Microprocessore                                          Formato istruzioni e direttive




                      Sistemi a Microprocessore


                                    ASSEMBLER 8086:
                                  FORMATO ISTRUZIONI E
                                       DIRETTIVE


                                                                        1




                            Formato delle istruzioni
                   Il formato delle istruzioni è il seguente:
                   [label] istruzione/direttiva [operando/i] [; commento]
                   • label consente di dare un nome simbolico (da
                       utilizzare come operando in altre istruzioni) a
                       variabili di memoria, valori, singole istruzioni,
                       procedure
                   • istruzione/direttiva è il mnemonico per
                       un’istruzione eseguibile o una direttiva; individua
                       il tipo di operazione da eseguire e il numero e il
                       tipo degli operandi
                                                                            2




Sergio PORCU                                                                                   1
Sistemi a Microprocessore                                          Formato istruzioni e direttive




                              Formato delle istruzioni
                      •     operando/i è una combinazione di nessuna,
                            una o più costanti, riferimenti a registri o
                            riferimenti alla memoria; se un’istruzione
                            ammette due operandi:
                              il primo è l’operando destinazione
                              il secondo è l’operando sorgente
                            ad esempio, MOV AX, CX copia il contenuto
                               del registro CX nel registro AX
                      •     commento consente di rendere più
                            leggibile il programma

                                                                         3




                              Formato delle istruzioni

                      È indifferente l’uso di lettere maiuscole o
                         minuscole. Il tipo di operandi ammessi
                         varia da istruzione a istruzione.
                         Esistono istruzioni che ammettono
                         come operando solo una costante o
                         solo un particolare registro generale.


                                                                         4




Sergio PORCU                                                                                   2
Sistemi a Microprocessore                                           Formato istruzioni e direttive




                                      Nomi simbolici
                      •     Caratteri ammessi per i nomi simbolici:
                            •   A-Z a-z 0-9 _ $ ? @
                      •     Il primo carattere di un nome non può
                            essere digit (0-9)
                      •     Ogni nome deve essere univoco (in genere,
                            all’interno del modulo in cui viene definito)
                      •     Non deve coincidere con una parola
                            riservata (ad esempio, il nome di un registro
                            o di un operatore)

                                                                             5




                                  Costanti numeriche

                      •     Di default, tutti i valori numerici sono
                            espressi in base dieci
                      •     È possibile esprimere le costanti
                            numeriche:
                            •   in base 16 (esadecimale) mediante il
                                suffisso H (il primo digit deve essere
                                numerico)
                            •   in base 8 (ottale) mediante il suffisso O
                            •   in base 2 (binario) mediante il suffisso B
                                                                             6




Sergio PORCU                                                                                    3
Sistemi a Microprocessore                                 Formato istruzioni e direttive




                             Costanti numeriche

                      Ad esempio:
                      00FFh
                      0h
                      777O
                      11001B
                      FFh     errata!
                      778O    errata!
                                                                7




                                    Direttive

                      Le direttive sono istruzioni di tipo
                        dichiarativo che forniscono
                        informazioni agli strumenti di sviluppo
                        dei programmi. In particolare, alcune di
                        queste direttive fanno sì che
                        l’assemblatore generi al loro posto una
                        serie opportuna di istruzioni; in questo
                        caso tali direttive sono assimilabili a
                        macro predefinite.
                                                                8




Sergio PORCU                                                                          4
Sistemi a Microprocessore                                       Formato istruzioni e direttive




                            Direttive semplificate per la
                               gestione dei segmenti

                      •     Modelli di memoria
                      •     Creazione dello stack
                      •     Creazione del segmento di dato
                      •     Creazione del segmento di codice




                                                                       9




                                Modelli di memoria

                      La direttiva .MODEL definisce alcuni attributi
                         che condizionano l’intero modulo ed è
                         necessaria per abilitare la gestione
                         semplificata dei segmenti. Deve essere
                         posta nel file sorgente prima di ogni altra
                         direttiva di segmento.
                      Sintassi:
                                .MODEL modello {, opzione ...}

                                                                       10




Sergio PORCU                                                                                5
Sistemi a Microprocessore                                        Formato istruzioni e direttive




                                 Modelli di memoria
                      I modelli possono essere:
                      • TINY: il codice e i dati sono in un unico
                         segmento di 64k byte. Usato nei file COM
                      • SMALL: un segmento per il codice ed uno
                         per i dati e lo stack. Entrambi non oltre i 64k
                         byte
                      • MEDIUM: il codice usa più segmenti
                         (superata barriera dei 64k byte). I dati e lo
                         stack come SMALL

                                                                       11




                                 Modelli di memoria
                      •     COMPACT: è come SMALL, ma per
                            accedere ai dati si usano i puntatori FAR
                            che superano i 64k byte
                      •     LARGE: è come MEDIUM, ma per accedere
                            ai dati si usano i puntatori FAR che
                            superano i 64k byte
                      •     FLAT: modalità a 32 bit dei processori
                            386+. Abolito il metodo SEG:OFFSET,
                            l’indirizzo è dato da un unico numero a 32
                            bit
                                                                       12




Sergio PORCU                                                                                 6
Sistemi a Microprocessore                                      Formato istruzioni e direttive




                              Creazione dello stack

                      La direttiva .STACK permette di riservare
                        uno spazio di memoria per lo stack; il
                        formato di tale direttiva è il seguente:
                                     .STACK {mem}
                      Tale direttiva riserva uno spazio di
                        memoria pari a mem byte. Per default
                        lo spazio riservato per lo stack è di 1k
                        byte.
                                                                     13




                            Creazione del segmento di
                                      dato
                      Le direttive .DATA, .DATA?, CONST,
                         FARDATA, FARDATA? permettono di
                         creare un segmento di dato. Il loro formato è
                         il seguente:
                                           .DATA
                                          .DATA?
                                         .CONST
                                        .FARDATA
                                       .FARDATA?
                                                                     14




Sergio PORCU                                                                               7
Sistemi a Microprocessore                                       Formato istruzioni e direttive




                            Creazione del segmento di
                                     codice

                      La direttiva .CODE permette di definire un
                         segmento in cui specificare le istruzioni; il
                         suo formato è il seguente:
                                       .CODE {nome}
                      La direttiva .CODE definisce un segmento di
                         codice. Il campo opzionale nome definisce
                         un eventuale nome da assegnare al
                         segmento di codice in alternativa a quello di
                         default.
                                                                      15




                               La direttiva ASSUME

                      La direttiva ASSUME ha il compito di
                        indicare all’assemblatore a quale
                        segmento un determinato registro di
                        segmento sta puntando:
                            ASSUME segReg:nome [segReg:nome] ...
                                ASSUME segReg:NOTHING
                                    ASSUME NOTHING

                                                                      16




Sergio PORCU                                                                                8
Sistemi a Microprocessore                                       Formato istruzioni e direttive




                               La direttiva ASSUME

                      •     segReg è il nome di un registro di
                            segmento (CS, SS, DS, ES)
                      •     nome è il segmento al quale l’assemblatore
                            assume che segReg punti da questo
                            momento in poi (sino a una nuova ASSUME
                            che coinvolga lo stesso registro)
                      •     NOTHING cancella l’associazione tra
                            registri e segmenti

                                                                      17




                               La direttiva ASSUME

                      L’uso di ASSUME non equivale al
                         caricamento di un registro di
                         segmento, ma permette di:
                      • controllare la validità dei riferimenti alla
                         memoria
                      • inserire automaticamente eventuali
                         prefissi di segmentazione diversi da
                         quelli di default
                                                                      18




Sergio PORCU                                                                                9
Sistemi a Microprocessore                                       Formato istruzioni e direttive




                          Direttive per la definizione di
                                    procedure

                      La definizione di ogni procedura deve
                        iniziare con una direttiva PROC e deve
                        terminare con una direttiva ENDP. La
                        direttiva PROC definisce l’inizio di una
                        procedura:
                                nome PROC [distanza]


                                                                      19




                          Direttive per la definizione di
                                    procedure

                      •     nome è il nome simbolico della
                            procedura (da utilizzare nelle chiamate
                            a procedura)
                      •     distanza è:
                              NEAR – la procedura può essere
                              chiamata solo all’interno del segmento in
                              cui è stata definita (default)
                              FAR – la procedura può essere chiamata
                              da qualsiasi segmento
                                                                      20




Sergio PORCU                                                                               10
Sistemi a Microprocessore                                 Formato istruzioni e direttive




                        Direttive per la definizione di
                                  procedure

                      La direttiva ENDP indica la fine di una
                        procedura:
                                     nome ENDP
                      • nome è il nome simbolico della
                        procedura



                                                                  21




                       Direttive per la definizione dei
                                     dati

                      Tali direttive permettono di definire:
                      • il nome

                      • il tipo

                      • il contenuto

                      delle variabili in memoria.
                      Il formato è il seguente:
                        [nome] tipo espressione [, espressione]
                                                                  22




Sergio PORCU                                                                         11
Sistemi a Microprocessore                                          Formato istruzioni e direttive




                          Direttive per la definizione dei
                                        dati

                      •     nome è il nome simbolico del dato
                      •     tipo è la lunghezza del dato (se
                            scalare) o di ogni elemento del dato
                            (se array). I tipi più utilizzati sono:
                            •   DB riserva uno o più byte (8 bit)
                            •   DW riserva una o più word (16 bit)
                            •   DD riserva una o più doubleword (32 bit)

                                                                           23




                          Direttive per la definizione dei
                                        dati

                      •     espressione è il contenuto iniziale del
                            dato:
                            •   un’espressione costante
                            •   una stringa di caratteri (solo DB)
                            •   un punto di domanda (nessuna
                                inizializzazione)
                            •   un’espressione che fornisce un indirizzo
                                (solo DW e DD)
                            •   un’espressione DUP (duplicata)
                                                                           24




Sergio PORCU                                                                                  12
Sistemi a Microprocessore                                              Formato istruzioni e direttive




                        Direttive per la definizione dei
                                 dati - Esempi
                   ByteVar     DB   0               ;1 byte inizializzato a 0
                   ByteArray   DB   1,2,3,4         ;array di 4 byte
                   String      DB   ‘8’,’0’,’8’,’6’ ;array di 4 caratteri
                   String      DB   ‘8086’          ;equivalente al
                                                    ;precedente
                   Titolo      DB   ‘Titolo’,0dh,0ah
                                                    ;stringa che contiene
                                                    ;anche una coppia di
                                                    ;caratteri CR/LF
                                                                             25




                        Direttive per la definizione dei
                                 dati - Esempi
                  Zeros        DB   256 dup (0)
                                                  ;array di 256 byte
                                                  ;inizializzati a 0
                  Tabella      DB   50 dup (?)
                                                  ;array di 50 byte
                                                  ;non inizializzati
                  WordVar      DW 100*50
                                                  ;scalare di una
                                                  ;word
                                                                             26




Sergio PORCU                                                                                      13
Sistemi a Microprocessore                                        Formato istruzioni e direttive




                       Direttive per la definizione dei
                                dati - Esempi

                   Matrix          DW 1,0,0,0,10,0,0,1,0,0,0,1,0,0,0
                                            ;array di 16 word
                   Matrix          DW 4 dup(1,3 dup(0))
                                            ;equivale al precedente
                   NearPointer     DW Matrix
                                            ;contiene l’offset di
                                            ;Matrix

                                                                        27




                       Direttive per la definizione dei
                                dati - Esempi

                   DoubleVar DD    ?     ;scalare di una doubleword
                   FarPointer DD   Matrix
                                         ;contiene l’offset e l’indirizzo
                                         ;del segmento di Matrix




                                                                        28




Sergio PORCU                                                                                14
Sistemi a Microprocessore                                     Formato istruzioni e direttive




                                La direttiva EQU
                       Permette di assegnare un nome simbolico a
                         una costante:
                                   nome EQU espressione
                       • nome è il nome simbolico associato alla
                         costante. Può essere utilizzato ovunque al
                         posto della costante stessa. Occorre usare
                         le lettere maiuscole per distinguere le
                         costanti dalle variabili
                       • espressione deve fornire un valore
                         costante

                                                                      29




                                La direttiva EQU
                  CR          EQU 0dh ;carattere Carriage Return
                  LF          EQU 0ah ;carattere Line Feed
                        ...
                        ...
                  Titolo      DB ‘Titolo’,CR,LF
                                       ;stringa che contiene
                                       ;anche una coppia di
                                       ;caratteri CR/LF
                                                                      30




Sergio PORCU                                                                             15
Sistemi a Microprocessore                                Formato istruzioni e direttive




                             La direttiva LABEL
                  La direttiva LABEL forza un simbolo ad un tipo
                    specificato:
                                 nome LABEL tipo
                  Esempio:
                  words      LABEL WORD ;struttura come word
                  bytes      db howmany DUP (?)
                    ...
                  MOV        AX, words     ;prima word
                                                                 31




                            La direttiva PUBLIC
                      La direttiva PUBLIC rende accessibili da
                        altri moduli uno o più simboli:
                             PUBLIC symbol [, symbol ...]
                      • symbol è il nome di una variabile o di
                        una procedura




                                                                 32




Sergio PORCU                                                                        16
Sistemi a Microprocessore                                       Formato istruzioni e direttive




                              La direttiva EXTRN

                      La direttiva EXTRN rende accessibili uno
                        o più simboli definiti in un altro modulo:
                          EXTRN nome:tipo [, nome:tipo ...]
                      • nome è il nome di un simbolo definiti
                        PUBLIC in un altro modulo
                      • tipo è il tipo del simbolo:
                            BYTE, WORD, ...
                            NEAR, FAR, ...
                                                                         33




                                     Operatori
                      Permettono di formare espressioni complesse
                         da utilizzare come operandi di istruzioni e
                         direttive.
                      L’assemblatore:
                      • valuta ogni espressione al momento della
                         traduzione del programma sorgente
                      • sostituisce il risultato dell’espressione, che
                         deve essere una costante, all’espressione
                         stessa

                                                                         34




Sergio PORCU                                                                               17
Sistemi a Microprocessore                                    Formato istruzioni e direttive




                              Priorità degli operatori

                      •     Gli operatori di priorità maggiore
                            vengono calcolati prima di quelli con
                            priorità inferiore
                      •     Gli operatori con uguale priorità
                            vengono calcolati da sinistra a destra
                      •     Eventuali sottoespressioni tra
                            parentesi vengono calcolate per prime

                                                                     35




                                     Operatore :

                      Permette di utilizzare un segmento
                        diverso da quello di default:
                               segName:espressione
                      • segName è il nome di un registro
                        segmento o di un segmento definito
                        con la direttiva SEGMENT
                      • espressione fornisce un offset relativo
                        al segmento segName
                                                                     36




Sergio PORCU                                                                            18
Sistemi a Microprocessore                                        Formato istruzioni e direttive




                                 Operatore SEG

                      Fornisce l’indirizzo del segmento di
                        un’espressione:
                                   SEG espressione
                      • espressione è un riferimento alla
                        memoria (una label o una variabile)
                      • SEG restituisce l’indirizzo del
                        segmento che contiene il riferimento
                        alla memoria
                                                                       37




                              Operatore OFFSET

                      Fornisce l’offset di un’espressione all’interno di
                        un segmento:
                                    OFFSET espressione
                      • espressione è un riferimento alla memoria
                        (una label o una variabile)
                      • OFFSET restituisce il numero di byte
                        dall’inizio del segmento alla locazione della
                        memoria a cui si riferisce espressione

                                                                       38




Sergio PORCU                                                                                19
Sistemi a Microprocessore                                  Formato istruzioni e direttive




                                  Operatore PTR

                      Cast di un’espressione ad un dato tipo:
                                tipo PTR espressione
                      • espressione è un riferimento alla
                        memoria
                      • tipo è:
                            se dati: byte, word, ...
                            se codice: near, far, ...

                                                                 39




                               Operatore SHORT

                      Informa l’assemblatore che espressione
                         è distante dalla locazione corrente da -
                         128 a +127 byte (indirizzo di un byte):
                                 SHORT espressione
                      • espressione è un riferimento a una
                         label nel segmento codice corrente


                                                                 40




Sergio PORCU                                                                          20

More Related Content

Viewers also liked

Algoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsioneAlgoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsioneSergio Porcu
 
Interfaccia verso il BUS
Interfaccia verso il BUSInterfaccia verso il BUS
Interfaccia verso il BUSSergio Porcu
 
Microprocessori INTEL 8086/8088
Microprocessori INTEL 8086/8088Microprocessori INTEL 8086/8088
Microprocessori INTEL 8086/8088Sergio Porcu
 
Sistema di numerazione
Sistema di numerazioneSistema di numerazione
Sistema di numerazioneGilda Tobia
 
Bk001 it c18-step_by_step
Bk001 it c18-step_by_stepBk001 it c18-step_by_step
Bk001 it c18-step_by_stephawk2012
 
PIC microcontroller
PIC microcontroller PIC microcontroller
PIC microcontroller Rami Alsalman
 
Tesi Magistrale 2014
Tesi Magistrale 2014Tesi Magistrale 2014
Tesi Magistrale 2014Mirko Mancin
 
Diagnosi e integrazione disabili in Polonia
Diagnosi e integrazione disabili in PoloniaDiagnosi e integrazione disabili in Polonia
Diagnosi e integrazione disabili in PoloniaGilda Tobia
 
Lezione 4 arduino - corso 20 ore
Lezione 4 arduino - corso 20 oreLezione 4 arduino - corso 20 ore
Lezione 4 arduino - corso 20 oreMirko Mancin
 
Storia di roma in 5 minuti
Storia di roma in 5 minutiStoria di roma in 5 minuti
Storia di roma in 5 minutiPaolo Gallese
 
OpenOffice.org - Come rendersi indipendenti da MS Office
OpenOffice.org - Come rendersi indipendenti da MS OfficeOpenOffice.org - Come rendersi indipendenti da MS Office
OpenOffice.org - Come rendersi indipendenti da MS OfficeNicola Corti
 
Il plc linguaggi program
Il plc linguaggi programIl plc linguaggi program
Il plc linguaggi programGilda Tobia
 

Viewers also liked (20)

Array
ArrayArray
Array
 
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsioneAlgoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsione
 
Interfaccia verso il BUS
Interfaccia verso il BUSInterfaccia verso il BUS
Interfaccia verso il BUS
 
Microprocessori INTEL 8086/8088
Microprocessori INTEL 8086/8088Microprocessori INTEL 8086/8088
Microprocessori INTEL 8086/8088
 
Tesi Triennale
Tesi TriennaleTesi Triennale
Tesi Triennale
 
Sistema di numerazione
Sistema di numerazioneSistema di numerazione
Sistema di numerazione
 
Bk001 it c18-step_by_step
Bk001 it c18-step_by_stepBk001 it c18-step_by_step
Bk001 it c18-step_by_step
 
Assembly2
Assembly2Assembly2
Assembly2
 
PIC microcontroller
PIC microcontroller PIC microcontroller
PIC microcontroller
 
Tesi Magistrale 2014
Tesi Magistrale 2014Tesi Magistrale 2014
Tesi Magistrale 2014
 
Investimenti
InvestimentiInvestimenti
Investimenti
 
Diagrammi di Bode
Diagrammi di BodeDiagrammi di Bode
Diagrammi di Bode
 
Diagnosi e integrazione disabili in Polonia
Diagnosi e integrazione disabili in PoloniaDiagnosi e integrazione disabili in Polonia
Diagnosi e integrazione disabili in Polonia
 
Lezione 4 arduino - corso 20 ore
Lezione 4 arduino - corso 20 oreLezione 4 arduino - corso 20 ore
Lezione 4 arduino - corso 20 ore
 
Arduino&Raspberry
Arduino&RaspberryArduino&Raspberry
Arduino&Raspberry
 
Storia di roma in 5 minuti
Storia di roma in 5 minutiStoria di roma in 5 minuti
Storia di roma in 5 minuti
 
Il pic 16 f84a
Il pic 16 f84aIl pic 16 f84a
Il pic 16 f84a
 
OpenOffice.org - Come rendersi indipendenti da MS Office
OpenOffice.org - Come rendersi indipendenti da MS OfficeOpenOffice.org - Come rendersi indipendenti da MS Office
OpenOffice.org - Come rendersi indipendenti da MS Office
 
Il plc
Il plcIl plc
Il plc
 
Il plc linguaggi program
Il plc linguaggi programIl plc linguaggi program
Il plc linguaggi program
 

Similar to Formato istruzioni e direttive 8086

Lezione1 - MIPS & SPIM Unicam
Lezione1 - MIPS & SPIM UnicamLezione1 - MIPS & SPIM Unicam
Lezione1 - MIPS & SPIM UnicamNicola Paoletti
 
Lezione 00 - Introduzione ai Design Patterns
Lezione 00 - Introduzione ai Design PatternsLezione 00 - Introduzione ai Design Patterns
Lezione 00 - Introduzione ai Design PatternsMarco Bianchi
 
iOS design patterns: blocks
iOS design patterns: blocksiOS design patterns: blocks
iOS design patterns: blocksAppsterdam Milan
 
iOS design patterns: blocks
iOS design patterns: blocksiOS design patterns: blocks
iOS design patterns: blocksAlessio Roberto
 
BeRTOS: Sistema Real Time Embedded Free
BeRTOS: Sistema Real Time Embedded FreeBeRTOS: Sistema Real Time Embedded Free
BeRTOS: Sistema Real Time Embedded FreeDeveler S.r.l.
 
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1caioturtle
 

Similar to Formato istruzioni e direttive 8086 (10)

Il Turbo Debugger
Il Turbo DebuggerIl Turbo Debugger
Il Turbo Debugger
 
Lezione1 - MIPS & SPIM Unicam
Lezione1 - MIPS & SPIM UnicamLezione1 - MIPS & SPIM Unicam
Lezione1 - MIPS & SPIM Unicam
 
Lezione 00 - Introduzione ai Design Patterns
Lezione 00 - Introduzione ai Design PatternsLezione 00 - Introduzione ai Design Patterns
Lezione 00 - Introduzione ai Design Patterns
 
Modulo 1 - Lezione 2
Modulo 1 - Lezione 2Modulo 1 - Lezione 2
Modulo 1 - Lezione 2
 
Catalogo corsi Emerasoft 2013 - 2014
Catalogo corsi Emerasoft 2013 - 2014Catalogo corsi Emerasoft 2013 - 2014
Catalogo corsi Emerasoft 2013 - 2014
 
iOS design patterns: blocks
iOS design patterns: blocksiOS design patterns: blocks
iOS design patterns: blocks
 
iOS design patterns: blocks
iOS design patterns: blocksiOS design patterns: blocks
iOS design patterns: blocks
 
BeRTOS: Sistema Real Time Embedded Free
BeRTOS: Sistema Real Time Embedded FreeBeRTOS: Sistema Real Time Embedded Free
BeRTOS: Sistema Real Time Embedded Free
 
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
 
Software7
Software7Software7
Software7
 

More from Sergio Porcu

Costi, break even point, analisi make or buy
Costi, break even point, analisi make or buyCosti, break even point, analisi make or buy
Costi, break even point, analisi make or buySergio Porcu
 
Analisi degli scostamenti
Analisi degli scostamentiAnalisi degli scostamenti
Analisi degli scostamentiSergio Porcu
 
Algoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, codeAlgoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, codeSergio Porcu
 
Il temporizzatore d'intervalli 8253
Il temporizzatore d'intervalli 8253Il temporizzatore d'intervalli 8253
Il temporizzatore d'intervalli 8253Sergio Porcu
 
L'interrupt nell'8086
L'interrupt nell'8086L'interrupt nell'8086
L'interrupt nell'8086Sergio Porcu
 
Reti di Calcolatori - Crittografia
Reti di Calcolatori - CrittografiaReti di Calcolatori - Crittografia
Reti di Calcolatori - CrittografiaSergio Porcu
 
Gestione date in PL/SQL
Gestione date in PL/SQLGestione date in PL/SQL
Gestione date in PL/SQLSergio Porcu
 
Traduzione dal modello ER al relazionale
Traduzione dal modello ER al relazionaleTraduzione dal modello ER al relazionale
Traduzione dal modello ER al relazionaleSergio Porcu
 
Soluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ERSoluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ERSergio Porcu
 
Diagrammi Entità/Relazioni (ER)
Diagrammi Entità/Relazioni (ER)Diagrammi Entità/Relazioni (ER)
Diagrammi Entità/Relazioni (ER)Sergio Porcu
 

More from Sergio Porcu (12)

Costi, break even point, analisi make or buy
Costi, break even point, analisi make or buyCosti, break even point, analisi make or buy
Costi, break even point, analisi make or buy
 
Analisi degli scostamenti
Analisi degli scostamentiAnalisi degli scostamenti
Analisi degli scostamenti
 
Algoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, codeAlgoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, code
 
Il temporizzatore d'intervalli 8253
Il temporizzatore d'intervalli 8253Il temporizzatore d'intervalli 8253
Il temporizzatore d'intervalli 8253
 
L'interrupt nell'8086
L'interrupt nell'8086L'interrupt nell'8086
L'interrupt nell'8086
 
Metodo di Newton
Metodo di NewtonMetodo di Newton
Metodo di Newton
 
Reti di Calcolatori - Crittografia
Reti di Calcolatori - CrittografiaReti di Calcolatori - Crittografia
Reti di Calcolatori - Crittografia
 
Mappe di Karnaugh
Mappe di KarnaughMappe di Karnaugh
Mappe di Karnaugh
 
Gestione date in PL/SQL
Gestione date in PL/SQLGestione date in PL/SQL
Gestione date in PL/SQL
 
Traduzione dal modello ER al relazionale
Traduzione dal modello ER al relazionaleTraduzione dal modello ER al relazionale
Traduzione dal modello ER al relazionale
 
Soluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ERSoluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ER
 
Diagrammi Entità/Relazioni (ER)
Diagrammi Entità/Relazioni (ER)Diagrammi Entità/Relazioni (ER)
Diagrammi Entità/Relazioni (ER)
 

Recently uploaded

Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxtecongo2007
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxlorenzodemidio01
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoyanmeng831
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaSalvatore Cianciabella
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxtecongo2007
 
Una breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereUna breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereMarco Chizzali
 
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024IISGiovanniVallePado
 
Storia-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxStoria-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxteccarellilorenzo
 
Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxtecongo2007
 
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...Nguyen Thanh Tu Collection
 
Presentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticaPresentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticanico07fusco
 
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxsasaselvatico
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.camillaorlando17
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxlorenzodemidio01
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxtecongo2007
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................giorgiadeascaniis59
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileNicola Rabbi
 
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxlorenzodemidio01
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................giorgiadeascaniis59
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxlorenzodemidio01
 

Recently uploaded (20)

Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptx
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptx
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceo
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione Civica
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptx
 
Una breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereUna breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opere
 
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
 
Storia-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxStoria-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptx
 
Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptx
 
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
 
Presentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticaPresentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informatica
 
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptx
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibile
 
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
 

Formato istruzioni e direttive 8086

  • 1. Sistemi a Microprocessore Formato istruzioni e direttive Sistemi a Microprocessore ASSEMBLER 8086: FORMATO ISTRUZIONI E DIRETTIVE 1 Formato delle istruzioni Il formato delle istruzioni è il seguente: [label] istruzione/direttiva [operando/i] [; commento] • label consente di dare un nome simbolico (da utilizzare come operando in altre istruzioni) a variabili di memoria, valori, singole istruzioni, procedure • istruzione/direttiva è il mnemonico per un’istruzione eseguibile o una direttiva; individua il tipo di operazione da eseguire e il numero e il tipo degli operandi 2 Sergio PORCU 1
  • 2. Sistemi a Microprocessore Formato istruzioni e direttive Formato delle istruzioni • operando/i è una combinazione di nessuna, una o più costanti, riferimenti a registri o riferimenti alla memoria; se un’istruzione ammette due operandi: il primo è l’operando destinazione il secondo è l’operando sorgente ad esempio, MOV AX, CX copia il contenuto del registro CX nel registro AX • commento consente di rendere più leggibile il programma 3 Formato delle istruzioni È indifferente l’uso di lettere maiuscole o minuscole. Il tipo di operandi ammessi varia da istruzione a istruzione. Esistono istruzioni che ammettono come operando solo una costante o solo un particolare registro generale. 4 Sergio PORCU 2
  • 3. Sistemi a Microprocessore Formato istruzioni e direttive Nomi simbolici • Caratteri ammessi per i nomi simbolici: • A-Z a-z 0-9 _ $ ? @ • Il primo carattere di un nome non può essere digit (0-9) • Ogni nome deve essere univoco (in genere, all’interno del modulo in cui viene definito) • Non deve coincidere con una parola riservata (ad esempio, il nome di un registro o di un operatore) 5 Costanti numeriche • Di default, tutti i valori numerici sono espressi in base dieci • È possibile esprimere le costanti numeriche: • in base 16 (esadecimale) mediante il suffisso H (il primo digit deve essere numerico) • in base 8 (ottale) mediante il suffisso O • in base 2 (binario) mediante il suffisso B 6 Sergio PORCU 3
  • 4. Sistemi a Microprocessore Formato istruzioni e direttive Costanti numeriche Ad esempio: 00FFh 0h 777O 11001B FFh errata! 778O errata! 7 Direttive Le direttive sono istruzioni di tipo dichiarativo che forniscono informazioni agli strumenti di sviluppo dei programmi. In particolare, alcune di queste direttive fanno sì che l’assemblatore generi al loro posto una serie opportuna di istruzioni; in questo caso tali direttive sono assimilabili a macro predefinite. 8 Sergio PORCU 4
  • 5. Sistemi a Microprocessore Formato istruzioni e direttive Direttive semplificate per la gestione dei segmenti • Modelli di memoria • Creazione dello stack • Creazione del segmento di dato • Creazione del segmento di codice 9 Modelli di memoria La direttiva .MODEL definisce alcuni attributi che condizionano l’intero modulo ed è necessaria per abilitare la gestione semplificata dei segmenti. Deve essere posta nel file sorgente prima di ogni altra direttiva di segmento. Sintassi: .MODEL modello {, opzione ...} 10 Sergio PORCU 5
  • 6. Sistemi a Microprocessore Formato istruzioni e direttive Modelli di memoria I modelli possono essere: • TINY: il codice e i dati sono in un unico segmento di 64k byte. Usato nei file COM • SMALL: un segmento per il codice ed uno per i dati e lo stack. Entrambi non oltre i 64k byte • MEDIUM: il codice usa più segmenti (superata barriera dei 64k byte). I dati e lo stack come SMALL 11 Modelli di memoria • COMPACT: è come SMALL, ma per accedere ai dati si usano i puntatori FAR che superano i 64k byte • LARGE: è come MEDIUM, ma per accedere ai dati si usano i puntatori FAR che superano i 64k byte • FLAT: modalità a 32 bit dei processori 386+. Abolito il metodo SEG:OFFSET, l’indirizzo è dato da un unico numero a 32 bit 12 Sergio PORCU 6
  • 7. Sistemi a Microprocessore Formato istruzioni e direttive Creazione dello stack La direttiva .STACK permette di riservare uno spazio di memoria per lo stack; il formato di tale direttiva è il seguente: .STACK {mem} Tale direttiva riserva uno spazio di memoria pari a mem byte. Per default lo spazio riservato per lo stack è di 1k byte. 13 Creazione del segmento di dato Le direttive .DATA, .DATA?, CONST, FARDATA, FARDATA? permettono di creare un segmento di dato. Il loro formato è il seguente: .DATA .DATA? .CONST .FARDATA .FARDATA? 14 Sergio PORCU 7
  • 8. Sistemi a Microprocessore Formato istruzioni e direttive Creazione del segmento di codice La direttiva .CODE permette di definire un segmento in cui specificare le istruzioni; il suo formato è il seguente: .CODE {nome} La direttiva .CODE definisce un segmento di codice. Il campo opzionale nome definisce un eventuale nome da assegnare al segmento di codice in alternativa a quello di default. 15 La direttiva ASSUME La direttiva ASSUME ha il compito di indicare all’assemblatore a quale segmento un determinato registro di segmento sta puntando: ASSUME segReg:nome [segReg:nome] ... ASSUME segReg:NOTHING ASSUME NOTHING 16 Sergio PORCU 8
  • 9. Sistemi a Microprocessore Formato istruzioni e direttive La direttiva ASSUME • segReg è il nome di un registro di segmento (CS, SS, DS, ES) • nome è il segmento al quale l’assemblatore assume che segReg punti da questo momento in poi (sino a una nuova ASSUME che coinvolga lo stesso registro) • NOTHING cancella l’associazione tra registri e segmenti 17 La direttiva ASSUME L’uso di ASSUME non equivale al caricamento di un registro di segmento, ma permette di: • controllare la validità dei riferimenti alla memoria • inserire automaticamente eventuali prefissi di segmentazione diversi da quelli di default 18 Sergio PORCU 9
  • 10. Sistemi a Microprocessore Formato istruzioni e direttive Direttive per la definizione di procedure La definizione di ogni procedura deve iniziare con una direttiva PROC e deve terminare con una direttiva ENDP. La direttiva PROC definisce l’inizio di una procedura: nome PROC [distanza] 19 Direttive per la definizione di procedure • nome è il nome simbolico della procedura (da utilizzare nelle chiamate a procedura) • distanza è: NEAR – la procedura può essere chiamata solo all’interno del segmento in cui è stata definita (default) FAR – la procedura può essere chiamata da qualsiasi segmento 20 Sergio PORCU 10
  • 11. Sistemi a Microprocessore Formato istruzioni e direttive Direttive per la definizione di procedure La direttiva ENDP indica la fine di una procedura: nome ENDP • nome è il nome simbolico della procedura 21 Direttive per la definizione dei dati Tali direttive permettono di definire: • il nome • il tipo • il contenuto delle variabili in memoria. Il formato è il seguente: [nome] tipo espressione [, espressione] 22 Sergio PORCU 11
  • 12. Sistemi a Microprocessore Formato istruzioni e direttive Direttive per la definizione dei dati • nome è il nome simbolico del dato • tipo è la lunghezza del dato (se scalare) o di ogni elemento del dato (se array). I tipi più utilizzati sono: • DB riserva uno o più byte (8 bit) • DW riserva una o più word (16 bit) • DD riserva una o più doubleword (32 bit) 23 Direttive per la definizione dei dati • espressione è il contenuto iniziale del dato: • un’espressione costante • una stringa di caratteri (solo DB) • un punto di domanda (nessuna inizializzazione) • un’espressione che fornisce un indirizzo (solo DW e DD) • un’espressione DUP (duplicata) 24 Sergio PORCU 12
  • 13. Sistemi a Microprocessore Formato istruzioni e direttive Direttive per la definizione dei dati - Esempi ByteVar DB 0 ;1 byte inizializzato a 0 ByteArray DB 1,2,3,4 ;array di 4 byte String DB ‘8’,’0’,’8’,’6’ ;array di 4 caratteri String DB ‘8086’ ;equivalente al ;precedente Titolo DB ‘Titolo’,0dh,0ah ;stringa che contiene ;anche una coppia di ;caratteri CR/LF 25 Direttive per la definizione dei dati - Esempi Zeros DB 256 dup (0) ;array di 256 byte ;inizializzati a 0 Tabella DB 50 dup (?) ;array di 50 byte ;non inizializzati WordVar DW 100*50 ;scalare di una ;word 26 Sergio PORCU 13
  • 14. Sistemi a Microprocessore Formato istruzioni e direttive Direttive per la definizione dei dati - Esempi Matrix DW 1,0,0,0,10,0,0,1,0,0,0,1,0,0,0 ;array di 16 word Matrix DW 4 dup(1,3 dup(0)) ;equivale al precedente NearPointer DW Matrix ;contiene l’offset di ;Matrix 27 Direttive per la definizione dei dati - Esempi DoubleVar DD ? ;scalare di una doubleword FarPointer DD Matrix ;contiene l’offset e l’indirizzo ;del segmento di Matrix 28 Sergio PORCU 14
  • 15. Sistemi a Microprocessore Formato istruzioni e direttive La direttiva EQU Permette di assegnare un nome simbolico a una costante: nome EQU espressione • nome è il nome simbolico associato alla costante. Può essere utilizzato ovunque al posto della costante stessa. Occorre usare le lettere maiuscole per distinguere le costanti dalle variabili • espressione deve fornire un valore costante 29 La direttiva EQU CR EQU 0dh ;carattere Carriage Return LF EQU 0ah ;carattere Line Feed ... ... Titolo DB ‘Titolo’,CR,LF ;stringa che contiene ;anche una coppia di ;caratteri CR/LF 30 Sergio PORCU 15
  • 16. Sistemi a Microprocessore Formato istruzioni e direttive La direttiva LABEL La direttiva LABEL forza un simbolo ad un tipo specificato: nome LABEL tipo Esempio: words LABEL WORD ;struttura come word bytes db howmany DUP (?) ... MOV AX, words ;prima word 31 La direttiva PUBLIC La direttiva PUBLIC rende accessibili da altri moduli uno o più simboli: PUBLIC symbol [, symbol ...] • symbol è il nome di una variabile o di una procedura 32 Sergio PORCU 16
  • 17. Sistemi a Microprocessore Formato istruzioni e direttive La direttiva EXTRN La direttiva EXTRN rende accessibili uno o più simboli definiti in un altro modulo: EXTRN nome:tipo [, nome:tipo ...] • nome è il nome di un simbolo definiti PUBLIC in un altro modulo • tipo è il tipo del simbolo: BYTE, WORD, ... NEAR, FAR, ... 33 Operatori Permettono di formare espressioni complesse da utilizzare come operandi di istruzioni e direttive. L’assemblatore: • valuta ogni espressione al momento della traduzione del programma sorgente • sostituisce il risultato dell’espressione, che deve essere una costante, all’espressione stessa 34 Sergio PORCU 17
  • 18. Sistemi a Microprocessore Formato istruzioni e direttive Priorità degli operatori • Gli operatori di priorità maggiore vengono calcolati prima di quelli con priorità inferiore • Gli operatori con uguale priorità vengono calcolati da sinistra a destra • Eventuali sottoespressioni tra parentesi vengono calcolate per prime 35 Operatore : Permette di utilizzare un segmento diverso da quello di default: segName:espressione • segName è il nome di un registro segmento o di un segmento definito con la direttiva SEGMENT • espressione fornisce un offset relativo al segmento segName 36 Sergio PORCU 18
  • 19. Sistemi a Microprocessore Formato istruzioni e direttive Operatore SEG Fornisce l’indirizzo del segmento di un’espressione: SEG espressione • espressione è un riferimento alla memoria (una label o una variabile) • SEG restituisce l’indirizzo del segmento che contiene il riferimento alla memoria 37 Operatore OFFSET Fornisce l’offset di un’espressione all’interno di un segmento: OFFSET espressione • espressione è un riferimento alla memoria (una label o una variabile) • OFFSET restituisce il numero di byte dall’inizio del segmento alla locazione della memoria a cui si riferisce espressione 38 Sergio PORCU 19
  • 20. Sistemi a Microprocessore Formato istruzioni e direttive Operatore PTR Cast di un’espressione ad un dato tipo: tipo PTR espressione • espressione è un riferimento alla memoria • tipo è: se dati: byte, word, ... se codice: near, far, ... 39 Operatore SHORT Informa l’assemblatore che espressione è distante dalla locazione corrente da - 128 a +127 byte (indirizzo di un byte): SHORT espressione • espressione è un riferimento a una label nel segmento codice corrente 40 Sergio PORCU 20