Hollosi Information eXchange /HIX/
HIX CODER 655
Copyright (C) HIX
1999-11-28
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re: forditas (mind)  116 sor     (cikkei)
2 Foxpro - Segitsen valakiiii! (mind)  30 sor     (cikkei)
3 kepformatum leiras (mind)  11 sor     (cikkei)
4 Atlatszo ablakok (mind)  54 sor     (cikkei)

+ - Re: forditas (mind) VÁLASZ  Feladó: (cikkei)

Szia!

>....Hogy lehet akkor 
>megis az, hogyha erre az egyseges nyelvre fordit az
>osszes fordito,  akkor kulonbsegek vannak
>a leforditott programok kozott meret, gyorsasag(ha van
>meg vmi kulonbseg az is erdekelne) eseteben
>(pl assembly, C, pascal stb)?

A kulonbozosegek abbol adodnak, hogy magasszintu nyelveken irt
programokat tobbfele gepikodra is lehet leforditani. A fordito
optimalizaciojatol fugg milyen jol tudja a magasszintu nyelv
uatsitasainak megfelelo leggyorsabb kodot megtalalni (ha megtalalja).
Ez pedig forditonkent kulonbozo, valamint ebbe be is lehet segiteni
kulonfele nyelvi elemekkel mint pl. a C nyelv register tipusmodosito
utasitasa, aminek a hsznalatakor, ha lehet a valtozot regiszterben
tarolja a fordito (igy ha az ciklusvaltozo gyorsabb futast eredmenyez)

Ha vesszuk a 
For i:=0 To ciklusszam Do  tevekenyseg; 
egyszeru Pascal utasitast, az eleg sokfelekeppen lehet gepikodban
megvalositani:

	MOV 	CX, ciklusszam
LABEL:
	{tevekenyseg}
             LOOP 	LABEL

vagy igy

	MOV	CX, ciklusszam
LABEL:
	{tevekenyseg}
	DEC	CX
	JNZ	LABEL

es ha nagyobb a ciklusmag 127 byte-nal ugyanis a JNZ utasitas csak
annal kisebb tavolsagra hasznalhato (az utolso bit az elore/hatra
iranyt  hatarozza meg) Valamint tudni kell hogy a JNZ (es mas
felteteles ugrasok) 2 byte-osak a JMP pedig legalabb 3 viszont
univerzalis

	MOV	CX, ciklusszam
LABEL:
	{tevekenyseg}
	DEC	CX
	JZ         CONT
	JMP	LABEL
CONT:
	{ciklus utani utasitasok}

de igy is, ha a ciklus elott megvizsgaljuk hogy le kell-e egyaltalan
futnia...
 
	MOV	CX, ciklusszam
	JCXZ	CONT
LABEL:
	{tevekenysegek}
             LOOP 	LABEL
CONT:
	{ciklus utani utasitasok}

ha a ciklusvaltozo nem regiszterben van (memoriavaltozo) akkor lehet a
leglasabb kodot eloallitani:	

	LEA	SI, ciklusszam valtozoja
LABEL:
	{tevekenyseg}
	DEC	[SI]
	JNZ	LABEL

A lehetosegek szama szinte korlatlan, es szegeny forditonak meg
kellene talani a feladathoz illeszkedo leggyorsabb kodot... :-)))

Ezenkivul belejon a jatekba, hogy a forditok optimalizaljak-e valamely
processzorra a programot. Ez legkorabban azzal jelentkezett, hogy
kihasznaltak -e a nagyobb processzor utasasitasait, illetve
emulaltak-e koprocesszort, vagy hasznaltak a koproci utasitasokat.

pl. Az XT az SHL utasitast csak 1-el vagy CL-el engedte hasznalni.
a 286-ostol tetszoleges konstanssal lehet.

pl.: szerenenk vegrehajtani egy 
	SHL 	AX, 4 
utasitast. Ezt igy lefutatni csak 286 ostlol lehet, korabbi
processzorokon, vagy kompatibilitasi okokbol XT-re forditott programok
a
	SHL	AX, 1 
	SHL 	AX, 1 
	SHL 	AX, 1 
	SHL 	AX, 1 
utasitassorozatot, vagy a 
	MOV 	Cl, 4
	SHL 	AX,CL 
utasitast hasznalhatjak (az elso a gyorsabb)

A kesobbi processzoroknal az optimalizacios torekves abban nyilvanul
meg, hogy lehetoleg ne kellejen a pipe-line-t kiuriteni. 

A hagyomanyos proci (meg a 8086 elottiek) a Fetch szakaszban beolvassa
az utasitast ;s az Execution szakaszban vegrehajtja.
Mar a 8086-ban volt egy par byte-os memoria, es a Fetch szakaszban
beolvasta az aktualis utasitast, valamint nehany kovetkezot. Igy az
Execution szakasz gyorsan a mar beolvasott utasitasokat tudta
feldolgozni (mig a queue vegere nem ert). Kiveve, ha ugro utasitat
talal mert akkor be kell olvasni ujra a tejes instruction queue-t.
Ez a tecnika fejlodott tovabb a kesobbi processzorokban, de mar itt az
volt a torekves, hogy lehetoleg ne kelljen a queue-t kidobni...

