Instrukční sada

Instrukční sada je předepsaná norma instrukcí která určuje, jaké instrukce musí procesor podporovat a jak se tyto instrukce mají v procesoru chovat. Příklad: 6 bitová instrukce 011000 v nějaké instrukční sadě “X” je interpretována jako provedení operace sečtení dvou čísel. Tatáž instrukce 011000 je v jiné instrukční sadě “Y” interpretována jako vynulování bitů na konkrétní adrese v paměti. ⚠️ Důležité k zapamatování: Každý procesor je vyrobený pro jednu konkrétní instrukční sadu. Procesory podporující více instrukčních sad se nevyrábí. ...

2 min · 240 slov · Miroslav Thompson

Program a instrukční sada

⚠️ Důležité k zapamatování: Na bitové vrstvě jsou všechny programy psané pro konkrétní instrukční sadu! Program psaný pro danou instrukční sadu bude fungovat pouze na procesorech, které jsou pro danou instrukční sadu stavěné, nebo jsou s instrukční sadou kompatibilní. Program a instrukční sada

1 min · 43 slov · Miroslav Thompson

Adresovatelnost

RAM paměť je adresovatelné zařízení. To znamená, že všechny bity jsou rozdělené do nějakých kousků 1 a každý tento kousek má svoji vlastní zadrátovanou fyzickou adresu. Fyzická adresa je obyčejné číslo, které se v praxi vždy vyjadřuje v hexadecimální formě. (např.: 0x00000FF). Bitové adresy RAM = Random Access Memory RAM paměť má svůj název “RAM” právě díky tomu, že je její obsah je fyzicky adresovatelný. Ke každému kousku paměti vedou na základě této adresy fyzické obvody. ...

1 min · 145 slov · Miroslav Thompson

Jak vypadá instrukce

Předpokládejme, že máme nějaký starší 16 bitový procesor, tedy procesor, do kterého mohou téct pouze 16 bitové instrukce. Jedna instrukce může vypadat například takto. 1011101001101011 Instrukce se skládá ze dvou částí: opcode – toto je identifikátor konkrétní instrukce. data – data obsahují další parametry k instrukci. Může jít například o adresu v paměti nebo konkrétní hodnotu která se má někam uložit, například pro dokončení nějaké matematické operace.

1 min · 67 slov · Miroslav Thompson

Typy instrukcí

Co všechno vlastně lze pomocí instrukcí dělat? Moderní instrukční sady podporují až tisíce různých instrukcí. Pro běžného ajťáka však stačí vědět, že většina instrukcí spadá pod následující typy. Přesunové instrukce - posílání bitů z jednoho místa na jiné místo Řídící instrukce - instrukce ovlivňující tok programu Aritmeticko-matematické instrukce - instrukce pro provádění logických a matematických úloh

1 min · 56 slov · Miroslav Thompson

Přesunové instrukce

Přesunové instrukce jsou jakékoliv instrukce pro posílání bitů z jednoho místa do jiného místa. Zjednodušeně jde o tyto přesuny: Z RAM paměti do jiného místa v RAM paměti Z RAM paměti do I/O komponenty Z I/O komponenty do RAM paměti Z I/O komponenty do jiné I/O komponenty ⚠️ Při interakcích se vstupními/výstupními (I/O) komponentami procesor instruuje čipset základní desky, který přesuny dat provádí místo něj. Procesor je v počítači téměř vždy nejrychlejší komponenta a nemůže si dovolit čekat na ostatní mnohem pomalejší zařízení. ...

1 min · 90 slov · Miroslav Thompson

Aritmeticko-logické instrukce

Dalšími typy instrukcí jsou aritmeticko-logické instrukce. Aritmetické funkce Mezi aritmetické (matematické) instrukce patří například: sčítání (viz. Sčítačka) odčítání násobení dělení Tyto instrukce provádějí operace nad dvojkovou soustavou. Z kapitoly o celých číslech už víte, že čísla ve dvojkové soustavě lze normálně převést do desítkové soustavy. Matematické operace ve dvojkové soustavě dávají stejný výsledek, jako v desítkové soustavě. 510 + 710 = 1210 je totéž jako 1012 + 1112 = 11002 Moderní procesory umí stovky dalších matematických funkcí (na dvojkové soustavě) např. pro práci s desetinnými čísly, s vektory a podobně. ...

2 min · 274 slov · Miroslav Thompson

Řídící instrukce: JUMP

Řídící instrukce je schopna změnit tok instrukcí. Nejznámější a nejpoužívanější řídící instrukcí je instrukce zvaná JUMP která přeskočí na tok instrukcí určený adresou této instrukce. Podívejte se na obrázek níže. Odhadnete, kdy program spuštěný na obrázku níže skončí? JUMP instrukce Odpověď: Tento program sám od sebe neskončí a točí se v nekonečné smyčce. Procesor čte instrukce v tomto pořadí: - Instrukce A - Instrukce B - Instrukce C - JUMP 2 - Instrukce B - Instrukce C - JUMP 2 - Instrukce B - Instrukce C - JUMP 2 - ... ⚠️ POZOR!: Parametrem JUMP je adresa v paměti. JUMP tak může skočit v RAM paměti úplně kamkoliv - dopředu i dozadu ale klidně i do úplně jiného seznamu instrukcí, který se v RAM paměti může také nacházet (pokud jsme si ho tam připravili). ...

1 min · 136 slov · Miroslav Thompson

Řídící instrukce: NOP

Instrukce NOP nedělá nic - k tomu je určena. Pro toto “nic” vyplýtvá nějaké nižší množství cyklů. Pro běžného ajťáka je důležité vědět, že instrukce NOP existuje napříč všemi běžnými instrukčními sadami. V tomto návodu se k této speciální instrukci nejspíš jednou nebo dvakrát ještě vrátím, tak ať vás nepřekvapí.

1 min · 50 slov · Miroslav Thompson

Funkce / podrutina

Díky JUMP instrukci je možné definovat funkce což jsou opakovaně použitelné bloky instrukcí. Na úrovni strojového kódu se funkcím říká anglicky subroutine česky podrutiny. Funkce je jednoduše nějaká část instrukcí, která má začátek a konec a kterou lze volat opakovaně. Po zavolání funkce se vrátíte zpět do původního toku instrukcí. Funkce / podrutina Podrutina s JUMP instrukcí Podívejte se na obrázek níže. Funkce je umístěná mezi adresami [0x01] až [0x0F]. ...

1 min · 191 slov · Miroslav Thompson