ldi

Z Wikipedie, otevřené encyklopedie

ldi nebo LDI je instrukce procesoru Z80 a procesorů AVR.

Instrukce procesoru Z80[editovat | editovat zdroj]

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:

  1. přenesení hodnoty bytu z adresy, na kterou ukazuje registr HL, na adresu, na kterou ukazuje registr DE,
  2. zvýšení hodnoty v registrech HL a DE o jedničku,
  3. snížení hodnoty v registru BC o jedničku,
  4. 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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

  1. a b c d e VILÍM, Tomáš. Assembler a ZX Spectrum, 1. díl. Ústí nad Labem: Proxima - Software, 1992. 
  2. 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
  3. DURDA, Frank. 8080/Z80 Instruction Set [online]. [cit. 2017-09-17]. Dostupné v archivu pořízeném dne 2016-02-11. ((anglicky)) 
  4. 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[editovat | editovat zdroj]

  • Príručka strojového kódu pre ZX Spectrum. [s.l.]: Ultrasoft, 1993. 

Související články[editovat | editovat zdroj]