( locsemege | 2011. 12. 23., p – 01:00 )

Jó, az is érdekes, mit nevezünk Z80-nak. Én azt, amit a Zilog valaha csinált. Mai technológiával az sem nagyon lepne meg, ha 10 GHz-es is lenne. Ha jobban belegondolunk, a gépemben lévő Phenom II. X4 955-nek, amely 3.2 GHz-ről jár maximum, van némi halvány rokonsága a Z80-nal. Igen halvány, talán a 8080 környékéről. ;)

Meg aztán egy Z80 CPU-t egy FPGA-val is meg lehet valósítani. Mondom, semmi bajom nincs vele, nagyon szerettem, de eljárt felette az idő. Éppen azért írom, mert programoztam sokat Z80-ra is, keveset 80C32-re - illetve Dallas 80C320-ra -, meg többféle PIC-re.

Az előbbiek CISC-ek, az utóbbi inkább RISC. Érzésből azt mondanám, mivel hardware-esen sokkal több mindent megcsinál egy CISC, gyorsabb, s rövidebb lesz a kód. A tapasztalat erre rácáfol. Valahogy a RISC-kel hatékonyabban megoldhatók a feladatok.

Kis PIC-eken nincs adat stack. Az elején féltem tőle, hogyan fogom menteni a regisztereimet. Aztán kiderült, nem is hiányzik, kell a fenének, csak egy kis szemléletváltás kell, amelyben az ember tudomásul veszi, hogy nincs PUSH és POP utasítás. Meg EX (SP), HL. A nyereség viszont az, hogy a sok PUSH és POP a rutinok elején, végén lassú volt, ahol ez nincs, az nem is tud lassú lenni.

Aztán a Z80-ban hamar elfogytak a regiszterek, azokat stack-re vagy memóriára kellett tenni, az adatmozgatás meg lassú. PIC-en fileregiszterek vannak, így lényegében az egész RAM egy-egy lapja elérhető direkt címzéssel gyorsan, tehát bármelyik cím regiszterként kezelődik. Egy PIC butább, egyszerűbb a core, viszont jobban kitalált. Szigorúbb, de tisztább gondolkodást igényel. Mondjuk ez szubjektív, de így érzem.

Ami meg a 80C32-t illeti... Az meg milyen, hogy 16 bites pointert tud inkrementálni, ugyanakkor dekrementálni nem, így arra pici szubrutint kell írni, s azt hívogatni? Jaj... :(

tr [:lower:] [:upper:] <<<locsemege
LOCSEMEGE