Přejít na hlavní obsah

Příkazy procesoru 8086: základní pokyny a příklady použití

Procesor 8086 je jedním z prvních procesorů vyvinutých společností Intel v roce 1978. Později se stal standardem pro mnoho počítačů a operačních systémů a stále se používá v mnoha systémech, zejména ve vestavěných systémech.

Příkazy procesoru 8086 jsou základní sadou instrukcí, pomocí kterých lze řídit chod procesoru a provádět různé operace. Tyto příkazy zahrnují aritmetické a logické operace, operace paměti, přechody a další.

Příkladem instrukce může být příkaz MOV, který se používá k přesunu dat z jednoho registru do druhého nebo z paměti do registru. Dalším příkladem je příkaz ADD, který slouží k provedení sčítání čísel a uložení výsledku do registru. Příkaz CMP se používá k porovnání dvou hodnot a příkaz JMP k provedení bezpodmínečného přechodu na konkrétní adresu v paměti.

Procesor 8086 poskytuje rozsáhlou sadu příkazů, které umožňují programátorům implementovat různé funkce a operace. Zvláštností těchto týmů je jejich efektivita a bohatý výběr možností. Pochopení základních příkazů procesoru 8086 je důležitou dovedností pro programátory pracující s hardwarem a nízkoúrovňovým softwarem.

Základní instrukce procesoru 8086

Procesor 8086 má širokou sadu instrukcí, které umožňují různé operace. Některé z hlavních instrukcí procesoru 8086 zahrnují:

MOV: Pokyn MOV používá se k přesunu dat z jednoho registru do druhého nebo mezi registry a pamětí. Například, MOV AX, BX přesouvá obsah registru BX do registru AX.

ADD: Pokyn ADD používá se k provedení sčítání dvou operandů. Například, ADD BX, AX skládá obsah registru AX s obsahem registru BX a ukládá výsledek do registru BX.

SUB: Pokyn SUB používá se k odečtení dvou operandů. Například, SUB AX, BX odečte obsah registru BX z obsahu registru AX a uloží výsledek do registru AX.

INC: Pokyn INC používá se ke zvýšení hodnoty operandu na jednotku. Například, INC BX zvyšuje obsah registru BX na jednotku.

DEC: Pokyn DEC používá se ke snížení hodnoty operandu na jednotku. Například, DEC AX snižuje obsah registru AX na jednotku.

To jsou jen některé z hlavních instrukcí procesoru 8086. Umožňují různé operace, jako je pohyb dat, provádění aritmetických operací, správa softwarového toku a další. Pochopení a použití těchto pokynů je důležitým úkolem pro vývoj účinných programů pro procesor 8086.

Aritmetické instrukce a operace s daty

Procesor 8086 poskytuje širokou sadu aritmetických instrukcí pro provádění matematických operací nad daty. Tyto pokyny vám umožňují sčítat, odčítat, násobit a dělit čísla a provádět operace porovnávání.

Základní aritmetické instrukce procesoru 8086:

  • ADD - sčítání dvou operandů a udržení výsledku v jednom z nich;
  • SUB - odečtení jednoho operandu od druhého a udržení výsledku v jednom z nich;
  • MUL - násobení dvou operandů a uložení výsledku v registru AX nebo DX:AX;
  • IMUL - násobení dvou operandů se znaménkem a uložení výsledku v registru AX nebo DX:AX;
  • DIV - rozdělení operandu na dělitel a uložení soukromého v registru AL a zůstatku v registru AH;
  • IDIV - rozdělení operandu se znaménkem na dělitel a uložení soukromého v registru AL a zůstatku v registru AH.

Všechny aritmetické pokyny mají různé formáty operandů, které mohou být registrační, paměťové nebo bezesné. Například instrukce "ADD AX, 5" sčítá hodnotu registru AX s 5 a ukládá výsledek do registru AX.

Kromě aritmetických instrukcí poskytuje procesor 8086 také srovnávací instrukce, které vám umožňují porovnávat hodnoty dvou operandů. Například instrukce "CMP AX, BX" porovnává hodnoty registrů AX a BX a nastavuje příslušné stavové vlajky.

Aritmetické a srovnávací instrukce procesoru 8086 hrají důležitou roli v programování na assembleru a umožňují různé matematické operace a kontroly podmínek během provádění programu.

Logické instrukce a operace s daty

Procesor 8086 má sadu logických instrukcí určených k provádění datových operací. Tyto pokyny se používají ke zpracování bitových operací, porovnávání hodnot, provádění logických operací atd.

