programozas...adalek
I.R.
istvan.retaller at evoran.hu
Sun Feb 15 21:49:21 CET 2004
Szia!
Idézve: Dátum: 2004. 02. 15. 2:43:51. Feladó: Erdos Zoltan <silverst at axelero.hu>.
>Igy futasidoben szinte egy sokszorosan beagyazott rutinhivas sort hajt
>vegre, aminek a legalso szintje gepi kod.
>Igaz, csak olyan procira jo, ami a program es adatmemoriat nem kezeli
>kulon, illetve a stack-je nem korlatozott...(ez komoly hiba lehet
>egyesek szemeben)
Annak idejen Z80-ra irtam FORTH compilert, egy kis trukkel, ami jocskan megdobta a
sebesseget. Mivel erdekelt, hogy ez a trukk belefer-e a szabvanyba, a FIG-FORTH szerinti
standardba, szereztem leirast.
Eszerint sehol nincsen deklaralva, milyen a secondary-k formatuma. Ebbol kovetkezoen nalam
ez nem pusztan egy ketbyte-os cim volt, hanem mindegyik cim ele egy hexa 0xcd is le volt teve,
ami a Z80 assemblyben a "call label" kodja.
Ettol elmaradt a secondary-k kezeleset lassito NEXT, egy secondary egyszeruen ugy nezett ki,
hogy
call egy_primitiv
call masik_primitiv
call secondary
....
ret
A primitivjeim eleve egy RET-tel vegzodtek, a secondary-k vegere a compiler tette oda, igy
elmaradt az egesz interpreter resz. A program stack ettol a proci sajat stack lett, a data stack
meg a kenyelmesen kezelheto HL regiszterpar, ami a leggyorsabb memoriaskezelest tette
lehetove.
Lefuttatam azokat a bechmark progikat, amikkel teszteltek az akkori verziokat. A gyengebbeknel
verziokhoz merve tobb, mint tizszeres (!) sebesseggel futott, de a legjobbat is verte egy
masfelszeres szorzoval.
>De nem akarok tul hosszu es offtopic lenni, akit erdekel, a neten
>sokezer talalat van a temaban, mert ez maig nepszeru nyelv, csak nalunk
>nem divat....
Lehet, hogy lenne letjogosultsaga ATMEL-re megirni...?
Üdv, RI
More information about the Elektro
mailing list