Assembly/Rappresentazione dati/Il set di caratteri ASCII

Indice del libro

Come dovreste già sapere, la tabella ASCII è una tabella a cui sono assegnati a ciascun codice un carattere. Al momento della stampa a video, la scheda video, preleva dalla tabella ASCII il carattere associato al codice che gli è stato mandato.
La tabella ASCII standard (i primi 127 caratteri), è divisa in quattro gruppi da 32 caratteri.

I caratteri di controllo modifica

I caratteri i cui codici vanno da 0h a 1Fh (31d), vengono definiti caratteri di controllo. Questi non possono essere stampati, e vengono definiti così perché al momento della stampa, eseguono delle operazioni. Ad esempio abbiamo il CR (Carriage Return - codice 0Dh), che sposta il cursore hardware (il piccolo trattino lampeggiante dei terminali "_"), oppure LF (Line Feed - 0Ah), che mantiene la posizione del cursore nella riga, ma la sposta di una riga sotto, BEL (7h), che emette un bip dal computer, o ancora BS (BackSpace - 8h), che sposta il cursore a sinistra nella riga di un posto.

I simboli modifica

Nel secondo gruppo di caratteri (da 20h a 3Fh), abbiamo caratteri simboli. Comprendono lo spazio (20h), le cifre decimali (da 30h a 39h), i simboli : ; < = > ?, che corrispondono rispettivamente ai codici da 3Ah a 3Fh, poi ancora ! " # $ % & ' ( ) * + , - . /, che riempiono i codici da 21h a 2Fh.

Le lettere maiuscole modifica

Il terzo gruppo è riempito dalle lettere maiuscole inglesi che vanno da 41h a 5Ah, poi abbiamo @ alla posizione 40h e ancora [ \ ] ^ _ da 5Bh a 5Fh.

Le lettere minuscole modifica

L'ultimo gruppo è formato dalle lettere minuscole, che occupano i codici da 61h a 7Ah. La 60h è occupata dal carattere `. poi abbiamo { | } ~ per le ultime posizioni. Infine resta il carattere 7F, un altro carattere di controllo, DEL che cancella il carattere appena precedente il cursore, senza però farlo retrocedere

Transizione maiuscolo/minuscolo modifica

Supponiamo di avere la lettera "E" (45h = 01000101b) e vogliamo trasformarlo nel corrispondente minuscolo "e" (65h = 01100101b). Proviamo a comparare i due valori binari corrispondenti:

0 1 0 0 0 1 0 1
0 1 1 0 0 1 0 1

Come potete notare, la differenza è solo nel bit 5.
Dunque, per trasformare una lettera nel corrispondente minuscolo, basta settare a 1 il bit 5. Viceversa, basta settarlo a 0 per trasformarla in maiuscolo.

I bit 5 e 6 modifica

Da quanto avrete capito il bit 7 resta sempre a 0 nella tabella ASCII standard, poiché il massimo valore è 127 (01111111b). Ma i bit 5 e 6, ci indicano in quale gruppo di caratteri standard ci troviamo.

Bit 5        Bit 6        Gruppo
  0            0            1°
  1            0            2°
  0            1            3°
  1            1            4°

Stampare una cifra modifica

Nel secondo gruppo, sono presenti le cifre da 0 a 9, che come abbiamo detto riempiono i caratteri da 30h a 39h. Quindi quando vorremo stampare una cifra, ci basterà sommarvi 30h.

  Modulo precedente

Campi di bit e Packed Data

  Torna a

Assembly

  Modulo successivo

Algebra Booleana