Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Původní podoba příspěvku

Roman Bórik Zpět na příspěvek

Surová data tak, jak byla v roce 2013 stažena z Pandory (HTML zdroj bez úprav, osobní e-mailové adresy jsou maskované).

<!-------------------------------------------------------------->
<table width="100%"><tr><td align="left" valign="middle"></td><td align=right valign="middle"></td></tr></table><BR><pre>Nie je to chyba M80, ale jeho vlastnosť (It is not a bug, it's a feature :-).

Ale súhlasím, že je to viac matúce, ako užitočné.
Mnohokrát sa mi stalo, že som pri všeliakých úpravách a optimalizáciách 
<img src="BODY_IMAGES_WRAP_GIF">napísal napr.
MOV A,2 a potom som sa čudoval, prečo mi program robí psie kusy...
M80 to preložil ako MOV A,D (7Ah), ale ja som pochopiteľne chcel MVI A,2 (3Eh 
<img src="BODY_IMAGES_WRAP_GIF">02h).

Nedávno som na Aukre získal knihu &quot;Operační systém CP/M, Příručka
<img src="BODY_IMAGES_WRAP_GIF">programátora, TESLA ELTOS, 1985, 2. vydanie 1988&quot;, kde je k formátu
<img src="BODY_IMAGES_WRAP_GIF">zdrojového textu pre M80 uvedené, že mená registrov sú rezervované mená, 
<img src="BODY_IMAGES_WRAP_GIF">ale zároveň majú priradené nasledujúce hodnoty:

B  C  D  E  H  L  M  SP  PSW  A
0  1  2  3  4  5  6  6  6  7

Takže to je dôvod, prečo pri &quot;chybnom&quot; zápise M80 nekričí.

Užitočnou vlastnosťou M80 je ale napr. to, že ako operand môže byť
<img src="BODY_IMAGES_WRAP_GIF">použitý názov inštrukcie, napr.:
MVI A,(LXI H), čo sa preloží ako MVI A,21h

Roman

----------

Dnes jsem se vratil k nejakymu starsimu programku, ktery jsem odlozil protoze
<img src="BODY_IMAGES_WRAP_GIF">&quot;zahadne&quot; nechodil. Narazil jsem na jeden muj kopanec, ktery se po prekladu
<img src="BODY_IMAGES_WRAP_GIF">pomoci Mrkvosofti M80 chova naprosto zvlastne. 
Spletl jsem si v 8080-ce dve scitaci instrukce ADC a ADI.  ADC  je pricteni
<img src="BODY_IMAGES_WRAP_GIF">obsahu reg k stradaci ,  ACI je pricteni konstanty k stradaci. 
Napsal jsem :    ADC 0, jine zase ADC 6  coz je spatne, melo by byt ACI 0,  nebo
<img src="BODY_IMAGES_WRAP_GIF">ACI 6. Zajimavy ovsem je, ze to M80 schroupla a neprotestovala.  Ale treba ADC
<img src="BODY_IMAGES_WRAP_GIF">32 uz protestovala na chybu argumentu..
Tak jsem se chtel zeptat, jestli to je chyba M80 a nebo to je neco podobnyho
<img src="BODY_IMAGES_WRAP_GIF">jako u 8051, kde se muzou registry oznacovat cislem, tedy adresou jejich ulozeni
<img src="BODY_IMAGES_WRAP_GIF">v pameti RAM. Jenze u 8051 jsou ! registry skutecne v RAM a u 8080 jsou primo v 
<img src="BODY_IMAGES_WRAP_GIF">procesoru. Pokud je skutecne mozny oznacovat registry H,L,D,E atd cislama, nikdy
<img src="BODY_IMAGES_WRAP_GIF">jsem o tom neslysel. Treba v knize Zakladni instrukce 8080 od Tesla Eltos o tom 
<img src="BODY_IMAGES_WRAP_GIF">neni ani carka a v popisu M80 taky nic. Dalo by se to odladit,  co je co, ale na
<img src="BODY_IMAGES_WRAP_GIF">to jsem docela linej. -:))    Uz si to proste nespletu. Zkusim ale zda to M80
<img src="BODY_IMAGES_WRAP_GIF">dela i pri Z80 instrukcich.
Jirka

</pre>