24 Zrozumieć Asembler
mogły być przeniesione na DEC, DEC zaprojektował swoje maszyny tak, żeby rozumiały tylko liczby w systemie o podstawie 8.
Przyjrzyjmy się chwilę temu, wykorzystując nasze doświadczenie z marsjańskim systemem liczbowym. W systemie o podstawie 8 musi być osiem cyfr. DEC był wystarczająco rozsądny, żeby nie wymyślać nowych cyfr; wykorzystane zostały zwykłe cyfry, od 0 do 7. W systemie o podstawie 8 nie występuje cyfra 8! Trzeba się chwilę do tego przyzwyczajać, ale to wynika z definicji systemu liczbowego. DEC nadał temu systemowi o podstawie 8 nazwę Octał (system ósemko-wy).
Wartości liczb w poszczególnych kolumnach systemu liczbowego spełniają oczywiście regułę, którą określiliśmy wcześniej. Wartość w każdej kolejnej kolumnie uzyskujemy mnożąc przez 8 wartość w kolumnie prawej strony.
W systemie ósemkowym liczymy w znany nam sposób: 1, 2, 3> 4, 5, 6, 7..,10.
No, zaczynają się tutaj drobne kłopoty. W systemie ósemkowym 10 następuje po 7. Co się stało z ósemką i dziewiątką? Kto je zjadł? Marsjanie? (Oni na pewno nie.) Jeszcze gorzej, one istnieją w dalszym ciągu, ale mają teraz zmienione nazwy. W systemie ósemkowym, kiedy mówisz „10", w rzeczywistości masz na myśli „8”. Gorzej, kiedy mówisz „11", w rzeczywistości chodzi ci o „9".
Niestety, DEC nie zrobił jednej rzeczy: nie wymyślił sprytnych nazw dla kolejnych kolumn. Pierwsza kolumna jest oczywiście kolumną jednostek. Ale następna kolumna w kierunku na lewo jest już kolumną dziesiątek, tak jak w naszym systemie liczbowym. Ale jest to przecież pomyłka. Z tego właśnie powodu włączyliśmu Mars do naszych rozważań: ósemkowa „dziesiątki” w rzeczywistości mają wartość 8.
Pomoże nam tutaj trochę tabela przeliczeniowa. W tabeli 1.3 przeliczyłem liczby do ósemkowej „trzydziestki", która odpowiada dziesiętnej wartości 24. Bardzo nie podoba mi się używanie nazw takich jak 11, 13 itp. w systemach innych niż dziesiętne. Ale w konwencji systemu ósemkowego wykorzystywane są jednak nazwy z systemu dziesiętnego z słowem „Octal" („ósemkowo") na końcu.
Pamiętaj, że każda kolejna kolumna w systemie liczbowym o danej podstawie ma wartość podstawy przemnożoną przez wartość w kolumnie z jej prawej strony Na przykład kolumna dziesiątek w systemie ósemkowym jest w rzeczywistości kolumną ósemek. Używam nazwy kolumna „dziesiątek", ponieważ zatytułowana jest ona cyfrą 10 i wymawiana „dziesięć”. Podobnie kolejna kolumna na lewo od 10 jest kolumną setek (ponieważ zatytułowana jest 100), ale w rzeczywistości kolumna setek ma wartość 8 mnożone przez 8, czyli 64. Kolejna kolumna na lewo ma wartość 64 mnożone przez 8, czyli 512. Dalsza kolumna na lewo ma wartość 512 mnożone przez 8, czyli 4096.
Tabela 1.3. Liczenie w systemie ósemkowym
liczby ósemkowe nazwa odpowiednik dziesiętny
0 |
zero |
0 |
1 |
jeden |
1 |
2 |
dwa |
2 |
3 |
trzy |
3 |
4 |
cztery |
4 |
5 |
pięć |
5 |
6 |
sześć |
6 |
7 |
siedem |
7 |
10 |
dziesięć |
8 |
11 |
jedenaście |
9 |
12 |
dwanaście |
10 |
13 |
trzynaście |
11 |
14 |
czternaście |
12 |
15 |
piętnaście |
13 |
16 |
szesnaście |
14 |
17 |
siedemnaście |
15 |
20 |
dwadzieścia |
16 |
21 |
dwadzieścia jeden |
17 |
22 |
dwadzieścia dwa |
18 |
23 |
dwadzieścia trzy |
19 |
24 |
dwadzieścia cztery |
20 |
25 |
dwadzieścia pięć |
21 |
26 |
dwadzieścia sześć |
22 |
27 |
dwadzieścia siedem |
23 |
30 |
trzydzieści |
24 |
To wyjaśnia, dlaczego czasami ktoś mówi o „dziesięć ósemkowo” mając na myśli osiem, czy „sto ósemkowo” mając na myśli 64 itd.