ASCII i system szesnastkowy
Część sekcji Podstawy ścieżki Assembly w Coddy. Lekcja 13 z 45.
Komputery rozumieją tylko liczby. Jak więc przechowują litery, takie jak „A”, „b” czy „?”?
Odpowiedzią jest ASCII (American Standard Code for Information Interchange). ASCII to tabela przypisująca liczbę każdemu znakowi.
Jak działa ASCII:
| Znak | Liczba ASCII (dziesiętnie) | Liczba ASCII (szesnastkowo) |
|---|---|---|
| 'A' | 65 | 0x41 |
| 'B' | 66 | 0x42 |
| 'C' | 67 | 0x43 |
| 'a' | 97 | 0x61 |
| 'b' | 98 | 0x62 |
| '0' | 48 | 0x30 |
| '1' | 49 | 0x31 |
| ' ' (spacja) | 32 | 0x20 |
| '\n' (nowa linia) | 10 | 0x0A |
| '\0' (null) | 0 | 0x00 |
Ważne wartości ASCII do zapamiętania przy programowaniu w asemblerze:
| Znak | Hex | Dlaczego ich potrzebujesz |
|---|---|---|
| 'A' | 0x41 | Wielkie litery zaczynają się tutaj |
| 'a' | 0x61 | Małe litery zaczynają się tutaj |
| '0' | 0x30 | Cyfry zaczynają się tutaj |
| Spacja | 0x20 | Oddziela słowa |
Nowa linia (\n) | 0x0A | Przejście do następnej linii |
Null (\0) | 0x00 | Znacznik końca ciągu |
Zwróć uwagę na wzorzec:
| Wzorzec | Przykład |
|---|---|
| Wielkie litery A-Z występują kolejno | 'A'=65, 'B'=66, 'C'=67... |
| Małe litery a-z występują kolejno | 'a'=97, 'b'=98, 'c'=99... |
| Cyfry 0-9 występują kolejno | '0'=48, '1'=49, '2'=50... |
| Mała litera = wielka litera + 32 | 'a' (97) = 'A' (65) + 32 |
Jak ciąg znaków jest przechowywany w pamięci:
Słowo „Hi” wraz ze znakiem nowej linii jest przechowywane jako:
| Znak | Szesnastkowo | Binarnie |
|---|---|---|
| 'H' | 0x48 | 01001000 |
| 'i' | 0x69 | 01101001 |
| '\n' | 0x0A | 00001010 |
W asemblerze zapisujesz to tak: db 'Hi', 0x0A
Dlaczego potrzebujesz tego w asemblerze:
Gdy definiujesz ciąg znaków w data.asm, zapisujesz kody ASCII w pamięci. Gdy wyświetlasz ciąg znaków, system operacyjny odczytuje te kody ASCII i wyświetla odpowiadające im znaki.
Spróbuj swoich sił
Ta lekcja nie zawiera wyzwania z kodem.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
1Maszyna
Czym jest CPUPamięćRejestry a pamięćJak działają instrukcjeWzorzec dwóch plikówArchitektura x86-642Systemy liczbowe
Dlaczego system binarny?Liczby binarneZamiana z systemu dziesiętnego na binarnyDlaczego system szesnastkowy?Zamiana z systemu szesnastkowego na dziesiętnyZamiana z systemu dziesiętnego na szesnastkowyASCII i system szesnastkowy5Wywołanie systemowe zakończenia
Czym jest syscall?Wywołanie systemowe zakończenia (60)Kody zakończeniaPodsumowanie: prawidłowe zakończeniePoćwicz samodzielnie: Edytor online Assembly