ASCII & Hex
Parte da seção Fundamentos do Journey de Assembly da Coddy — lição 13 de 45.
Computadores só entendem números. Então, como eles armazenam letras como 'A', 'b' ou '?'?
A resposta é ASCII (American Standard Code for Information Interchange). ASCII é uma tabela que atribui um número a cada caractere.
Como o ASCII funciona:
| Caractere | Número ASCII (decimal) | Número ASCII (hex) |
|---|---|---|
| 'A' | 65 | 0x41 |
| 'B' | 66 | 0x42 |
| 'C' | 67 | 0x43 |
| 'a' | 97 | 0x61 |
| 'b' | 98 | 0x62 |
| '0' | 48 | 0x30 |
| '1' | 49 | 0x31 |
| ' ' (espaço) | 32 | 0x20 |
| '\n' (nova linha) | 10 | 0x0A |
| '\0' (nulo) | 0 | 0x00 |
Valores ASCII importantes para memorizar para assembly:
| Caractere | Hex | Por que você precisa dele |
|---|---|---|
| 'A' | 0x41 | Letras maiúsculas começam aqui |
| 'a' | 0x61 | Letras minúsculas começam aqui |
| '0' | 0x30 | Dígitos começam aqui |
| Espaço | 0x20 | Separar palavras |
Nova linha (\n) | 0x0A | Mudar para a próxima linha |
Nulo (\0) | 0x00 | Marcador de fim de string |
Observe o padrão:
| Padrão | Exemplo |
|---|---|
| Letras maiúsculas A-Z são consecutivas | 'A'=65, 'B'=66, 'C'=67... |
| Letras minúsculas a-z são consecutivas | 'a'=97, 'b'=98, 'c'=99... |
| Dígitos 0-9 são consecutivos | '0'=48, '1'=49, '2'=50... |
| Minúscula = maiúscula + 32 | 'a' (97) = 'A' (65) + 32 |
Como uma string é armazenada na memória:
A palavra "Hi" com uma nova linha é armazenada como:
| Caractere | Hex | Binário |
|---|---|---|
| 'H' | 0x48 | 01001000 |
| 'i' | 0x69 | 01101001 |
| '\n' | 0x0A | 00001010 |
Em assembly, você escreve isso como: db 'Hi', 0x0A
Por que você precisa disso para assembly:
Quando você define uma string em data.asm, você está armazenando códigos ASCII na memória. Quando você imprime uma string, o sistema operacional lê esses códigos ASCII e exibe os caracteres correspondentes.
Experimente você mesmo
Esta lição não inclui um desafio de código.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
1A Máquina
O que é CPUMemóriaRegistradores vs MemóriaComo as instruções funcionamPadrão de Dois ArquivosA Arquitetura x86-642Sistemas de Numeração
Por que Binário?Números BináriosDecimal para BinárioPor que Hexadecimal?Hex para DecimalDecimal para HexASCII & Hex