Assembly/Rappresentazione dati/Il set di caratteri ASCII
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 | modifica sorgente]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 | modifica sorgente]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 | modifica sorgente]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 | modifica sorgente]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 | modifica sorgente]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 | modifica sorgente]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 | modifica sorgente]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 | Torna a | Modulo successivo |