ASCII ed esadecimale
Fa parte della sezione Fondamenti del percorso Assembly di Coddy. Lezione 13 di 45.
I computer capiscono solo i numeri. Quindi, come fanno a memorizzare lettere come 'A', 'b' o '?'?
La risposta è ASCII (American Standard Code for Information Interchange). ASCII è una tabella che assegna un numero a ogni carattere.
Come funziona ASCII:
| Carattere | Numero ASCII (decimale) | Numero ASCII (esadecimale) |
|---|---|---|
| 'A' | 65 | 0x41 |
| 'B' | 66 | 0x42 |
| 'C' | 67 | 0x43 |
| 'a' | 97 | 0x61 |
| 'b' | 98 | 0x62 |
| '0' | 48 | 0x30 |
| '1' | 49 | 0x31 |
| ' ' (spazio) | 32 | 0x20 |
| '\n' (a capo) | 10 | 0x0A |
| '\0' (null) | 0 | 0x00 |
Valori ASCII importanti da memorizzare per l'assembly:
| Carattere | Esadecimale | Perché ti serve |
|---|---|---|
| 'A' | 0x41 | Le lettere maiuscole iniziano qui |
| 'a' | 0x61 | Le lettere minuscole iniziano qui |
| '0' | 0x30 | Le cifre iniziano qui |
| Spazio | 0x20 | Per separare le parole |
Nuova riga (\n) | 0x0A | Per passare alla riga successiva |
Nullo (\0) | 0x00 | Indicatore di fine stringa |
Nota lo schema:
| Schema | Esempio |
|---|---|
| Le lettere maiuscole da A a Z sono consecutive | 'A'=65, 'B'=66, 'C'=67... |
| Le lettere minuscole da a a z sono consecutive | 'a'=97, 'b'=98, 'c'=99... |
| Le cifre da 0 a 9 sono consecutive | '0'=48, '1'=49, '2'=50... |
| Minuscola = maiuscola + 32 | 'a' (97) = 'A' (65) + 32 |
Come viene memorizzata una stringa in memoria:
La parola "Hi" con un carattere di nuova riga viene memorizzata come:
| Carattere | Esadecimale | Binario |
|---|---|---|
| 'H' | 0x48 | 01001000 |
| 'i' | 0x69 | 01101001 |
| '\n' | 0x0A | 00001010 |
In assembly, lo scrivi così: db 'Hi', 0x0A
Perché ti serve per l'assembly:
Quando definisci una stringa in data.asm, stai memorizzando codici ASCII in memoria. Quando stampi una stringa, il sistema operativo legge quei codici ASCII e visualizza i caratteri corrispondenti.
Provalo tu
Questa lezione non include una sfida di codice.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
1La macchina
Che cos’è la CPUMemoriaRegistri vs memoriaCome funzionano le istruzioniSchema a due fileL’architettura x86-642Sistemi numerici
Perché il binario?Numeri binariDa decimale a binarioPerché l'esadecimale?Da esadecimale a decimaleDa decimale a esadecimaleASCII ed esadecimale5Chiamata di sistema di uscita
Cos'è una chiamata di sistema?Chiamata di sistema di uscita (60)Codici di uscitaRiepilogo: uscita correttaEsercitati da solo: Playground Assembly