<?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 - História úprav</title>
		<link>https://pmd85.borik.net/wiki/Blog:Programovanie_v_assembleri_i8080_pre_PMD_85&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 16:54:53 GMT</lastBuildDate>
		<item>
			<title>Rombor: Doplnený link na ďalší článok</title>
			<link>https://pmd85.borik.net/wiki/Blog:Programovanie_v_assembleri_i8080_pre_PMD_85&amp;diff=1885&amp;oldid=prev</link>
			<description>&lt;p&gt;Doplnený link na ďalší článok&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;tr&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;← Staršia verzia&lt;/td&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;Verzia zo dňa a času 12:09, 26. september 2021&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 9:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(8)|Vypisujeme znaky na obrazovku]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(8)|Vypisujeme znaky na obrazovku]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(9)|Píšeme texty]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(9)|Píšeme texty]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(10)|Vypisujeme čísla]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{VelkyNadpis|Programovanie v assembleri i8080 pre PMD 85 (1)}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{VelkyNadpis|Programovanie v assembleri i8080 pre PMD 85 (1)}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Sep 2021 12:09:09 GMT</pubDate>			<dc:creator>Rombor</dc:creator>			<comments>https://pmd85.borik.net/wiki/Blog:Programovanie_v_assembleri_i8080_pre_PMD_85</comments>		</item>
		<item>
			<title>Rombor: Doplnený link na ďalší článok</title>
			<link>https://pmd85.borik.net/wiki/Blog:Programovanie_v_assembleri_i8080_pre_PMD_85&amp;diff=1882&amp;oldid=prev</link>
			<description>&lt;p&gt;Doplnený link na ďalší článok&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;tr&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;← Staršia verzia&lt;/td&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;Verzia zo dňa a času 18:44, 31. august 2021&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 8:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(7)|Príprava projektu a nástrojov na editáciu zdrojového textu a jeho kompilovanie]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(7)|Príprava projektu a nástrojov na editáciu zdrojového textu a jeho kompilovanie]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(8)|Vypisujeme znaky na obrazovku]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(8)|Vypisujeme znaky na obrazovku]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(9)|Píšeme texty]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{VelkyNadpis|Programovanie v assembleri i8080 pre PMD 85 (1)}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{VelkyNadpis|Programovanie v assembleri i8080 pre PMD 85 (1)}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 31 Aug 2021 18:44:50 GMT</pubDate>			<dc:creator>Rombor</dc:creator>			<comments>https://pmd85.borik.net/wiki/Blog:Programovanie_v_assembleri_i8080_pre_PMD_85</comments>		</item>
		<item>
			<title>Rombor: Opravená značka kategórie</title>
			<link>https://pmd85.borik.net/wiki/Blog:Programovanie_v_assembleri_i8080_pre_PMD_85&amp;diff=1871&amp;oldid=prev</link>
			<description>&lt;p&gt;Opravená značka kategórie&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;tr&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;← Staršia verzia&lt;/td&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;Verzia zo dňa a času 15:12, 14. august 2021&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 145:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 145:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Kategória:Blog 018]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Kategória:Blog&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;| &lt;/ins&gt;018]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Sat, 14 Aug 2021 15:12:24 GMT</pubDate>			<dc:creator>Rombor</dc:creator>			<comments>https://pmd85.borik.net/wiki/Blog:Programovanie_v_assembleri_i8080_pre_PMD_85</comments>		</item>
		<item>
			<title>Rombor: Nový blogový článok</title>
			<link>https://pmd85.borik.net/wiki/Blog:Programovanie_v_assembleri_i8080_pre_PMD_85&amp;diff=1870&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;&amp;lt;table class=&amp;quot;toc&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Zoznam častí seriálu&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
