Mikroprocesory - Skripta
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
Typické instrukce:
PUSH Adr
Stack[++Top]
mem[Adr]
Uložení obsahu paměťové buňky s adresou Adr do zásobníku (tj. na vrchol zásobníku). Před
uložením se zvýší hodnota ukazatele zásobníku Top o 1, aby se hodnota ukládala na první
volnou pozici v zásobníku.
POP Adr
mem[Adr]
Stack[Top--]
Vyzvednutí hodnoty, která se nachází na vrcholu zásobníku, a její uložení do paměťové buňky
s adresou A. Po vyzvednutí hodnoty se sníží hodnota ukazatele zásobníku Top o 1 neboť došlo
k odstranění hodnoty nacházející se na vrcholu zásobníku.
ADD, SUB, …
Stack[Top-1]
Stack[Top] OP Stack[Top-1]
Top--
Provede operaci OP (ADD, SUB, …) v ALU. První operand se nachází na vrcholu zásobníku,
druhý těsně pod vrcholem. Výsledek je uložen na místo druhého operandu, tedy těsně pod
vrchol. Následně je odstraněn první operand ze zásobníku pomocí dekrementace ukazatele
zásobníku (Top--).
Zásobníkově orientovaná ISA se v současné době téměř nepoužívá.
ISA orientovaná na registry pro všeobecné použití. Bývá označována jako GPR
(General Purpose Registers) ISA. Je v současné době nejrozšířenějším type ISA.
Postupem času byly u procesorů s akumulátorově orientovanou ISA přidávány pracovní
registry, aby se snížil počet přístupů do paměti. Tyto registry. Dalším krokem bylo
„zrovnoprávnění“ pracovních registrů s akumulátorem. Např. ISA procesorů I8086 byla
představena jako „ISA s více akumulátory“, ISA procesorů IA32 byla upravena na GPR.
Příklady instrukcí GPR ISA:
ADD A B
EA(A)
EA(A) + EA(B)
ADD A B C
EA(C)