Konference: SAPI-1 a československé mikropočítače

Od: Roman Bórik
Datum: 5.11.2011 11:56
Předmět: Re: Chyba M80??


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 
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 
02h).

Nedávno som na Aukre získal knihu "Operační systém CP/M, Příručka
programátora, TESLA ELTOS, 1985, 2. vydanie 1988", kde je k formátu
zdrojového textu pre M80 uvedené, že mená registrov sú rezervované mená, 
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 "chybnom" zápise M80 nekričí.

Užitočnou vlastnosťou M80 je ale napr. to, že ako operand môže byť
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
"zahadne" nechodil. Narazil jsem na jeden muj kopanec, ktery se po prekladu
pomoci Mrkvosofti M80 chova naprosto zvlastne. 
Spletl jsem si v 8080-ce dve scitaci instrukce ADC a ADI.  ADC  je pricteni
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
ACI 6. Zajimavy ovsem je, ze to M80 schroupla a neprotestovala.  Ale treba ADC
32 uz protestovala na chybu argumentu..
Tak jsem se chtel zeptat, jestli to je chyba M80 a nebo to je neco podobnyho
jako u 8051, kde se muzou registry oznacovat cislem, tedy adresou jejich ulozeni
v pameti RAM. Jenze u 8051 jsou ! registry skutecne v RAM a u 8080 jsou primo v 
procesoru. Pokud je skutecne mozny oznacovat registry H,L,D,E atd cislama, nikdy
jsem o tom neslysel. Treba v knize Zakladni instrukce 8080 od Tesla Eltos o tom 
neni ani carka a v popisu M80 taky nic. Dalo by se to odladit,  co je co, ale na
to jsem docela linej. -:))    Uz si to proste nespletu. Zkusim ale zda to M80
dela i pri Z80 instrukcich.
Jirka


Ostatní příspěvky vlákna:

 
[2011/2 (7)] [2011/3 (12)] [2011/5 (50)] [2011/6 (18)] [2011/7 (112)] [2011/8 (192)] [2011/9 (94)] [2011/10 (16)] [2011/11 (46)] [2011/12 (39)]


[2010 (676)] [2011 (586)] [2012 (976)] [2013 (538)]