Remelem nem bonyolitottam tul a dologot.
Viszont segithet, ha megnezel egy gepi-kod tablazatot: egy kozonseges
ADD, vagy JMP assembly utasitasnak is tobb tucatnyi gepi kodja van...
Azt azert tudni kell, jogy az assembly 1:1-ben megfeleltetheto a gepi
kodnak.

ZsZs.
+ - Foxpro - Segitsen valakiiii! (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok

Esti tagozatra jarok masoddiplomas informatika szakra. Jelenleg a
szakdolgozatomat irom Foxpro 2.6-ban.
A következo kerdeseim lennenek:
1. Hol lehet valami HASZNALHATO konyvet beszerezni a Foxpro programozasarol
(mi a konyv cime)?
2. Nincs vmi Foxpro forum, ahol az ember elnyoszorogheti a problemait es
esetleg (hamar) valaszt is kap?
3. A mostani LEGFONTOSABB gondom: a programom 2-3 kepernyovaltas utan "Tul
sok egyideju Read" uzenettel kiugrik. Mar probaltam mindent: Clear Gets,
Clear Read, Clear Read all, Close databases, sot volt Close all is, de megis
2-szer jol megcsinalja a dolgokat, utana leall.
Konkretan: van 3 kepernyo
- az elso beker egy adatot, megkeresi az adatbazisban az illeto nevet es
ugrik a kovetkezo ablakra
- a kov. ablak kiirja az illeto adatait es rakerdez, hogy torolheti-e.
Torles után ugrik a 3.-ra
- a harmadik egy ismetlo ablak, rakerdez, hogy megtegye-e megegyszer a
keresest.
Ha igent választanak, visszaugrik az elso ablakhoz.
Az ablakokat Release Window nev-vel kapcsolom ki tavozas után.
Hat ennyi. Meg vagyok love, mert le kellene adni a proggit egy heten belul
es a tanarom se tud segiteni.

Elore is koszonom a segitseget! A valaszt a kuldhetitek bárhová (magan, vagy
levelezes), mindegy. (Bar most kivetelesen lehet, hogy jobb lenne a magan,
de ez ne legyen problema most...)
Sziasztok: Fozo Attila

+ - kepformatum leiras (mind) VÁLASZ  Feladó: (cikkei)

Szia Zoltan,

  Honlapomon van egy Delta Software Enciklopedia nevu leiras, amiben
  BMP, PCX, GIF, stb formatumleirasok vannak, reszeletesen, magyarul,
  Pascalban irt mintaprogikkal (termeszetesen ASM betetekkel).
  Ja, Vesa grafika.
  
Tschao!
------------ Mitol legyen jo kedvem? -------------
[Nick] I'm re  [E-mail] mailto:
[Web] http://www.extra.hu/radimre   [UIN] 37119586
+ - Atlatszo ablakok (mind) VÁLASZ  Feladó: (cikkei)

Van egy nagyon egyszeru modszer, igaz, ezert hatranyai is vannak. Az ablak
regionjat kell atdefinialni. Egy regebbi hix-ben van erre pelda, dlephi
ala.

>Delphi-ben hogyan lehet ovalis ablakot letrehozni (tehat nem szabvany teglalap
>alakut)?

>Probald ki a kovetkezot (nem sajat talalmany):

procedure TForm1.FormCreate(Sender: TObject);
var
  hR: THandle;
  hR1: THandle;
  hR2: THandle;
  ered: integer;
;

Ebbol ha csak a keret nagysaganak megfelelo regiot adsz meg, akkor
atlatszo lesz.

Screen saverral
kapcsolatban: (SWAG-bol)  http://www.gdsoft.com/swag/swag.html

Someone posted a message requesting information on how to use Delphi for 
a screen saver. 

a) In the project file (*.dpr) add '{$D SCRNSAVE <saver name>} after the
uses clause.

b) On the main form, turn off the border and icon controls. In the 
activate method set the form left and top to 0, and set the Windowstate 
to wsMaximize.

c) In the form create method, set the application.OnMessage to a method 
that controls the deactivation of the screen saver. Set the 
application.OnIdle method to whatever display method for the saver.

d) In the form create method the command line should be tested for /c and 
/s. These are the command line parameters windows uses to define whether 
the screensaver should run or configure. (/c is for configuration)

e) Compile the program, and rename the .exe to .scr. Move it to the
windows directory, and it should show up in the control panel.

Bocs mindenkitol a hosszu cikkert, de gondolom ez masokat is erdekelhet.

Udv.

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS