ldi
ldi nebo LDI je instrukce procesoru Z80 a procesorů AVR.
Instrukce procesoru Z80
Instrukce patří do skupiny instrukcí pro přenos bloků.[1] Instrukce přenese jeden byte z adresy, na kterou ukazuje registr HL, na adresu, na kterou ukazuje registr DE.
Kód instrukce | ||||||||
---|---|---|---|---|---|---|---|---|
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
1. byte | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
2. byte | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
Délka instrukce je dva byty, kód instrukce v šestnáctkové soustavě je EDA0, první byte je prefix ED.
Přenos bytu probíhá v následujících krocích:
- přenesení hodnoty bytu z adresy, na kterou ukazuje registr HL, na adresu, na kterou ukazuje registr DE,
- zvýšení hodnoty v registrech HL a DE o jedničku,
- snížení hodnoty v registru BC o jedničku,
- otestování hodnoty v registru BC, pokud je v registru nula, vynulování příznaku P/V, jinak nastavení příznaku P/V.[1][2]
Instrukce neovlivňuje příznak Carry.[1] Instrukce ke svému vykonání potřebuje 4 M-cykly a doba jejího vykonání trvá 16 T-cyklů.[2] V instrukční sadě procesoru Intel 8080 instrukce odpovídající instrukci ldi není.[3]
Instrukce je vhodná v případě, kdy je přenášen paměťový blok mezi dvěma adresami, kdy je paměťový blok přenášen od svého začátku, a po přenesení každého bytu je potřebné provést nějakou akci.[1] Je-li paměťový blok přenášen od svého konce, je vhodné použít instrukci ldd.[1]
Instrukce procesorů AVR
U procesorů AVR instrukce LDI slouží k uložení konstanty, která je součástí instrukčního kódu instrukce, do registru.[4] Délka instrukce je 16 bitů. Instrukce LDI nemá svůj ekvivalent mezi instrukcemi ST.[4]
Reference
- ↑ a b c d e VILÍM, Tomáš. Assembler a ZX Spectrum, 1. díl. Ústí nad Labem: Proxima - Software, 1992.
- ↑ a b ZAKS, Rodnay. Programming the Z80. [s.l.]: Sybex, 1981. 624 s. (Third edition). Dostupné online. ISBN 0-89588-094-6. S. 352–353. ((anglicky)) Poznámka: Odkazovaný soubor má desky z jiného vydání knihy, které navíc vyšlo i pod jiným názvem a s jiným ISBN
- ↑ DURDA, Frank. 8080/Z80 Instruction Set [online]. [cit. 2017-09-17]. Dostupné v archivu pořízeném dne 2016-02-11. ((anglicky))
- ↑ a b TIŠNOVSKÝ, Pavel. Instrukční sada osmibitových mikrořadičů AVR. Root.cz [online]. 2011-03-08 [cit. 2017-09-17]. Dostupné online. ISSN 1212-8309. ((česky))
Literatura
- Príručka strojového kódu pre ZX Spectrum. [s.l.]: Ultrasoft, 1993.
Související články
- ld
- ldd
- ldir
- cpi
- LDS