# Úvod, Čo je assembler, Mikroprocesor i8080&lt;br /&gt;
# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(2)|Inštrukčná sada mikroprocesora - Inštrukcie pre presun dát]]&lt;br /&gt;
# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(3)|Inštrukčná sada mikroprocesora - Aritmetické inštrukcie]]&lt;br /&gt;
# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(4)|Inštrukčná sada mikroprocesora - Logické inštrukcie]]&lt;br /&gt;
# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(5)|Inštrukčná sada mikroprocesora - Inštrukcie skokov]]&lt;br /&gt;
# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(6)|Inštrukčná sada mikroprocesora - Inštrukcie pre prácu so zásobníkom, inštrukcie pre vstup/výstup, ostatné inštrukcie]]&lt;br /&gt;
# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(7)|Príprava projektu a nástrojov na editáciu zdrojového textu a jeho kompilovanie]]&lt;br /&gt;
# [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(8)|Vypisujeme znaky na obrazovku]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
{{VelkyNadpis|Programovanie v assembleri i8080 pre PMD 85 (1)}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Úvod ==&lt;br /&gt;
V niekoľkých článkoch sa tu pokúsim priniesť základné informácie o programovaní v assembleri i8080 pre PMD 85. Na webe sa síce v oblasti programovania i8080 nachádza množstvo &amp;quot;tutoriálov&amp;quot; (aj v českom jazyku), takže to možno bude miestami nosenie dreva do lesa (hlavne v prvých kapitolách), budem sa ale snažiť viazať výklad na špecifiká PMD 85.&lt;br /&gt;
&lt;br /&gt;
Pri spisovaní týchto článkov som samozrejme nevysypal všetko z hlavy, naopak, čerpal som z mnohých zdrojov, prípadne som sa nimi inšpiroval. V prvom rade mi bola pomocníkom dvojica knižiek &amp;#039;&amp;#039;&amp;#039;Assembler a ZX Spectrum&amp;#039;&amp;#039;&amp;#039; od Tomáša Vilíma, ďalej príručka &amp;#039;&amp;#039;&amp;#039;Programovanie v jazyku symbolických adries na PMD 85&amp;#039;&amp;#039;&amp;#039;, kniha &amp;#039;&amp;#039;&amp;#039;Porty, byty, osmibity&amp;#039;&amp;#039;&amp;#039; od Martina Malého, ale i ďalšie podobné články na internete.&lt;br /&gt;
&lt;br /&gt;
Začneme stručným popisom toho, čo je assembler, popisom mikroprocesora i8080, jeho programátorským modelom a jeho inštrukčnej sady, naučíme sa vypisovať znaky, texty i čísla, testovať klávesnicu, vydávať jednoduché zvuky, vyhodnocovať aritmetické výrazy, kresliť čiary, zobrazovať sprity a možno sa dostane aj na nejakú jednoduchú hru. V neposlednom rade si popíšeme kompilátor i ďalšie utility, ktoré budeme používať na skúšanie našich príkladov.&lt;br /&gt;
&lt;br /&gt;
Ak pre vás už Assembler nie neznámy pojem a poznáte aj inštrukčnú sadu i8080, môžete hneď preskočiť na kapitolu, kde popisujem, ako si [[Blog:Programovanie_v_assembleri_i8080_pre_PMD_85_(7)|pripraviť projekt a rôzne nástroje pre kompiláciu]]. Pri nejasnostiach sa však vždy môžete vrátiť k týmto všeobecným kapitolám.&lt;br /&gt;
&lt;br /&gt;
== Čo je assembler? ==&lt;br /&gt;
Slovo &amp;#039;&amp;#039;&amp;#039;Assembler&amp;#039;&amp;#039;&amp;#039; sa používa v dvoch významoch:&lt;br /&gt;
* &amp;#039;&amp;#039;programovať v assembleri&amp;#039;&amp;#039; - assembler ako &amp;quot;nízkoúrovňový&amp;quot; jazyk (&amp;#039;&amp;#039;&amp;#039;Jazyk symbolických adries&amp;#039;&amp;#039;&amp;#039; (JSA) alebo &amp;#039;&amp;#039;&amp;#039;Jazyk symbolických inštrukcií&amp;#039;&amp;#039;&amp;#039; (JSI))&lt;br /&gt;
* &amp;#039;&amp;#039;používať assembler&amp;#039;&amp;#039; - assembler ako nástroj (kompilátor JSA/JSI)&lt;br /&gt;
Programovanie v assembleri je teda napísanie programu v JSA a jeho skompilovanie do výslednej &amp;quot;binárnej formy&amp;quot;, alebo tiež do strojového kódu, ktorému už priamo mikroprocesor rozumie.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | symbolická forma&lt;br /&gt;
! align=&amp;quot;center&amp;quot; colspan=&amp;quot;3&amp;quot; | číselná forma&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | význam&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | mov a,b&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 01111000b&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 78h&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 120&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | B &amp;lt;-- A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Uvedená inštrukcia prenáša obsah registra {{Kbd|B}} do registra {{Kbd|A}}. Mnemonika (typ inštrukcie) - {{Kbd|mov}} - hovorí, &amp;#039;&amp;#039;ČO&amp;#039;&amp;#039; sa má urobiť, {{Kbd|a,b}} - operandy hovoria &amp;#039;&amp;#039;S ČÍM&amp;#039;&amp;#039; sa to má urobiť. Vo všeobecnosti, inštrukcia obsahuje mnemoniku vždy, operandy môžu byť jeden, dva alebo žiadne (v tom prípade operandy vyplývajú z mnemoniky alebo sú implicitné).&amp;lt;br /&amp;gt;&lt;br /&gt;
Popis všetkých inštrukcií i8080 i samotného assembleru (kompilátora) bude uvedený neskôr.&lt;br /&gt;
&lt;br /&gt;
== Mikroprocesor i8080 ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;i8080&amp;#039;&amp;#039;&amp;#039; je 8 bitový mikroprocesor, ktorý bol uvedený na trh firmou Intel v roku 1974. Československá Tesla vyrábala tento mikroprocesor pod označením &amp;#039;&amp;#039;&amp;#039;MHB 8080A&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Mikroprocesor komunikuje so svojim okolím prostredníctvom 8 bitovej dátovej zbernice a 16 bitovej adresovej zbernice za pomoci niekoľkých riadiacich signálov. Adresa vyberá bunku pamäte alebo periférne zariadenie, kam/odkiaľ sa bude zapisovať/čítať hodnota na dátovej zbernici. Po ôsmych bitoch dátovej zbernice môže prenášať hodnotu 0 až 255 (00h až 0FFh) a 16 bitová adresová zbernica umožňuje adresovať 65536 pamäťových buniek - 0 až 65535 (0000h až 0FFFFh). Mikroprocesor môže pristupovať k 256-tim vstupno/výstupným portom s adresami 0 až 255 (00h až 0FFh).&lt;br /&gt;
&lt;br /&gt;
== Registre mikroprocesora i8080 ==&lt;br /&gt;
Mikroprocesor i8080 poskytuje pre programátora 7 všeobecných 8 bitových registrov ({{Kbd|A}}, {{Kbd|B}}, {{Kbd|C}}, {{Kbd|D}}, {{Kbd|E}}, {{Kbd|H}}, {{Kbd|L}}), register príznakov {{Kbd|F}}, 16 bitový programový čítač {{Kbd|PC}} a 16 bitový ukazateľ zásobníka {{Kbd|SP}}.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;17&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;Registre mikroprocesora i8080&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
! 15&lt;br /&gt;
! 14&lt;br /&gt;
! 13&lt;br /&gt;
! 12&lt;br /&gt;
! 11&lt;br /&gt;
! 10&lt;br /&gt;
! 9&lt;br /&gt;
! 8&lt;br /&gt;
! 7&lt;br /&gt;
! 6&lt;br /&gt;
! 5&lt;br /&gt;
! 4&lt;br /&gt;
! 3&lt;br /&gt;
! 2&lt;br /&gt;
! 1&lt;br /&gt;
! 0&lt;br /&gt;
! Registrový pár&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | A&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | F&lt;br /&gt;
| PSW (Processor Status Word)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | B&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | C&lt;br /&gt;
| B&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | D&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | E&lt;br /&gt;
| D&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | H&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | L&lt;br /&gt;
| H&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;16&amp;quot; align=&amp;quot;center&amp;quot; | SP - Ukazateľ zásobníka&lt;br /&gt;
| (Stack Pointer)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;16&amp;quot; align=&amp;quot;center&amp;quot; | PC - Programový čítač&lt;br /&gt;
| (Program Counter)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;Príznakový register F&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | 4&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | 3&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | 1&lt;br /&gt;
! align=&amp;quot;center&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | S&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | Z&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | AC&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 0&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | P&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | CY&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Register {{Kbd|A}} - {{Kbd|akumulátor}} - je najdôležitejší register, pretože sa zúčastňuje väčšiny aritmetických a logických operácií.&lt;br /&gt;
&lt;br /&gt;
Dvojice registrov {{Kbd|B}} a {{Kbd|C}}, {{Kbd|D}} a {{Kbd|E}}, {{Kbd|H}} a {{Kbd|L}} možno používať ako 16 bitové registre v pároch {{Kbd|B}}, {{Kbd|D}} a {{Kbd|H}}. Registrový pár {{Kbd|H}} sa používa ako &amp;quot;pseudo-register&amp;quot; {{Kbd|M (Memory)}} pri presunoch údajov medzi pamäťou a registrami - nepriame adresovanie. Akumulátor {{Kbd|A}} a register príznakov {{Kbd|F}} tvoria spolu 16 bitový register {{Kbd|PSW}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Je dôležité si uvedomiť, že ak pracujeme s registrovým párom, menia sa aj jeho jednotlivé registre. A naopak, zmena hodnoty jednotlivého registra zmení hodnotu registrového páru.&amp;lt;br /&amp;gt;&lt;br /&gt;
K registrovým párom ešte zostáva doplniť, ako je v nich hodnota uložená. Ak je v registri {{Kbd|HL}} hodnota {{Kbd|42841}}, tak v registri {{Kbd|H}} (vyšší byte) je hodnota {{Kbd|167}} (celá časť podielu {{Kbd|42841/256}}) a v registri {{Kbd|L}} (nižší byte) je hodnota {{Kbd|89}} (zbytok po delení {{Kbd|42841/256}}). Opačne, ak naplníme jednotlivé registre nejakými hodnotami, tak v registrovom páre bude hodnota &amp;#039;&amp;#039;&amp;#039;HL=256*H+L&amp;#039;&amp;#039;&amp;#039;. Toto samozrejme platí aj pre ostatné registrové páry.&amp;lt;br /&amp;gt;&lt;br /&gt;
Niekedy sa v texte nepoužíva slovné spojenie &amp;#039;&amp;#039;registrový pár&amp;#039;&amp;#039;, ale priamo sa hovorí napr. o registri {{Kbd|HL}}, čo je v danom kontexte často zrozumiteľnejšie. Naopak, v samotných inštrukciách sa používa vždy ako operand iba označenie napr. {{Kbd|H}} a či sa jedná o jednoduchý register alebo o registrový pár je dané mnemonikou inštrukcie.&lt;br /&gt;
&lt;br /&gt;
Čo sa týka 16 bitových čísel a ich uloženia v pamäti, tak sa používa tzv. {{Kbd|Little Endian}}, čo znamená, že 2 byty hodnoty sú v pamäti uložené v poradí najprv nižší byte a potom vyšší byte. Takto ukladajú a čítajú 16 bitové hodnoty do/z pamäte všetky inštrukcie pracujúce so 16 bitovými hodnotami.&lt;br /&gt;
&lt;br /&gt;
Príznakový register {{Kbd|F}} obsahuje 5 príznakov, na základe ktorých sa môže program vetviť - inštrukcie podmienených skokov, volaní podprogramov a návratov z podprogramu. Stav príznakov sa mení po vykonaní inštrukcie. Niektoré inštrukcie nemenia žiadne príznaky.&lt;br /&gt;
* {{Kbd|S - Sign flag}} (znamienko) - Príznak záporného výsledku - kopíruje sa doň 7. bit výsledku v akumulátore. Čísla väčšie ako {{Kbd|127}} sú chápané ako záporné. Príznak má hodnotu {{Kbd|0}} (v podmienke sa označuje {{Kbd|P (plus)}}) pre kladné číslo, alebo hodnotu {{Kbd|1}} (v podmienke sa označuje {{Kbd|M (minus)}}) pre záporné číslo.&lt;br /&gt;
* {{Kbd|Z - Zero flag}} - Príznak nulového výsledku - má hodnotu {{Kbd|1}} pre nulový výsledok (v podmienke sa označuje {{Kbd|Z (zero)}}), alebo hodnotu {{Kbd|0}} pre nenulový výsledok (v podmienke sa označuje {{Kbd|NZ (not zero)}}).&lt;br /&gt;
* {{Kbd|AC - Auxilliary Carry flag}} - Pomocný príznak prenosu z 3. bitu do 4. - nie je možné ho testovať priamo a využíva ho interne iba inštrukcia {{Kbd|DAA}} pre desiatkovú korekciu.&lt;br /&gt;
* {{Kbd|P - Parity flag}} - Príznak parity  - má hodnotu {{Kbd|1}}, ak je počet jednotiek v akumulátore párny (v podmienke sa označuje {{Kbd|PE (parity even)}}), alebo hodnotu {{Kbd|0}}, ak je počet jednotiek v akumulátore nepárny (v podmienke sa označuje {{Kbd|PO (parity odd)}}).&lt;br /&gt;
* {{Kbd|CY - Carry flag}} - Príznak pretečenia - má hodnotu {{Kbd|0}}, ak nedošlo k pretečeniu (v podmienke {{Kbd|NC (No Carry}})), alebo hodnotu {{Kbd|1}}, ak k pretečeniu došlo (v podmienke {{Kbd|C (Carry)}}). K pretečeniu dôjde, ak sa sčítajú dve čísla, napr. 200 a 100. Výsledok by mal byť 300, avšak toto číslo sa nevojde do 8 bitov, výsledok teda bude 44 a bude nastavený príznak Carry. Obdobne je to pri odčítaní alebo pri sčítaní dvoj-registrov. Tento príznak možno individuálne nastaviť alebo jeho hodnotu zmeniť na opačnú. Je vhodný pri aritmetických operáciách s číslami väčšími ako 8/16 bitov. Príznak Carry tiež využívajú inštrukcie rotácií.&lt;br /&gt;
&lt;br /&gt;
Čítač inštrukcií {{Kbd|PC}} ukazuje vždy na inštrukciu, ktorá sa bude vykonávať. Jeho hodnota sa mení po vykonaní inštrukcie o 1 až 3, podľa dĺžky vykonanej inštrukcie. Ak sa jedná o inštrukciu skoku, volania podprogramu alebo návratu z podprogramu, {{Kbd|PC}} nadobudne hodnotu v závislosti od konkrétnej inštrukcie, jej adresného argumentu alebo stavu príznakov.&lt;br /&gt;
&lt;br /&gt;
Ukazateľ zásobníka {{Kbd|SP}} obsahuje adresu vrcholu zásobníka. Zásobník slúži na uloženie návratovej adresy pri volaní podprogramu a dočasné odloženie údajov v registrových pároch. Zásobník &amp;quot;rastie&amp;quot; k nižším adresám, čo znamená, že pri vložení údaja do zásobníka sa adresa zásobníka zníži o 2 a pri vybraní údaja sa zvýši o 2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&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_(2)|Inštrukčná sada mikroprocesora - Inštrukcie pre presun dát &amp;amp;gt;&amp;amp;gt;]]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategória:Blog 018]]&lt;/div&gt;</description>
			<pubDate>Sat, 14 Aug 2021 15:10:37 GMT</pubDate>			<dc:creator>Rombor</dc:creator>			<comments>https://pmd85.borik.net/wiki/Blog:Programovanie_v_assembleri_i8080_pre_PMD_85</comments>		</item>
	</channel>
</rss>