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

  Numeri e Logica Binaria

SCHEDA n° 09 [ 9  di 20] 

    

    Operazioni Logiche su Numeri Binari: la Funzione AND
     
bulletLa funzione AND descrive l'effetto prodotto dalla logica "e" (appunto "and" in inglese..) sulle variabili coinvolte (per esempio A e B):

      

la funzione AND è vera se A e B sono (entrambe) vere

      

bulletLa Tabella di Verità per la funzione AND di A e B è dunque la seguente:

      

A B AND  
0 0 0
0 1 0
1 0 0
1 1 1

     

bulletE' facile verificare che la definizione è ben rappresentata: solo se A e B sono entrambe a 1 (vere) la funzione AND=f(A,B) è a 1 (vera).
bulletPer capire la logica guarda lo schema allegato: la lampada (funzione AND di A e B) è accesa (1=vera) solo se l'interruttore A e l'interruttore B solo entrambi chiusi (1=veri).

      

bulletL'osservazione della Tabella di Verità mette in evidenza una importante particolarità: la funzione AND si può ritenere il prodotto delle variabili A e  B; per questo è detta anche prodotto logico.

      

bulletIl processore 80x86 prevede l'istruzione omonima, AND, con operandi di tutte le dimensioni (a 8, 16, 32 bit, ...); con operandi a 8 bit vale l'esempio:

      

55H   0101 0101 AND
F0H   1111 0000  =
      -------------
50H = 0101 0000 

      

bulletIl funzionamento della AND sottolinea uno degli usi più raffinati di questa istruzione: quello di mascherare alcuni bit di un determinato dato; l'esempio mostra chiaramente che i bit del primo operando (55H) che occupano la stessa posizione dei bit a 0 della maschera (F0H) sono azzerati (mascherati) mentre gli altri mantengono il loro valore.

      

bulletLa tecnica appena descritta può essere facilmente utilizzata anche per testare il valore logico di un determinato bit di un dato binario. Supponendo di trattare con l'operando di prima (55H), la maschera (AND) 0000 0100 (=04H) forza a zero tutti i bit di AL meno quello sotto test, il bit2, che mantiene il suo valore.

      

55H   0101 0101 AND
04H   0000 0100  =
      -------------
04H = 0000 0100 

      

bulletBasterà quindi una semplice verifica sul risultato (di solito esercitata con un confronto (CMP) con 0): se esso vale 00H significa che il bit sotto test è uguale a 0; altrimenti, se è diverso da 00H, significa che il bit sotto testo è uguale a 1.

      

bulletCon la stessa tecnica è facile rendere maiuscole le lettere minuscole; questa esigenza è molto sentita nella lettura della Tastiera, dato che è pressocché impossibile prevedere se lo switch CapsLock (il tasto con il lucchetto, a sinistra della tastiera) è attivo (=maiuscole) o disattivo (=minuscole).
bulletDi fatto basta conoscere il valore binario del Codici Ascii associato alle lettere per scoprire la differenza tra una maiuscola (per esempio la "A" = 41H = 0100 0001) e la corrispondente minuscola (la "a" = 61H = 0110 0001): i 2 bytes differiscono solo per il valore del rispettivo bit5.

      

61H ="a"   0110 0001 AND
DFH
      1101 1111  =
          -------------
41H
="A" = 0100 0001

 

41H ="A"   0100 0001 AND
DFH
      1101 1111  =
          -------------
41H
="A" = 0100 0001

      

bulletLa maschera con 1101 1111 (=DFH) forza comunque a 0 il bit5 del dato binario:
bulletse è quello di una lettera dopo l'operazione sarà certamente diventato quello della maiuscola corrispondente
bulletse non è quello di una lettera l'operazione è controproducente, perchè il numero ottenuto non avrà più rapporti con quello di partenza

    

Pagina Precedente Scheda n° 09 Pagina Successiva Numeri e Logica Binaria Torna al Menu delle Schede del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
Scheda n° 09 -  9
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

    

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