• Číslice hexadecimální číselné soustavy. Abecední hexadecimální číselná soustava

    Hexadecimální zápis ("Hex") je pohodlný způsob reprezentace binárních hodnot. Stejně jako desítkové má základ deset a dvojkové má základ dva, šestnáctkové má základ šestnáct.

    Číselná soustava se základem 16 používá čísla 0 až 9 a písmena A až F. Obrázek ukazuje ekvivalentní desítkové, binární a hexadecimální hodnoty pro binární čísla 0000 až 1111. Je pro nás jednodušší vyjádřit hodnotu jako jedna hexadecimální číslice než jako čtyři bity.

    Porozumění Bytes

    Vzhledem k tomu, že 8 bitů (bajtů) je standardní binární seskupení, lze binární čísla od 00000000 do 11111111 reprezentovat v hexadecimálním zápisu jako čísla od 00 do FF. Pro dokončení 8bitové reprezentace jsou vždy zobrazeny úvodní nuly. Například binární hodnota 0000 1010 by byla 0A v šestnáctkové soustavě.

    Reprezentující hexadecimální hodnoty

    Poznámka: Je důležité rozlišovat hexadecimální hodnoty od desítkových hodnot pro znaky 0 až 9, jak je znázorněno na obrázku.

    Hexadecimální hodnoty jsou obvykle v textu reprezentovány hodnotou, které předchází 0x (např. 0x73) nebo dolním indexem 16. Vzácněji za nimi může následovat písmeno H, například 73H. Protože však text dolního indexu není rozpoznán na příkazovém řádku nebo v programovacích prostředích, před šestnáctkovými čísly technicky předchází "0x" (nula X). Výše uvedené příklady by proto byly zobrazeny jako 0x0A a 0x73.

    Hexadecimální zápis se používá k reprezentaci ethernetových MAC adres a IP adres verze 6.

    Hexadecimální převody

    Převody čísel mezi desítkovými a hexadecimálními hodnotami jsou snadné, ale rychlé dělení nebo násobení 16 není vždy vhodné. Pokud jsou takové převody potřeba, je obvykle jednodušší převést desítkovou nebo šestnáctkovou hodnotu na binární a poté převést binární hodnotu na desítkovou nebo šestnáctkovou, podle toho, co chcete získat.

    S praxí je možné rozpoznat binární bitové vzory, které odpovídají desítkovým a hexadecimálním hodnotám. Obrázek ukazuje tyto vzory pro některé 8bitové hodnoty.

    Hexadecimální číselný systém má abecedu skládající se z 16 číslic:

    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, c, d, e, f.

    Při zápisu čísla v šestnáctkové soustavě se k zápisu čísel označujících čísla 10, 11, 12. 13, 14. 15 používají písmena A, B, C, D, E, F, resp.

    Převod čísel z hexadecimálních na desítkové

    Jakékoli šestnáctkové číslo můžete převést na desítkové pomocí již známého vzorce

    Příklady.

      AE07 16 =10∙16 3 +14∙16 2 +0∙16 1 +7∙16 0 =44551 10 .

      100 16 =1∙16 2 +0∙16 1 +0∙16 0 =256 10 .

      58 16 =5∙16 1 +8∙16 0 =.88 10 .

      2A 16 \u003d 2 16 1 + 10 16 0 \u003d 42 10.

    Převod čísla z desítkové soustavy do šestnáctkové se provádí stejným způsobem jako ve dvojkové soustavě.

    Převod čísel z hexadecimálních na binární a naopak

    Jakékoli hexadecimální číslo můžete převést na binární následujícím způsobem. Každá hexadecimální číslice čísla je zapsána jako čtyřmístné binární číslo - tetráda. Poté mohou být nuly vlevo vyřazeny.

    2) 2A= 0010 1010 2 = 101 010 2 .

    3) 58 16 = 0101 1000 2 = 1011000 2 .

    Stejným způsobem můžete naopak převést libovolné binární číslo na hexadecimální. Každé čtyři binární číslice, počítané zprava doleva, jsou zapsány jako jedna hexadecimální číslice. Tyto postavy jsou také uspořádány zprava doleva.

    Příklady.

    2. 101010 2 = 10 1010 2 = 2A.

    3. 1011000 2 = 101 1000 2 = 58 16 .

    Osmičková číselná soustava

    Osmičková číselná soustava má abecedu skládající se z 8 číslic:

    0, 1, 2, 3, 4, 5, 6, 7.

    Převod čísla z desítkové soustavy na osmičkovou a naopak se provádí analogicky s převodem do/z dvojkové soustavy.

    Převod čísel z osmičkové do dvojkové a naopak

    Každá číslice osmičkového zápisu čísla je zapsána jako trojmístné binární číslo - trojice.

    Příklady.

    2563 8 = 010 101 110 011 2 =10101110011 2 .

    1001101 2 = 001 001 101 2 = 115 8 .

    Metodické materiály k laboratorní hodině č. 1

    Téma laboratorní lekce: Číselné soustavy. Měření informací.

    Počet hodin: 2.

    Příklady s řešeními

      Překlad zp -ary systém na 10-ary. Předpokládejme, že je nutné převést číslo v nějaké číselné soustavě na desítkové. Abychom to mohli udělat, musíme jej reprezentovat ve formuláři

    11100110 2 = 1∙2 7 + 1∙2 6 + 1∙2 5 + 0∙2 4 + 0∙2 3 + 1∙2 2 + 1∙2 1 + 0∙2 0 = 128 + 64 + 32 + 4 + 2 = 230 10 .

    2401 5 = 2∙5 3 + 4∙5 2 + 0∙5 1 + 1∙5 0 = 250 + 100 + 0 + 1 = 351.

      Převést z desítkové soustavy nap -ic.

    2.1 98 10 → X 2.

    Číslo vydělíme 2. Poté neúplný podíl vydělíme 2. Pokračujeme, dokud nebude neúplný podíl menší než 2, tzn. rovný 1.

      98: 2 = 49. Zbytek - 0 .

      49: 2 = 24. Zbytek - 1 .

      24: 2 = 12. Zbytek - 0 .

      12: 2 = 6. Zbytek - 0 .

      6: 2 = 3. Zbytek - 0 .

      3: 2 = 1 . Zbytek - 1 .

    Protože poslední neúplný kvocient je 1, proces je u konce. Všechny zbytky zapíšeme zdola nahoru, počínaje posledním neúplným kvocientem, a dostaneme číslo 1100010. Takže 98 10 \u003d 1100010 2.

    2.2 2391 10 → X 16 .

    Vydělte číslo 16. Poté vydělte parciální podíl 16. Pokračujte, dokud nebude parciální podíl menší než 16.

      2391: 16 = 149. Zbytek - 7 .

      149: 16 = 9 . Zbytek - 5 .

    Protože poslední neúplný kvocient (9) je menší než 16, proces je u konce. Zapíšeme, počínaje posledním neúplným kvocientem, všechny zbytky zdola nahoru a dostaneme číslo 957. Takže 2391 10 \u003d 957 16.

    2.3 12165 10 → X 2.

    Pokud převedete dělení na binární systém, získáte spokojený těžkopádný proces. Nejprve můžete převést číslo do osmičkové soustavy a poté nahradit osmičkové číslice zprava doleva trojicí.

    12165 10 = 27605 8 = 010 111 110 000 101 = 10111110000101.

      Určení základu číselné soustavyp .

    Jeden chlapec o sobě napsal: „Mám 24 prstů, 5 na každé ruce a 12 na nohou. Jak to může být?

    Řešení. Určete základ číselné soustavy p. Protože víme, že existuje pouze 10 10 prstů, pak 12 p =1∙p+2 = 1010. Odtud dostaneme rovnici p + 2 = 10  p= 8. Chlapec tedy myslel čísla v osmičkové soustavě. Ve skutečnosti je celkem 24 8 = 2∙8+4 = 20 10 prstů a 12 8 = 1∙8+2 = 10 10 na nohou.

    Výsledek se již dostavil!

    Číselné soustavy

    Existují poziční a nepoziční číselné soustavy. Arabský číselný systém, který používáme v každodenním životě, je poziční, zatímco římský nikoli. V pozičních číselných systémech poloha čísla jednoznačně určuje velikost čísla. Zvažte to na příkladu čísla 6372 v desítkové soustavě čísel. Očíslujme toto číslo zprava doleva počínaje nulou:

    Pak může být číslo 6372 reprezentováno takto:

    6372=6000+300+70+2 =6 10 3 +3 10 2 +7 10 1 +2 10 0 .

    Číslo 10 definuje číselnou soustavu (v tomto případě je to 10). Hodnoty polohy daného čísla jsou brány jako stupně.

    Uvažujme skutečné desetinné číslo 1287,923. Číslováme od nulové pozice čísla od desetinné čárky doleva a doprava:

    Pak číslo 1287.923 může být reprezentováno jako:

    1287,923 =1000+200+80 +7+0,9+0,02+0,003 = 1 10 3 +2 10 2 +8 10 1 +7 10 0 +9 10 -1 +2 10 -2 +3 10 -3 .

    Obecně lze vzorec reprezentovat takto:

    C n s n + C n-1 s n-1 +...+C1 s 1 + C 0 s 0 + D -1 s -1 + D -2 s -2 + ... + D -k s -k

    kde C n je celé číslo na pozici n, D -k - zlomkové číslo na pozici (-k), s- číselný systém.

    Pár slov o číselných soustavách Číslo v desítkové číselné soustavě se skládá ze sady číslic (0,1,2,3,4,5,6,7,8,9), v osmičkové soustavě se skládá z sada číslic (0,1, 2,3,4,5,6,7), v binární soustavě - ze sady číslic (0,1), v hexadecimální číselné soustavě - ze sady číslic (0, 1,2,3,4,5,6, 7,8,9,A,B,C,D,E,F), kde A,B,C,D,E,F odpovídají číslům 10,11, 12, 13, 14, 15. V tabulce 1 jsou čísla zastoupena v různých číselných soustavách.

    stůl 1
    Notový zápis
    10 2 8 16
    0 0 0 0
    1 1 1 1
    2 10 2 2
    3 11 3 3
    4 100 4 4
    5 101 5 5
    6 110 6 6
    7 111 7 7
    8 1000 10 8
    9 1001 11 9
    10 1010 12 A
    11 1011 13 B
    12 1100 14 C
    13 1101 15 D
    14 1110 16 E
    15 1111 17 F

    Převod čísel z jedné číselné soustavy do druhé

    Pro převod čísel z jedné číselné soustavy do druhé je nejjednodušší převést číslo do desítkové číselné soustavy a poté z desítkové číselné soustavy převést do požadované číselné soustavy.

    Převod čísel z libovolné číselné soustavy do desítkové číselné soustavy

    Pomocí vzorce (1) můžete převést čísla z libovolné číselné soustavy na desítkovou číselnou soustavu.

    Příklad 1. Převeďte číslo 1011101.001 z binární číselné soustavy (SS) na desítkovou SS. Řešení:

    1 2 6 + 0 2 5 + 1 2 4 + 1 2 3 + 1 2 2 + 0 2 1 + 1 20 + 0 2-1+ 0 2-2+ 1 2-3 =64+16+8+4+1+1/8=93,125

    Příklad2. Převeďte číslo 1011101.001 z osmičkové číselné soustavy (SS) na desítkovou SS. Řešení:

    Příklad 3 . Převeďte číslo AB572.CDF z hexadecimálního na desítkové SS. Řešení:

    Tady A- nahrazeno 10, B- v 11, C- ve 12, F- v 15.

    Převod čísel z desítkové číselné soustavy do jiné číselné soustavy

    Chcete-li převést čísla z desítkové číselné soustavy do jiné číselné soustavy, musíte samostatně přeložit celočíselnou část čísla a zlomkovou část čísla.

    Celočíselná část čísla se překládá z desítkové SS do jiné číselné soustavy - postupným dělením celé části čísla základem číselné soustavy (pro binární SS - 2, pro 8-místné SS - 8, pro 16místný - o 16 atd. ) získat celý zbytek, menší než je základ SS.

    Příklad 4 . Přeložme číslo 159 z desítkové SS na binární SS:

    159 2
    158 79 2
    1 78 39 2
    1 38 19 2
    1 18 9 2
    1 8 4 2
    1 4 2 2
    0 2 1
    0

    Jak je vidět z Obr. 1, číslo 159, když je děleno 2, dává podíl 79 a zbytek je 1. Dále, číslo 79, když je děleno 2, dává podíl 39 a zbytek je 1, a tak dále. Výsledkem je, že sestavením čísla ze zbytku dělení (zprava doleva) dostaneme číslo v binárním SS: 10011111 . Proto můžeme napsat:

    159 10 =10011111 2 .

    Příklad 5 . Převeďme číslo 615 z desítkové SS na osmičkovou SS.

    615 8
    608 76 8
    7 72 9 8
    4 8 1
    1

    Při převodu čísla z desítkové SS na osmičkovou SS musíte číslo postupně dělit 8, dokud nezískáte zbytek celého čísla menší než 8. Výsledkem je, že sestavením čísla ze zbytku dělení (zprava doleva) získat číslo v osmičkovém SS: 1147 (viz obr. 2). Proto můžeme napsat:

    615 10 =1147 8 .

    Příklad 6 . Přeložme číslo 19673 z desítkové číselné soustavy na hexadecimální SS.

    19673 16
    19664 1229 16
    9 1216 76 16
    13 64 4
    12

    Jak je vidět z obrázku 3, postupným dělením čísla 19673 16 jsme dostali zbytky 4, 12, 13, 9. V hexadecimální soustavě čísel odpovídá číslu 12 C, číslu 13 - D. naše hexadecimální číslo je 4CD9.

    Abychom převedli správné desetinné zlomky (reálné číslo s nulovou celočíselnou částí) na číselnou soustavu se základem s, musíme toto číslo postupně násobit s, dokud není zlomková část čistá nula, jinak nezískáme požadovaný počet číslic. Pokud výsledkem násobení je číslo s celočíselnou částí jinou než nula, pak se tato celočíselná část nebere v úvahu (jsou postupně zahrnuty do výsledku).

    Podívejme se na výše uvedené s příklady.

    Příklad 7 . Přeložme číslo 0,214 z desítkové číselné soustavy na binární SS.

    0.214
    X 2
    0 0.428
    X 2
    0 0.856
    X 2
    1 0.712
    X 2
    1 0.424
    X 2
    0 0.848
    X 2
    1 0.696
    X 2
    1 0.392

    Jak je vidět z obr.4, číslo 0,214 se postupně násobí 2. Pokud je výsledkem násobení číslo s jinou celočíselnou částí než nula, pak se celá část zapisuje samostatně (vlevo od čísla), a číslo se zapisuje s nulovou celočíselnou částí. Pokud při vynásobení získáme číslo s nulovou celočíselnou částí, pak se nalevo od něj zapíše nula. Proces násobení pokračuje, dokud není v zlomkové části získána čistá nula nebo dokud není získán požadovaný počet číslic. Zápisem tučných čísel (obr. 4) shora dolů dostaneme požadované číslo ve dvojkové soustavě: 0. 0011011 .

    Proto můžeme napsat:

    0.214 10 =0.0011011 2 .

    Příklad 8 . Přeložme číslo 0,125 z desítkové číselné soustavy do dvojkové SS.

    0.125
    X 2
    0 0.25
    X 2
    0 0.5
    X 2
    1 0.0

    Pro převod čísla 0,125 z desítkové SS na binární se toto číslo postupně násobí 2. Ve třetí fázi bylo získáno 0. Proto byl získán následující výsledek:

    0.125 10 =0.001 2 .

    Příklad 9 . Přeložme číslo 0,214 z desítkové číselné soustavy na hexadecimální SS.

    0.214
    X 16
    3 0.424
    X 16
    6 0.784
    X 16
    12 0.544
    X 16
    8 0.704
    X 16
    11 0.264
    X 16
    4 0.224

    Podle příkladů 4 a 5 dostaneme čísla 3, 6, 12, 8, 11, 4. Ale v šestnáctkové soustavě SS čísla C a B odpovídají číslům 12 a 11. Máme tedy:

    0,21410 = 0,36C8B416.

    Příklad 10 . Přeložme číslo 0,512 z desítkové číselné soustavy do osmičkové SS.

    0.512
    X 8
    4 0.096
    X 8
    0 0.768
    X 8
    6 0.144
    X 8
    1 0.152
    X 8
    1 0.216
    X 8
    1 0.728

    Mám:

    0.512 10 =0.406111 8 .

    Příklad 11 . Přeložme číslo 159.125 z desítkové číselné soustavy na binární SS. K tomu přeložíme odděleně celočíselnou část čísla (příklad 4) a zlomkovou část čísla (příklad 8). Spojením těchto výsledků dostaneme:

    159.125 10 =10011111.001 2 .

    Příklad 12 . Přeložme číslo 19673.214 z desítkové číselné soustavy na hexadecimální SS. K tomu přeložíme odděleně celočíselnou část čísla (příklad 6) a zlomkovou část čísla (příklad 9). Další kombinací těchto výsledků dostáváme.

    Hexadecimální číselná soustava. náš první program.

    Chcete-li psát programy v assembleru, musíte rozumět hexadecimální číselné soustavě. Není v tom nic složitého. V životě používáme desítkovou soustavu. Jsem si jistý, že to všichni znáte, takže se pokusím vysvětlit hexadecimální systém nakreslením analogie s desetinnou soustavou.

    Pokud tedy v desítkové soustavě přidáme nulu napravo od libovolného čísla, toto číslo se zvýší 10krát. Například: 1 x 10 = 10; 10 x 10 = 100; 100 x 10 = 1000 atd. V tomto systému používáme čísla od 0 do 9, tzn. deset různých číslic (ve skutečnosti se proto nazývá desítková).

    V šestnáctkové soustavě používáme šestnáct „číslic“. Slovo "čísla" jsem konkrétně napsal v uvozovkách, protože používá víc než jen čísla. A jak to vlastně je? Vysvětluji: od 0 do 9 počítáme stejně jako v desítkové soustavě, ale pak to bude takto: A, B, C, D, E, F. Číslo F, jakkoli obtížné počet, bude se rovnat 15 v desítkové soustavě (viz tabulka 1).

    Desetinné číslo

    Hexadecimální číslo

    Tabulka 1. Desítkové a šestnáctkové soustavy.

    Pokud tedy k libovolnému číslu v šestnáctkové soustavě přidáme nulu zprava, toto číslo se zvýší16 jednou.

    Příklad 1: 1 x 16 = 10; 10 x 16 = 100; 100 x 16 = 1000 atd.

    Dokázali jste v příkladu 1 rozlišit šestnáctkové od desítkové? A z této řady: 10, 12, 45, 64, 12, 8, 19? Může být hexadecimální nebo decimální. Aby nedošlo k záměně a počítač mohl jednoznačně rozlišit jedno číslo od druhého, je v Assembleru zvykem dávat za hexadecimální číslo znak h nebo H ( H je zkratka pro angličtinu. hexadecimální (hexadecimální). Zkráceně se tomu někdy říká jednoduše hex ) . A za desetinnou čárkou nic nedávejte. Protože čísla od 0 do 9 v obou systémech mají stejný význam, pak jsou čísla zapsaná jako 5 a 5h stejná.

    Že. Příklad 1 (viz výše) by bylo správnější napsat takto: 1 x 16 = 10h; 10h x 16 = 100h; 100h x 16 = 1000h. Nebo takto: 1h x 10h = 10h; 10h x 10h = 100h; 100h x 10h = 1000h.

    Proč je potřeba hexadecimální systém, budeme zvažovat v následujících číslech. Prozatím pro náš ukázkový program, o kterém bude řeč níže, potřebujeme vědět o existenci hexadecimálních čísel.

    Pojďme si to tedy shrnout. Hexadecimální číselný systém se skládá z 10 číslic (od 0 do 9) a 6 písmen latinské abecedy (A, B, C, D, E, F). Pokud přidáme nulu napravo od libovolného čísla v šestnáctkové soustavě, toto číslo se zvýší o16 jednou. Je velmi důležité tomuto tématu porozumět., protože jej budeme neustále používat při psaní programů.

    Nyní něco málo o tom, jak budu stavět příklady v assembleru. Prezentovat je ve formátu HTML není příliš vhodné, takže nejprve bude samotný programový kód s očíslovanými řádky a hned za ním vysvětlivky a poznámky.

    Takhle:

    linky Programový kód
    (1) mov ah, 9

    Vysvětlivky:

    V řádku (1) děláme něco a v řádku (15) děláme něco.

    Obrovský požadavek: NEKOpírujte programy ze stránky do schránky a poté je nevkládejte do poznámkového bloku (nebo kamkoli jinam)! Zadejte je ručně v textovém editoru. Pokud existuje tiskárna, vyberte program, vytiskněte vybraný fragment a poté jej přeneste z papíru do editoru. Všechny příklady musíte napsat sami! Tím se urychlí zapamatování operátorů.

    A dál. Malá a VELKÁ písmena se v Assembleru nerozlišují. Příspěvky jako:

    Assembler je vnímán stejně. Můžete samozřejmě donutit assembler, aby rozlišoval mezi malými a VELKÝMI znaky, ale zatím to dělat nebudeme. Pro čitelnost programu je nejlepší psát příkazy malými písmeny a názvy podprogramů a štítků začínat velkými písmeny. Ale takhle to někomu bude vyhovovat.

    Pojďme tedy k našemu prvnímu programu:

    (1) Segment CSEG

    (2) org 100h

    (4) Začátek:

    (6) mov ah,9

    (7) mov dx, offsetová zpráva

    (8) mezi 21h

    (10) int 20h

    (11)

    (12) Zpráva db "Ahoj světe!" $

    (13) CSEG končí

    (14) konecZačátek

    Abychom vysvětlili všechny operátory tohoto příkladu, budeme potřebovat několik epizod. Proto popis některých příkazů v této fázi jednoduše vynecháme. Jen si pomysli, že to tak má být. Ve velmi blízké budoucnosti se budeme těmito operátory podrobně zabývat. Takže řádky s čísly (1), (2) a (13) jednoduše ignorujete.

    Řádky (3), (5), (9) a (11) zůstávají prázdné. To se provádí pro přehlednost. Assembler je jednoduše vynechá.

    Nyní přejděme ke zbytku operátorů. Od řádku (4) začíná kód programu. Toto je štítek, který říká assembleru, aby spustil kód. Řádek (14) obsahuje příkaz end Begin ( Začněte anglicky Start; konec konec). Toto je konec programu. Obecně místo slov Začít dalo se použít něco jiného. Například, Start:. V tomto případě bychom museli program dokončit Konec Start (14).

    Řádky (6) (8) zobrazují zprávu Hello, world!. Zde musíme stručně hovořit o registrech procesorů (podrobněji se tomuto tématu budeme věnovat v příštím čísle).

    Registr procesoru je vyhrazená paměť pro uložení čísla.

    Například:

    Pokud chceme sečíst dvě čísla, pak v matematice píšeme takto:

    A, B a C jsou to jakési registry (mluvíme-li o počítači), do kterých lze ukládat některá data. A=5 lze číst jako: Přidělte A číslo 5 .

    Pro přiřazení hodnoty registru existuje v Assembleru operátor mov (z anglického move load). Řádek (6) by měl znít takto: Nahrávání do registru AHčíslo 9 (jinými slovy, přiřadíme AHčíslo 9). Níže zvážíme, proč je to nutné.

    V řádku (7) načteme do registru DX adresa zprávy, která má být odeslána (v tomto příkladu to bude řetězecAhoj světe! $).

    Přerušení budou podrobně popsána v budoucích verzích. Zde řeknu pár slov.

    Přerušit MS-DOS je druh podprogramu (součást MS DOS), který je trvale uložen v paměti a lze jej kdykoli vyvolat z libovolného programu.

    Zvažte výše uvedené na příkladu (zvýraznit poznámky malým písmem):

    Program pro sčítání dvou čísel

    HomeProgramy

    A=5 do proměnné A zadáme hodnotu 5

    B=8 na hodnotu proměnné B 8

    Přidání volání podprogramu

    nyní C je 13

    A = 10 to samé, jen jiná čísla

    B = 25

    Přidání volání podprogramu

    nyní C je 35

    Konec programu

    Přidání podprogramu

    C=A+B

    Návrat z podprogramu vracíme se na místo, odkud jsme volali

    Konec podprogramu

    V tomto příkladu jsme podprogram volali dvakrát Přidání, který přidal dvě čísla předaná v proměnných A a B . Výsledek je umístěn do proměnné C. Při volání podprogramu si počítač pamatuje, odkud byl volán, a poté, když podprogram skončí, počítač se vrátí na místo, odkud byl volán. Že. Podprogramy můžete odkudkoli volat neomezeně mnohokrát.

    Při provádění řádku (8) programu v assembleru zavoláme podprogram (v tomto případě nazývaný přerušení), který řádek vypíše na obrazovku. Za tímto účelem ve skutečnosti vkládáme potřebné hodnoty do registrů. Veškerou potřebnou práci (řádkový výstup, pohyb kurzoru) vykonává podprogram. Tento řádek lze číst takto: zavoláme dvacáté první přerušení ( int z angličtiny. přerušit přerušit). Upozorňujeme, že za číslem 21 je písmeno h . Toto, jak již víme, je hexadecimální číslo (33 v desítkové soustavě). Nic nám samozřejmě nebrání ve výměně linky int 21h až int 33. Program bude fungovat správně. Jen je v Assembleru zvykem udávat číslo přerušení v šestnáctkové soustavě.

    V řádku (10) jsme, uhodli jste, zavolali přerušení 20 h . Chcete-li zavolat toto přerušení, nemusíte v registrech zadávat žádné hodnoty. Provádí pouze jeden úkol: ukončení programu (ukončení DOS). V důsledku přerušení 20h se program vrátí tam, kde byl spuštěn (nahrán, volán). Například v Norton Commander nebo DOS Navigator.

    Řádek (12) obsahuje zprávu, která má být odeslána. První slovo ( zpráva zpráva) název zprávy. Může to být cokoliv (např. nepořádek nebo provázek atd.). O věnujte pozornost řádku (7), ve kterém načítáme do registru DX adresu naší zprávy.

    Můžeme vytvořit další linku, kterou zavoláme nepořádek2. Poté od řádku (9) vložte následující příkazy:

    (10) mov dx,offset Mess2

    (13) Zpráva db "Ahoj světe!" $

    (14) Mess2 db "To jsem já! $"

    a znovu sestavte náš program. Doufám, že tušíte, co se stane

    Věnujte pozornost poslednímu znaku v řádcích Message and Mess2 - $. Ukazuje na konec řádku. Pokud jej odstraníme, pak 21 h přerušení bude pokračovat ve výstupu, dokud se někde v paměti nenarazí na znak $. Na obrazovce uvidíme odpadky .

    Pokud máte debugger, můžete vidět, jak bude náš program fungovat.

    Účelem tohoto čísla nebylo pochopit podrobně s každým operátorem. To je nemožné, protože ještě nemáte dostatek znalostí. Věřím, že po 3-4 vydáních pochopíte princip a strukturu programu v Assembleru. Možná jste si mysleli, že jazyk symbolických instrukcí je extrémně komplikovaný, ale věřte mi, na první pohled.

    Hexadecimální číselná soustava(také hexadecimální kód) je poziční číselná soustava s celočíselným základem 16. Někdy se v literatuře používá i výraz hex (vyslovuje se „hex“, zkratka anglického hexadecimal). Čísla tohoto číselného systému jsou běžně používané arabské číslice 0-9, stejně jako první znaky latinské abecedy A-F. Písmena odpovídají následujícím desetinným hodnotám:

    • * A-10;
    • *B-11;
    • *C-12;
    • *D-13;
    • * E - 14;
    • * F - 15.

    Deset arabských číslic spolu se šesti latinskými písmeny tedy tvoří šestnáct číslic systému.

    Mimochodem, na našem webu můžete převést jakýkoli text na desítkový, hexadecimální, binární kód pomocí online kalkulačky kódu.

    aplikace. Hexadecimální kódširoce používán v nízkoúrovňovém programování, stejně jako v různých počítačových referenčních dokumentech. Oblíbenost systému je odůvodněna architektonickým řešením moderních počítačů: mají bajt (skládající se z osmi bitů) jako minimální jednotku informace - a hodnotu bajtu je vhodné zapsat pomocí dvou hexadecimálních číslic. Hodnota bajtu se může pohybovat od #00 do #FF (0 až 255 v desítkovém zápisu) - jinými slovy, pomocí hexadecimální kód, můžete zapsat libovolný stav bajtu, přičemž v nahrávce nejsou použity žádné "nadbytečné" číslice.

    Zakódováno Unicodečtyři hexadecimální číslice představují číslo znaku. Zápis barev RGB (červená, zelená, modrá) také často používá hexadecimální kód (například #FF0000 je jasně červený zápis).

    Způsob, jak napsat hexadecimální kód.

    Matematický způsob psaní. V matematickém zápisu se základ systému zapisuje v desítkovém tvaru v dolním indexu napravo od čísla. Desetinný zápis čísla 3032 lze zapsat jako 3032 10 , v šestnáctkové soustavě bude toto číslo zapsáno jako BD8 16 .

    V syntaxi programovacích jazyků. Syntaxe různých programovacích jazyků nastavuje formát pro zápis čísla pomocí hexadecimální kód:

    * V syntaxi některých variant jazyka symbolických instrukcí se používá latinské písmeno „h“, které je umístěno napravo od čísla, například: 20Dh. Pokud číslo začíná latinským písmenem, pak mu předchází nula, například: 0A0Bh. To se provádí za účelem odlišení hodnot od konstant pomocí hexadecimální kód;

    * Jiné varianty assembleru, stejně jako Pascal (a jeho rozmanitosti jako Delphi) a některé základní dialekty používají předponu „$“: $A15;

    * Ve značkovacím jazyce HTML a také v kaskádových souborech CSS se k určení barvy ve formátu RGB s hexadecimálním zápisem používá předpona „#“: #00DC00.

    Jak přeložit hexadecimální kód do jiného systému?

    Převod z šestnáctkové soustavy na desítkovou. K provedení operace převodu z hexadecimální soustavy na desítkovou je nutné reprezentovat původní číslo jako součet součinů číslic v číslicích hexadecimálního čísla stupněm základu.

    Binární SS

    hexadecimální ss

    Například musíte přeložit hexadecimální číslo A14: má tři číslice. Pomocí pravidla to zapíšeme jako součet mocnin se základem 16:

    A14 16 = 10,16 2 + 1,16 1 + 4,16 0 = 10,256 + 1,16 + 4,1 = 2560 + 16 + 4 = 2580 10

    Převod čísel z binárních do hexadecimálních a naopak.

    Pro překlad se používá tabulka sešitů. Chcete-li převést číslo z binárního na desítkové, je nutné je rozdělit na samostatné tetrády zprava doleva a poté pomocí tabulky nahradit každou tetrádu odpovídající hexadecimální číslicí. V tomto případě, pokud počet číslic není násobkem čtyř, je nutné přidat odpovídající počet nul vpravo od čísla tak, aby celkový počet binárních číslic byl násobkem čtyř.

    Tabulka sešitů pro překlad.

    Chcete-li převést z hexadecimální na binární, musíte provést opačnou operaci: nahradit každou číslici tetrádou z tabulky.

    Binární SS

    Osmičková SS

    Příklad převod z hexadecimální na binární: A5E 16 = 1010 0101 1110 = 101001011110 2

    Příklad převod z binárního na hexadecimální: 111100111 2 = 0001 1110 0111 = 1E7 16

    V tomto příkladu nebyl počet číslic v původním binárním čísle čtyři (9), takže byly přidány koncové nuly, aby byl celkový počet číslic 12.

    Automatický překlad. Rychlý převod z hexadecimálního do jednoho ze tří oblíbených systémů (binární, osmičkový a desítkový), stejně jako zpětný překlad, lze provést pomocí standardní kalkulačky dodávané s Windows. Otevřete kalkulačku, z nabídky vyberte Zobrazit -> Programátor. V tomto režimu můžete nastavit aktuálně používaný číselný systém (viz menu vlevo: Hex, Dec, Oct, Bin). V tomto případě se změna aktuálního číselného systému automaticky přeloží.