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