Jednou z nejjednodušších logických operací je operace "A" (AND). Tato operace se provádí bitem nad příslušnými bity dvou operandů a výsledkem je hodnota, ve které jsou pouze ty bity, které se rovnají 1 v obou operandech, také 1. Pokud máme například dvě operandy: A = 11011011 a B = 10100101 výsledkem operace A And B bude 10000001.

Další důležitou logickou operací je operace "nebo" (OR). Při provádění operace "nebo" bude každý bit výsledku 1, pokud je alespoň jeden z příslušných bitů obou operandů 1. Pokud máme například dvě operandy: A = 11011011 a B = 10100101 výsledkem operace a nebo B bude 11111111.

Další důležitou logickou operací je operace vylučující nebo (XOR). Při provádění této operace bude každý bit výsledku roven 1, pokud je pouze jeden z příslušných bitů obou operandů roven 1. Pokud máme například dvě operandy: A = 11011011 a B = 10100101 výsledkem operace a XOR B bude 01111110.

Jednou z nejčastěji používaných logických instrukcí je instrukce "srovnání dvou operandů" (CMP). Tento pokyn porovnává dvě operandy a nastavuje příslušné stavové vlajky, v závislosti na výsledku srovnání. K provedení této instrukce lze použít pokyny "skok, pokud je podmínka splněna" (JMP), které umožňují změnit průběh provádění programu v závislosti na stavu vlajek.

V procesoru jsou k dispozici také pokyny pro posun a otáčení dat. Instrukce "posun doleva" (SHL) provádí posun operandu doleva na uvedený počet výbojů, přičemž uvolněné pozice jsou naplněny nulami. Instrukce posun doprava (SHR) provede posun operandu doprava. Uvolněné pozice jsou přitom naplněny nulami. Instrukce "rotace doleva přes CF" (ROL) provede otočení operandu doleva na uvedený počet výbojů, přičemž starší bity jsou přeneseny do mladšího bitu a bit CF (Carry Flag) je naplněn hodnotou, která byla ve vyšším bitu před provedením rotace. Podobně instrukce "rotace doprava přes CF" (ROR) provádí otočení operandu doprava. Procesor 8086 má také další pokyny pro provádění posunu a rotace dat, které mohou přijímat různé argumenty.

Všechny tyto logické instrukce a datové operace jsou důležitými součástmi funkčnosti procesoru 8086. Umožňují provádět různé operace dat a používat je v programu k řešení různých úkolů.

Pokyny pro přechod a zpracování podmínek

Procesor 8086 má sadu instrukcí, které umožňují programátorovi změnit pořadí provádění programu v závislosti na konkrétních podmínkách. Toho je dosaženo pomocí pokynů pro přechod a pokynů pro zpracování podmínek.

Jedním z nejpoužívanějších pokynů pro přechod je návod JMP (Jump), který vám umožní přejít na jiné místo v programu. Následující pokyny se například přesunou na štítek s názvem "label":

Pokyn JMP lze jej použít k vytváření cyklů, podmíněných operátorů a dalších konstrukcí.

Pokyny pro zpracování podmínek umožňují programu provádět různé operace v závislosti na výsledku srovnání nebo ověření podmínky. Níže jsou uvedeny některé z nejpoužívanějších pokynů pro zpracování podmínek:

  • JZ (Jump if Zero) - přejděte na uvedenou značku, pokud je hodnota nulová.
  • JNZ (Jump if Not Zero) - přejděte na uvedenou značku, pokud hodnota není nulová.
  • JE (Jump if Equal) - přejděte na uvedený štítek, pokud jsou hodnoty stejné.
  • JNE (Jump if Not Equal) - přejděte na uvedený štítek, pokud hodnoty nejsou stejné.
  • JA (Jump if Above) - přejděte na uvedenou značku, pokud je hodnota větší.
  • JAE (Jump if Above or Equal) - přejděte na uvedenou značku, pokud je hodnota větší nebo rovna.
  • JB (Jump if Below) - přejděte na uvedenou značku, pokud je hodnota menší.
  • JBE (Jump if Below or Equal) - přejděte na uvedený štítek, pokud je hodnota menší nebo rovna.
  • JS (Jump if Sign) - přejděte na uvedenou značku, pokud je výsledek záporné číslo.
  • JNS (Jump if Not Sign) - přejděte na uvedenou značku, pokud výsledek není záporné číslo.

Tyto pokyny umožňují programátorovi řídit sekvenci provádění programu na základě podmínek a výsledku určitých operací.