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.
|
|