ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt
OCR z časopisu Sdělovací technika 9/1985 trana 326
NEZNÁMÉ INSTRUKCE MIKROPROCESORU 8085
Přestože se u nás mikroprocesor 8085 nevyrábí, je používán a je proto vhodné se seznámit se všemi možnostmi, které nabízí. V [1] se uvádějí tzv. nové instrukce, které pokrývají oblast operačních kódů nevyužitou v 8080. V žádném dostupném katalogu Intel nejsou popsány, zřejmě však při vývoji mikroprocesoru 8085 nevyšly náhodou, ale byly navrženy, aby vhodně doplnily stávající operační kód 8080. Navíc je u 8085 doplněn stavový registr PSW o další indikační bity viz obr. 1. Z 256
Fb7 Fb6 Fb5 Fb4 Fb3 Fb2 Fb1 Fb0 S Z X5 AC 0 P V CY | | | +------ přeběh +---------------------- přeplnění DCX,INX |
Obr. 1. Stavový registr PSW 8085 s novými bity X5 a V |
možných kombinací instrukčního kódu mikroprocesoru je 12 kombinací neobsazených. Dvě z nich využívá 8085 pro instrukce RIM a SIM. Zbývajících deset jsou „nové" instrukce. Mnemotechnické zkratky vycházejí ze zvyklostí tvoření názvů instrukcí Intel a jsou převzaty z [1].
Popis jednotlivých instrukcí
DSUB (08H) 10 taktů
DSUB (double substraction) je 16-bitové odečítání. Instrukce je komplementární s DAD B a pracuje obdobně:
registrovaný pár BC odečte od registrového páru HL a výsledek uloží do HL. Podle výsledku nastavuje bity
PSW: CY, S, X5, AC, Z, V, P.
ARHL (10H) 7 taktů
ARHL (aritmetic shift right HL) je aritmetická rotace registrového páru HL doprava o jeden bit. Nej nižší bit
L se přesouvá do CY. Instrukce nastavuje jen CY.
RDEL (18H) 10 taktů
RDEL (rotate DE left) je rotace registrového páru DE doleva přes CY. Je analogická instrukci RAL. Nastavuje
CY a V.
LDHI D8 (28H) 10 taktů
LDHI (load DE by HL indirect) je nepřímé naplnění registrového páru DE hodnotou HL + 8-bitovou hodnotou
operandu instrukce. Tím je vlastně umožněno indexové adresování v rozmezí stránky 256 byte. Instrukce
neovlivňuje žádný bit PSW.
LDSI D8 (38H) 10 taktů
LDSI (load DE by SP indirect) plní registrový pár DE hodnotou SP + 8-bitovou hodnotou operandu instrukce.
Pomocí této instrukce lze usnadnit manipulace v zásobníku. Opět neovlivňuje žádný bit PSW.
RSTV (0CBH) 6/12 taktů
RSTV (restart by V) je další, již 9. instrukce restartu, dokonce podmíněná. Předá řízení na adresu 40H, je-li
nastaven bit V (pak trvá 12 taktů), jinak funguje jako NOP (6 taktů). Žádné bity PSW nejsou vykonáním
instrukce ovlivněny.
SHLX (0D9H) 10 taktů
SHLX (store HL by DE) uloží registrový pár HL nepřímo podle hodnoty registrového páru DE. Je to analogie
instrukce STAX D. Žádný bit PSW není ovlivněn.
JNX5 adresa (0DDH) 7/10 taktů
JNX5 (jump non X5) je podmíněný skok na „adresu", není-li nastaven bit X5 stavového registru PSW procesoru,
jinak se pokračuje následující instrukcí. Bit X5 je nastavován instrukcemi INX a DCX, které v 8080
neovlivňují PSW. Tím lze testovat 16-bitové vyčerpání délky. Instrukce neovlivňuje PSW.
LHLX (0EDH) 10 taktů
LHLX (load HL by DE) naplní registrový pár HL nepřímo podle hodnoty DE. Je inverzí k SHLX a analogií instrukce
LDAX D. Neovlivňuje žádný bit PSW.
JX5 adresa (0FDH) 7/10 taktů
JX5 (jump on X5) je podmíněný skok na „adresu", je-li nastaven X5. Je to inverzní funkce k JNX5. Žádný bit
PSW, není ovlivněn.
Další změna v instrukcích 8085 se týká INX a DCX. Pro instrukci INX platí, že při přechodu z hodnoty FFFFH na 0000 nastaví X5 do stavu log. 1, při ostatních hodnotách je stav log. 0. Pro instrukci DCX se X5 nastaví do stavu log. 1 při přechodu z 0000 na FFFFH.
Protože asemblery nepočítají s uvedenými mnemotechnickými kódy, lze ji definovat jako makra s příslušným názvem, např.:
DSUB MACRO DB 8 ENDM
Instrukce zlepší funkčnost procesoru. V [1] je uveden příklad 16-bitového násobení s instrukcí RDEL. Podprogram trvá typicky 278 µs.
Přiklad násobení
;MUL16 — násobení dvou 16-bitových kladných čísel ;BC X DE do D, E, H, L (32 bitů) MUL16: LXI H,0 MVI A,17 ;počet bitů MUL16A: DCR A ;hotovo? RZ ;ano DAD H ;výsledek rotovat RDEL ;nová instrukce JNC MUL16A ;bez přičtení DAD B ;přičtení JNC MUL16A ;není přenos INX D ;přenos z HL do DE JMP MUL16A ;další bit
Z příkladu je zřejmé, že násobící algoritmus se dost zkrátí.
LITERATURA
[1] Dehnhardt, W.: Unbekannte 8085-Instruktionen; Elektronik č. 15/1978
ÚVOD | Novinky | 8 Bitů | Příslušenství | Drobnosti | TTL | Kontakt