( locsemege | 2023. 05. 13., szo – 10:59 )

Re: OFF

Fene tudja. Z80 volt az első assembly nyelv, amelyet megtanultam, aztán programoztam valamennyit 80C32-re, ez ugye a 8051 család a nagyon béna utasításkészletével. Például van 16 bites inkrementálás, de dekrementálás már nincs, azt meg kell írni 8 bites utasításokból.

Aztán sokat programoztam kis PIC-ekre assembly-ben, és nagyon meglepődtem azon, hogy a kevés utasítás és az adat stack hiányának ellenére mennyire hatékonyan lehet programozni. Ugye Z80-on volt nem túl sok regiszter: AF, BC, DE, HL, SP, IX, IY, AF', BC', DE', HL', IR, PC. Fejből írtam, ha valami kimaradt, akkor kopnak az emlékeim. Mivel mindenhez ezeket lehetett használni, gyakran kellett menteni és visszaállítani, ezért kellett sok PUSH és POP.

Ezzel szemben PIC-ek esetében az opkód tartalmazza a címrészt is, így a memória egy lapja közvetlenül címezhető, tehát lényegében az egész RAM egy nagy szelete látható regiszterként. Meg van egy szál W. Nem kell menteni semmit, mert rögtön az operanduson végzi az ember a műveletet, nem pedig egy közbenső regiszteren. Cserébe persze megnyertük a lapozgatást, ami kicsit kényelmetlen.