Giobe©2000 Collaboratori del Sito Consigli dell'Autore

Aggiornamenti & Novità

Istruzioni per l'Uso

Contatti con l'Autore

Informazioni sull'Autore

Informazioni di Copyright

Home Page - Benvenuto!
Sezione

Indirizzi Base Registri Interni
Area Comunicazione BIOS Funzioni BIOS Funzioni DOS
Prefazione Capitolo 1 Capitolo 2 Schede
Libreria ASM Libreria MAC Palestra Progetti ASM
Info Download INDICE

Schede del Tutorial

Home » Programma il Computer » Tutorial Assembly

Le Schede del Tutorial

  Istruzioni della Cpu 80x86

SCHEDA n° 07 [ 15  di 16] 

    

  Aggiornato  9 aprile 2006
    Legenda degli Esempi in Codice - HELP
     
Nelle schede dedicate alle singole istruzioni sono spesso presenti Tabelle che raccolgono alcuni Esempi d'Applicazione; esse sono il frutto di una compilazione in ambiente MASM e di una successiva (eventuale) analisi in ambiente Debug. Per ognuna tabella sono disponibili:
     
bulletIndirizzo corrente: l'indirizzo (di Offset nel Segmento di Codice) è fatto partire da 0100H, come risulta dopo la sua compilazione come se dovesse realizzare un eseguibile di tipo intrasegmentale, COM; naturalmente scorrendo questo tipo d'informazione è facile desumere il numero di bytes necessari per la compilazione di ciascuna delle istruzioni proposte come esempio:

      

Addr 

 Codifica Masm  

 Sequenza Bytes    

Istruzione                   

0100
0103
0107

      

bulletCodifica in linguaggio macchina: la sequenza dei numeri esadecimali di questo campo è esattamente quella presente nel listato MASM associato alla sequenza d'istruzioni; si può sottolineare il modo usato per esprimere indirizzi o dati a più bytes, in una proposta "umana" dell'informazione binaria:

      

Addr 

 Codifica Masm  

 Sequenza Bytes    

Istruzione                   

03 D3
02 0E 0100 
03 0E 0101

      

bulletSequenza effettiva dei bytes in memoria: la sequenza effettiva dei bytes in memoria è, invece, quella che il processore è chiamato ad interpretare, letta in ambiente debug , con il comando D; si possono individuare il byte (o i bytes) del codice operativo (di solito il primo o i primi, pensati dai creatori del processore 80x86 per esprimere un modo unico e irripetibile il codice mnemonico associato all'istruzione) e la (eventuale) sequenza dei bytes di dato, nella caratteristica sequenza Lo-Hi (cioè prima la parte bassa e poi quella più significativa):

      

Addr 

 Codifica Masm  

 Sequenza Bytes    

Istruzione                   

03 D3  
02 0E 00 01 
03 0E 01 01

      

bulletCodice mnemonico: l'ultimo campo esprime la classica forma dell'istruzione sotto test:

      

Addr 

 Codifica Masm  

 Sequenza Bytes    

Istruzione                   

ADD DX,BX
ADD CL,[Depo01]
ADD CX,[Depo02]

      

bulletTutti i 4 campi sono, in realtà, strettamente legati tra di loro: il loro confronto può aiutare a capire i meccanismi che hanno consentito di scrivere questo Set d'Istruzioni.
bulletI codici operativi (bytes) sono scritti a partire da uno schema ben preciso, che coinvolge che coinvolge diversi campi di bit; negli esempi proposti in questa pagina possiamo vedere che le 3 istruzioni hanno 2 codici operativi.
bulletIl primo (02H=00000010b o 03H=00000011b) evidenzia:
bulletil pacchetto base di 6 bit, 000000, tipico dello mnemonico ADD
bulletil bit1 (uguale a 1 in tutti i casi) ad indicare un rapporto tra registro e memoria o tra registro e registro
bulletil bit0, uguale a 1 (con operandi a 16 o 32 bit, word o doubleword) o uguale a 0 (con operando a 8 bit, byte)
bulletIl secondo (D3H=11010011b o 0EH=00001110b) composto da 3 campi:
bulleti primi 2 bit (bit7,bit6) uguali a 11 (se l'istruzione coinvolge 2 registri) o diversi da 11 (se viene coinvolto un operando di memoria o operando immediato, cioè una costante)
bulleti secondi 3 bit (bit5,bit4,bit3) indicano il tipo di registro coinvolto; nell'esempio 010 significa DX o DL mentre 001 indica CX o CL [ma ovviamente è possibile anche 000 per AX o AL, 011 per BX o BL, 100 per SP o AH, 101 per BP o CH, 110 per SI o DH e 111 per DI o BH]
bulletgli ultimi 3 bit (bit2,bit1,bit0) forniscono informazioni sul secondo operando:
bulletnel caso si tratti di un registro (bit7,bit6=11) la terna bit2,bit1,bit0 utilizza gli stessi valori affidati ai bit5,bit4,bit3 (nel nostro esempio si ha 011 per BX o BL)
bulletnel caso si tratti di una locazione di memoria la terna bit2,bit1,bit0 viene utilizzata insieme alla coppia bit7,bit6 per creare un codice a 5 bit (bit7,bit6,bit2,bit1,bit0) in grado di individuare una delle 24 possibili modalità di indirizzamento; da notare che con 5 bit sono possibili 32 (=25) combinazioni, ma solo 24 sono in questo caso significative, dovendo escludere quelle con bit7,bit6=11, ovviamente affidate alle 8 rimanenti modalità tra registri

      

bulletNaturalmente la logica usata per costruire un codice operativo è decisamente impegnativa e caratterizzata da numerose varianti, tutte per altro logicamente inquadrate; pur stimolante l'argomento tende ad essere puramente accademico, nè, di solito, il programmatore si cura di conoscere il valore binario dei bytes che corrispondono allo mnemonico di un'istruzione: è una pura curiosità...
bulletPer questo si evita di spingere più a fondo l'indagine su questo argomento, almeno per ora.

    

Pagina Precedente Scheda n° 07 Pagina Successiva Istruzioni Cpu 80x86 Torna al Menu delle Schede del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
Scheda n° 07 -  15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    

SCHEDE » 1.Header EXE 2.PseudoOp MASM 3.Differenza tra Macro e Procedure
4.
Tabella Vettori 5.PSP 6.Stack 7.Istruzioni 80x86
8.La misura dell'Informazione 9.Numeri e Logica Binaria
TUTORIAL » Indirizzi Base | Registri Interni | Area Comunicaz. BIOS | Funzioni BIOS | Funzioni DOS
Prefazione | CAP 1 | CAP 2 | Schede | Palestra
Libreria ASM | Libreria MAC | Progetti ASM | Download | Info | Indice
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati