Insider: Vnitřní struktura procesoru Intel a Assembler

Registry slouží k uchování aktuálně zpracovávaných dat. V případě 80286 to jsou 16bitové registry pro obecné použití AX (Accumulator), CX (Counter), DX (Data), BX (Base), které lze rozdělit na 8mi bitové části (např. AH je horní a AL je dolní polovina registru AX). Indexové registry SP (Stack Pointer), BP (Base Pointer), SI (Source Index), DI (Destination Index), segmentové registry ES,CS,SS,DS, registr příznaků FLAGS, programový čítač IP a registry spjaté s chráněným režimem. Procesor 386 rozšířil registry pro obecné použití, indexové registry a FLAGS na 32 bitů. 32bitovou verzi registru AX značíme EAX. Přibyly nové segmentové registry FS a GS.
Dekodér čte instrukce z paměti, získává (z registru nebo paměti) jejich operandy a předává je ALU (aritmeticko-logická jednotka), která provádí jednotlivé příkazy a ukládá jejich výsledek do registrů či paměti a modifikuje příznaky procesoru. FPU je výpočetní jednotka specializovaná na zpracování čísel s pohyblivou řádovou čárkou.
Procesor rozumí pouze strojovému jazyku, ten je však pro člověka jen velmi obtížně čitelný. Lze se o tom snadno přesvědčit třeba otevřením souboru s příponou .com nebo .exe hexadecimálním editorem. Kompilátory programovacích jazyků vyšší úrovně slouží vlastně jako tlumočníci do strojového jazyka a zjednodušeně by se dalo říct, že čím vyšší úroveň jazyka tím více (v průměru) je potřeba instrukcí strojového jazyka k zapsání jedné jeho instrukce. Assembler, někdy je také nazývány jazykem symbolických adres, je jazykem nejnižší úrovně a příkazy v něm zapsané lze přímo převést na strojový kód v poměru 1:1. Příkazy Assembleru dělíme do několika skupin
- Přesuny dat a vkládáni hodnot (MOV, IN, OUT...)
- Aritmetické a logické operace (INC, ADD, MUL, AND...)
- Posuvy a rotace (ROR, SHL,RCR...)
- Operace pro práci s řetězci (MOVSB, STOSB...)
- Skoky přerušení a návraty (JMP, INT, RET...)
Poznámka: Dále v textu budou všechny příklady v Assembleru dostatečně komentovány. Tento článek si v žádném případě neklade za cíl přesné vysvětlení struktury procesoru a už vůbec ne Assembleru. Je zde uveden jen přehled nejdůležitějších prvků a instrukcí důležitých pro další výklad. |