Otevřít hlavní menu

Změny

Přidáno 1 870 bajtů ,  před 3 lety
Popis strojových instrukcí
W, Z – jsou nepřístupné programátorovi, využívají se pro vnitřní potřebu [[mikroprocesor|CPU]] při vykonávání instrukcí.
 
== Strojové instrukce ==
== Tabulka strojových instrukcí ==
 
Slovo mikroprocesoru Intel 8080 má 8 [[bit]]ů. Mikroprocesor však obsahuje i instrukce pro práci se 16bitovými daty, které pracují s dvojicemi registrů B+C, D+E, H+L, SP, případně A+příznaky. Instrukční sada se vyznačuje velmi nízkou [[Ortogonální instrukční sada|ortogonalitou]]:
 
* Většinu unárních operací lze provádět pouze s akumulátorem (registr A); u binárních operací je jeden z operandů vždy v registru A a výsledek se ukládá také do registru A.
* Se 16bitovými registry lze provádět pouze operace načtení konstanty (LXI), zvětšení o 1 (inkrement, INX), zmenšení o jedničku (dekrement, DCX), sčítání DAD (jeden operand a výsledek je vždy v HL, druhý operand je BC, DE, HL nebo SP), uložení na zásobník (PUSH) a vyzvednutí ze zásobníku (POP).
* Intel 8080 používá pouze přímé adresování; nejbohatší využití má použití adresy uložené ve dvojici registrů HL; v instrukcích se takový operand označuje jako pseudoregistr M.
* Obsah registru A lze načíst (kromě adresy uložené v HL) z adresy zadané přímou adresou nebo z adresy uložené ve dvojici registrů BC nebo DE; stejné možnosti jsou i pro zapsání obsahu registru A do paměti.
* Intel 8080 má instrukce pro přehození obsahu 16bitových registrů DE a HL, pro přehození 16-bitového slova na vrcholu zásobníku s HL a instrukce pro naplnění registrů SP nebo PC z HL (naplnění PC z HL odpovídá skoku na adresu uvedenou v HL).
 
Délka instrukcí závisí na přítomnosti konstant v instrukci. Instrukce neobsahující konstantu jsou jednobytové, instrukce obsahující osmibitovou konstantu (osmibitovou přímou hodnotu nebo číslo [[Vstup/výstup|V/V portu]]) jsou dvoubytové, instrukce obsahující 16bitovou konstantu (adresu, případně konstantu pro načtení do dvojice registrů) jsou tříbytové.
 
{| {{chset-tableformat}}