<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="https://pmd85.borik.net/w/skins/common/feed.css?240204"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Blog:Programovanie v assembleri i8080 pre PMD 85 (2) - História úprav</title>
		<link>https://pmd85.borik.net/wiki/Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_%282%29&amp;action=history</link>
		<description>História úprav pre túto stránku na wiki</description>
		<language>sk</language>
		<generator>MediaWiki 1.11.1</generator>
		<lastBuildDate>Sat, 25 Apr 2026 15:22:22 GMT</lastBuildDate>
		<item>
			<title>Rombor: Nový Blogový článok</title>
			<link>https://pmd85.borik.net/wiki/Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_%282%29&amp;diff=1872&amp;oldid=prev</link>
			<description>&lt;p&gt;Nový Blogový článok&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{VelkyNadpis|Programovanie v assembleri i8080 pre PMD 85 (2)}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Inštrukčná sada mikroprocesora i8080 ==&lt;br /&gt;
Mikroprocesor i8080 má celkom 78 rôznych &amp;quot;typov&amp;quot; inštrukcií, ale celkovo ich je 244 vo všetkých obmenách operandov. Delia sa do niekoľkých kategórií podľa svojej funkcie.&lt;br /&gt;
&lt;br /&gt;
Ako už bolo spomenuté skôr, inštrukcie mikroprocesora i8080 môžu byť dlhé 1, 2 alebo 3 byty a môžu mať 0 až 2 operandy. Počet bytov ale nemusí priamo súvisieť s počtom operandov. Operandom môže byť:&lt;br /&gt;
* žiadny - inštrukcia pracuje s nejakým implicitným argumentom, ktorý vyplýva z mnemoniky inštrukcie alebo inštrukcia vykonáva nejakú špecifickú operáciu&lt;br /&gt;
* 8 bitový register - {{Kbd|A}}, {{Kbd|B}}, {{Kbd|C}}, {{Kbd|D}}, {{Kbd|E}}, {{Kbd|H}}, {{Kbd|L}}&lt;br /&gt;
* 16 bitový register (registrový pár) - {{Kbd|B}}, {{Kbd|D}}, {{Kbd|H}}, {{Kbd|SP}}, {{Kbd|PSW}}&lt;br /&gt;
* 8 bitová priama hodnota - {{Kbd|N}} - celé číslo 0 až 255 (00h až 0FFh)&lt;br /&gt;
* 16 bitová priama hodnota - {{Kbd|NN}} - celé číslo 0 až 65535 (0000h až 0FFFFh) - v pamäti je uložený najprv nižší byte a potom vyšší byte&lt;br /&gt;
* priama adresa - celé číslo 0 až 65535 (0000h až 0FFFFh)&lt;br /&gt;
* nepriama adresa - registrové páry {{Kbd|B}}, {{Kbd|D}} alebo &amp;quot;pseudo register&amp;quot; {{Kbd|M}} (adresa je v registrovom páre {{Kbd|H}}), &lt;br /&gt;
&lt;br /&gt;
V nasledujúcom popise bude pre vysvetlenie funkcie inštrukcií použitá nasledujúca symbolika:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;r, r1, r2&amp;#039;&amp;#039;&amp;#039; - 8 bitový register {{Kbd|A}}, {{Kbd|B}}, {{Kbd|C}}, {{Kbd|D}}, {{Kbd|E}}, {{Kbd|H}}, {{Kbd|L}}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; - &amp;quot;pseudo-register&amp;quot; {{Kbd|M}}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;rp&amp;#039;&amp;#039;&amp;#039; - registrový pár {{Kbd|B}}, {{Kbd|D}}, {{Kbd|H}}, {{Kbd|SP}} alebo {{Kbd|PSW}}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; - priama 8 bitová hodnota&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;NN&amp;#039;&amp;#039;&amp;#039; - priama 16 bitová hodnota alebo adresa pamäte&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039; - 8 bitová adresa vstupno/výstupného portu&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;(X)&amp;#039;&amp;#039;&amp;#039; - hodnota na adrese {{Kbd|X}}, kde {{Kbd|X}} môže byť priama adresa {{Kbd|NN}}, 16 bitový register {{Kbd|HL}}, {{Kbd|DE}}, {{Kbd|BC}}, {{Kbd|SP}} alebo port {{Kbd|p}}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;--&amp;#039;&amp;#039;&amp;#039; - presun, resp. skopírovanie hodnoty z pravého operandu do ľavého&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;--&amp;gt;&amp;#039;&amp;#039;&amp;#039; - výmena hodnôt ľavého a pravého operandu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky inštrukcie si na jednom mieste môžete pozrieť [https://pmd85.borik.net/instrset/instuction-set.html v prehľadnej tabuľke], ku ktorej sa budete neskôr pravdepodobne vracať. V tabuľke je ku každej inštrukcii uvedený jej operačný kód, dĺžka v bytoch, doba trvania v taktoch procesora a informácia o ovplyvňovaných príznakoch. Stačí sa postaviť myšou nad príslušnú inštrukciu.&lt;br /&gt;
&lt;br /&gt;
Trvanie inštrukcií je uvádzané v Taktoch, alebo T-cykloch mikroprocesora. Mikroprocesor i8080 je v PMD 85 taktovaný frekvenciou 2,048 MHz (PMD 85-1/2/2A), resp. 2 MHz (PMD 85-3), to znamená, že jeden takt mikroprocesora trvá 1/2,048 MHz = 488,281 ns (resp. 1/2 MHz = 500 ns). Na PMD 85 ale treba ešte počítať s brzdením mikroprocesora Videoprocesorom, čo znamená, že ak potrebuje k pamäti pristúpiť mikroprocesor a aj Videoprocesor, tak má Videoprocesor prednosť a mikroprocesor je &amp;quot;pozastavený&amp;quot; na jeden takt. Mikroprocesor je teda brzdený zhruba o 8%.&lt;br /&gt;
&lt;br /&gt;
=== Inštrukcie pre presun dát ===&lt;br /&gt;
Je to najpočetnejšia skupina inštrukcií, ktorá slúži na prenos údajov medzi dvoma registrami, registrami a pamäťou a napĺňanie registra alebo pamäte priamou hodnotou.&lt;br /&gt;
&lt;br /&gt;
==== MOV r1,r2 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;lt;small&amp;gt;&amp;#039;&amp;#039;(Move Register)&amp;#039;&amp;#039;&amp;lt;/small&amp;gt; ====&lt;br /&gt;
&amp;#039;&amp;#039;Operácia:&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;r1 &amp;lt;-- r2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Príznaky:&amp;#039;&amp;#039; žiadne&lt;br /&gt;
&lt;br /&gt;
Inštrukcia {{Kbd|MOV}} skopíruje hodnotu z 8 bitového registra {{Kbd|r2}} do 8 bitového registra {{Kbd|r1}}. Prakticky je možné kopírovať hodnotu medzi ktoroukoľvek dvojicou 8 bitových registrov. Verzie inštrukcií, kde je zdrojový aj cieľový register rovnaký, samozrejme, neurobia nič, ale ich &amp;quot;nelogická&amp;quot; existencia je daná hardvérovo (viď. tabuľka inštrukcií a ich usporiadanie).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | &amp;#039;&amp;#039;Presun hodnoty z jedného 8 bitového registra do druhého&amp;#039;&amp;#039; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (1 byte / 5T)&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mov b,b}}&lt;br /&gt;
| {{CodeBig|mov c,b}}&lt;br /&gt;
| {{CodeBig|mov d,b}}&lt;br /&gt;
| {{CodeBig|mov e,b}}&lt;br /&gt;
| {{CodeBig|mov h,b}}&lt;br /&gt;
| {{CodeBig|mov l,b}}&lt;br /&gt;
| {{CodeBig|mov a,b}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mov b,c}}&lt;br /&gt;
| {{CodeBig|mov c,c}}&lt;br /&gt;
| {{CodeBig|mov d,c}}&lt;br /&gt;
| {{CodeBig|mov e,c}}&lt;br /&gt;
| {{CodeBig|mov h,c}}&lt;br /&gt;
| {{CodeBig|mov l,c}}&lt;br /&gt;
| {{CodeBig|mov a,c}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mov b,d}}&lt;br /&gt;
| {{CodeBig|mov c,d}}&lt;br /&gt;
| {{CodeBig|mov d,d}}&lt;br /&gt;
| {{CodeBig|mov e,d}}&lt;br /&gt;
| {{CodeBig|mov h,d}}&lt;br /&gt;
| {{CodeBig|mov l,d}}&lt;br /&gt;
| {{CodeBig|mov a,d}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mov b,e}}&lt;br /&gt;
| {{CodeBig|mov c,e}}&lt;br /&gt;
| {{CodeBig|mov d,e}}&lt;br /&gt;
| {{CodeBig|mov e,e}}&lt;br /&gt;
| {{CodeBig|mov h,e}}&lt;br /&gt;
| {{CodeBig|mov l,e}}&lt;br /&gt;
| {{CodeBig|mov a,e}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mov b,h}}&lt;br /&gt;
| {{CodeBig|mov c,h}}&lt;br /&gt;
| {{CodeBig|mov d,h}}&lt;br /&gt;
| {{CodeBig|mov e,h}}&lt;br /&gt;
| {{CodeBig|mov h,h}}&lt;br /&gt;
| {{CodeBig|mov l,h}}&lt;br /&gt;
| {{CodeBig|mov a,h}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mov b,l}}&lt;br /&gt;
| {{CodeBig|mov c,l}}&lt;br /&gt;
| {{CodeBig|mov d,l}}&lt;br /&gt;
| {{CodeBig|mov e,l}}&lt;br /&gt;
| {{CodeBig|mov h,l}}&lt;br /&gt;
| {{CodeBig|mov l,l}}&lt;br /&gt;
| {{CodeBig|mov a,l}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mov b,a}}&lt;br /&gt;
| {{CodeBig|mov c,a}}&lt;br /&gt;
| {{CodeBig|mov d,a}}&lt;br /&gt;
| {{CodeBig|mov e,a}}&lt;br /&gt;
| {{CodeBig|mov h,a}}&lt;br /&gt;
| {{CodeBig|mov l,a}}&lt;br /&gt;
| {{CodeBig|mov a,a}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== MOV r,m &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; MOV m,r &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;lt;small&amp;gt;&amp;#039;&amp;#039;(Move From/To Memory)&amp;#039;&amp;#039;&amp;lt;/small&amp;gt; ====&lt;br /&gt;
&amp;#039;&amp;#039;Operácia:&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;r &amp;lt;-- (HL)&amp;#039;&amp;#039;&amp;#039; resp. &amp;#039;&amp;#039;&amp;#039;(HL) &amp;lt;-- r&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Príznaky:&amp;#039;&amp;#039; žiadne&lt;br /&gt;
&lt;br /&gt;
Tieto verzie inštrukcie {{Kbd|MOV}} pracujú podobne ako predošlé, avšak presun je medzi pamäťou a registrom. Prvá verzia inštrukcie skopíruje hodnotu z pamäte, ktorej adresa je v registri {{Kbd|HL}} do 8 bitového registra {{Kbd|r}}. Druhá verzia funguje opačne, skopíruje hodnotu 8 bitového registra {{Kbd|r}} do pamäte, ktorej adresa je v registri {{Kbd|HL}}.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | &amp;#039;&amp;#039;Presun hodnoty medzi pamäťou a 8 bitovým registrom&amp;#039;&amp;#039; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (1 byte / 7T)&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mov b,m}}&lt;br /&gt;
| {{CodeBig|mov m,b}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mov c,m}}&lt;br /&gt;
| {{CodeBig|mov m,c}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mov d,m}}&lt;br /&gt;
| {{CodeBig|mov m,d}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mov e,m}}&lt;br /&gt;
| {{CodeBig|mov m,e}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mov h,m}}&lt;br /&gt;
| {{CodeBig|mov m,h}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mov l,m}}&lt;br /&gt;
| {{CodeBig|mov m,l}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mov a,m}}&lt;br /&gt;
| {{CodeBig|mov m,a}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== LDAX rp &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; STAX rp &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;lt;small&amp;gt;&amp;#039;&amp;#039;(Load/Store Accumulator Indirect)&amp;#039;&amp;#039;&amp;lt;/small&amp;gt; ====&lt;br /&gt;
&amp;#039;&amp;#039;Operácia:&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;A &amp;lt;-- (rp)&amp;#039;&amp;#039;&amp;#039; resp. &amp;#039;&amp;#039;&amp;#039;(rp) &amp;lt;-- A&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Príznaky:&amp;#039;&amp;#039; žiadne&lt;br /&gt;
&lt;br /&gt;
Inštrukcie {{Kbd|LDAX}} a {{Kbd|STAX}} pracujú rovnako ako predošlé presuny medzi pamäťou a registrom, avšak cieľovým/zdrojovým registrom je iba akumulátor {{Kbd|A}} a pamäťové miesto je adresované registrovými pármi {{Kbd|B}} resp. {{Kbd|D}}. Takže, inštrukcia {{Kbd|LDAX}} skopíruje hodnotu z pamäte, ktorej adresa je v registri {{Kbd|BC}} resp. {{Kbd|DE}} do akumulátora {{Kbd|A}} a inštrukcia {{Kbd|STAX}} skopíruje hodnotu akumulátora {{Kbd|A}} do pamäte, ktorej adresa je v registri {{Kbd|BC}} resp. {{Kbd|DE}}.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | &amp;#039;&amp;#039;Presun hodnoty akumulátora z/do pamäte nepriamo adresovanej registrovým párom&amp;#039;&amp;#039; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (1 byte / 7T)&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|ldax b}}&lt;br /&gt;
| {{CodeBig|stax b}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|ldax d}}&lt;br /&gt;
| {{CodeBig|stax d}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== LDA NN &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; STA NN &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;lt;small&amp;gt;&amp;#039;&amp;#039;(Load/Store Accumulator Direct)&amp;#039;&amp;#039;&amp;lt;/small&amp;gt; ====&lt;br /&gt;
&amp;#039;&amp;#039;Operácia:&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;A &amp;lt;-- (NN)&amp;#039;&amp;#039;&amp;#039; resp. &amp;#039;&amp;#039;&amp;#039;(NN) &amp;lt;-- A&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Príznaky:&amp;#039;&amp;#039; žiadne&lt;br /&gt;
&lt;br /&gt;
Inštrukcie {{Kbd|LDA}} a {{Kbd|STA}} slúžia pre načítanie resp. uloženie hodnoty akumulátora z/do pamäte určenou priamou adresou {{Kbd|NN}}.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | &amp;#039;&amp;#039;Presun hodnoty akumulátora z/do priamo adresovanej pamäte&amp;#039;&amp;#039; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (3 byty / 13T)&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|lda NN}}&lt;br /&gt;
| {{CodeBig|sta NN}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== MVI r,N &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;lt;small&amp;gt;&amp;#039;&amp;#039;(Move Immediate)&amp;#039;&amp;#039;&amp;lt;/small&amp;gt; ====&lt;br /&gt;
&amp;#039;&amp;#039;Operácia:&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;r &amp;lt;-- N&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Príznaky:&amp;#039;&amp;#039; žiadne&lt;br /&gt;
&lt;br /&gt;
Inštrukcia {{Kbd|MVI}} uloží (nastaví) do registra {{Kbd|r}} priamu 8 bitovú hodnotu {{Kbd|N}}.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | &amp;#039;&amp;#039;Uloženie priamej 8 bitovej hodnoty do 8 bitového registra&amp;#039;&amp;#039; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (2 byty / 7T)&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mvi b,N}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mvi c,N}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mvi d,N}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mvi e,N}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mvi h,N}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mvi l,N}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mvi a,N}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== MVI m,N &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;lt;small&amp;gt;&amp;#039;&amp;#039;(Move To Memory Immediate)&amp;#039;&amp;#039;&amp;lt;/small&amp;gt; ====&lt;br /&gt;
&amp;#039;&amp;#039;Operácia:&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;(HL) &amp;lt;-- N&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Príznaky:&amp;#039;&amp;#039; žiadne&lt;br /&gt;
&lt;br /&gt;
Inštrukcia uloží do pamäte adresovanej registrom {{Kbd|HL}} priamu 8 bitovú hodnotu {{Kbd|N}}.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | &amp;#039;&amp;#039;Uloženie priamej 8 bitovej hodnoty do pamäte&amp;#039;&amp;#039; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (2 byty / 10T)&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|mvi m,N}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== LXI rp,NN &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;lt;small&amp;gt;&amp;#039;&amp;#039;(Load Register Pair Immediate)&amp;#039;&amp;#039;&amp;lt;/small&amp;gt; ====&lt;br /&gt;
&amp;#039;&amp;#039;Operácia:&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;rp &amp;lt;-- NN&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Príznaky:&amp;#039;&amp;#039; žiadne&lt;br /&gt;
&lt;br /&gt;
Inštrukcia {{Kbd|LXI}} uloží (nastaví) do registrového páru {{Kbd|rp}} priamu 16 bitovú hodnotu {{Kbd|NN}}.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | &amp;#039;&amp;#039;Uloženie priamej 16 bitovej hodnoty do 16 bitového registra&amp;#039;&amp;#039; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (3 byty / 10T)&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|lxi b,NN}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|lxi d,NN}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|lxi h,NN}}&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|lxi sp,NN}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== LHLD NN &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; SHLD NN &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;lt;small&amp;gt;&amp;#039;&amp;#039;(Load/Store H and L Direct)&amp;#039;&amp;#039;&amp;lt;/small&amp;gt; ====&lt;br /&gt;
&amp;#039;&amp;#039;Operácia:&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;HL &amp;lt;-- (NN)&amp;#039;&amp;#039;&amp;#039; resp. &amp;#039;&amp;#039;&amp;#039;(NN) &amp;lt;-- HL&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Príznaky:&amp;#039;&amp;#039; žiadne&lt;br /&gt;
&lt;br /&gt;
Inštrukcia {{Kbd|LHLD}} slúži pre načítanie hodnoty registra {{Kbd|HL}} z pamäte určenou priamou adresou {{Kbd|NN}}. Do registra {{Kbd|L}} sa uloží hodnota z adresy {{Kbd|NN}} a do registra {{Kbd|H}} sa uloží hodnota z adresy {{Kbd|NN+1}}.&lt;br /&gt;
&lt;br /&gt;
Inštrukcia {{Kbd|SHLD}} slúži pre uloženie hodnoty registra {{Kbd|HL}} do pamäte určenou priamou adresou {{Kbd|NN}}. Hodnota registra {{Kbd|L}} sa uloží do pamäte na adresu {{Kbd|NN}} a hodnota registra {{Kbd|H}} sa uloží do pamäte na adresu {{Kbd|NN+1}}.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | &amp;#039;&amp;#039;Presun hodnoty registra HL z/do priamo adresovanej pamäte&amp;#039;&amp;#039; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (3 byty / 16T)&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|lhld NN}}&lt;br /&gt;
| {{CodeBig|shld NN}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==== XCHG &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;lt;small&amp;gt;&amp;#039;&amp;#039;(Exchange H and L with D and E)&amp;#039;&amp;#039;&amp;lt;/small&amp;gt; ====&lt;br /&gt;
&amp;#039;&amp;#039;Operácia:&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;HL &amp;lt;--&amp;gt; DE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Príznaky:&amp;#039;&amp;#039; žiadne&lt;br /&gt;
&lt;br /&gt;
Inštrukcia {{Kbd|XCHG}} vymení navzájom hodnoty registrov {{Kbd|HL}} a {{Kbd|DE}}. A teda register {{Kbd|H}} bude mať hodnotu registra {{Kbd|D}} a register {{Kbd|D}} bude mať hodnotu registra {{Kbd|H}}. Podobne, register {{Kbd|L}} bude mať hodnotu registra {{Kbd|E}} a register {{Kbd|E}} bude mať hodnotu registra {{Kbd|L}}.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | &amp;#039;&amp;#039;Výmena obsahov HL a DE&amp;#039;&amp;#039; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (1 byty / 4T)&lt;br /&gt;
|-&lt;br /&gt;
| {{CodeBig|xchg}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85|&amp;amp;lt;&amp;amp;lt; Úvod, Čo je assembler, Mikroprocesor i8080]]&lt;br /&gt;
&amp;lt;span style=&amp;quot;float: right;&amp;quot;&amp;gt;&lt;br /&gt;
[[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(3)|Inštrukčná sada mikroprocesora - Aritmetické inštrukcie &amp;amp;gt;&amp;amp;gt;]]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</description>
			<pubDate>Sat, 14 Aug 2021 15:14:36 GMT</pubDate>			<dc:creator>Rombor</dc:creator>			<comments>https://pmd85.borik.net/wiki/Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_%282%29</comments>		</item>
	</channel>
</rss>