Hollosi Information eXchange /HIX/
HIX CODER 241
Copyright (C) HIX
1998-10-05
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 protected mode (mind)  7 sor     (cikkei)
2 Re: Videomemoria lapozas S3-on (mind)  16 sor     (cikkei)
3 Re: kif. kiertekelo (mind)  88 sor     (cikkei)

+ - protected mode (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

Olyan embert keresek, aki profi vedett modu assembly rendszerprogramozasban. 
Bizonyos kerdesek megvitatasa celjabol (mit, hogy erdemesebb megcsinalni 
/taszkvaltas, megszakitas, stb...).

Tomi
+ - Re: Videomemoria lapozas S3-on (mind) VÁLASZ  Feladó: (cikkei)

 írta a következő üzenetben: ...

> Szuksegem lenne egy olyan rutinra, ami S3 (Trio , de inkabb Virge) 
> kartyan a lapozast elvegezne (lekerdezes es beallitas is).
> ...
> Esetleg erdekel valamilyen VESA-s megoldas is, ha az nyujt valami 
> hasonlo szolgaltatast.

Egy jo regi VESA-s megoldas lehet:

 mov ax,4f05h
 xor bx,bx
 mov dx,lapszam
 int 10h

peppin
+ - Re: kif. kiertekelo (mind) VÁLASZ  Feladó: (cikkei)

On  3 Oct 98 at 16:15,  > wrote:

> Hali!

szia!
 
> > asm-hez mit szolnal? :))
> En nagyon orulnek neki! :)  de tenyleg.

Semmi kulonos, ugyanaz az algoritmus, amit tegnap C-ben megirtam,
csak asm-ben az egesz. Ha nagyon kell, kivagom a kornyezetebol (egy 
makroprocesszor), de szerintem egyszerubb a C kod alapjan megirni :)

> En is a napokban fejlesztek kif. kiertekelot, a BAssPasC 3.0-hoz,
> a kulonbseg annyi hogy nekem nem a kif. erteket kell kiszamolnom
> hanem asm forrast kell generalni ami majd futaskor ksizamolja!
> (ha csak kiszamolni kene, az megy, az nem olyan nehez)

Forraskodot generalni se nehezebb optimalizalas nelkul, legalabbis,
ha stack-es az aritmetikai processzor (mint pl. az intel FPU). Csak
annyi a kulonbseg a kodban, hogy ahol return-olod a konstans vagy a
valtozo erteket, ott a stack-be load-olo utasitast generalsz, ahol
meg a muveletet vegzed vele, ott is a megfelelo utasitast generalod
be. Tehat pl. ami igy szolt:
  reszeredmeny += exprMD(); 
Abbol ez lesz:
  exprMD();
  gen("faddp st(1),st");

Ebbol persze nem valami jo kod lesz, optimalizalni kell meg. Azt
viszont lehet kesobb is, mar a generalt asm utasitasok (vagy meg
inkabb a generalt pseudo-kodok) lokalis optimalizalasaval (szomszedos
utasitasok osszevonasa, stb.)

>   kifejezes='3+x+5'
[...]
> pedig igy is ugyanazt az eredmenyt adna es egyszerubb (gyorsabb):
>     FLD Const_8
>     FADD x

Ehhez valami olyan optimalizalas kellene, ami a load-olasok
sorrendjet modositja az aznonos precedenciaju kommutativ
muveleteknel. Pl. 3+x+5-bol elso kozelitesben (optimalizalas nelkul)
ilyen pseudokod lenne:

 load 3
 load x
 add
 load 5
 add

(forditott lengyel aritmetika)
Itt az egymas utani ket add egymas melle hozhato:
 load 3
 load x
 load 5
 add
 add

A load-okat pedig sorba lehet rendezni ugy, hogy eloszor a 
valtozok, utana a konstansok alljanak (nem irom le...), es ott mar 
egyszerusitheto a ket konstans osszeadasa az osszeg load-olasaval:
 load x
 load 8
 add

Es ebbol generalhato a vegleges kod, szinten generalas kozbeni 
optimalizalassal, vagyis, hogy egy [load valt, load konst, add] olyan 
intel utasitasokkal kodolhato, hogy [fld konst, fadd valt].

> Ezt lehet tovabb bonyolitani is, pl: '(x+y+z)-(x-y+z)'
> mert ez ugye 2*y-al egyenlo...

Ha ilyet is optimalizalni akar az ember, azt is biztos megteheti a 
pseudokodok lokalis vizsgalataval, ha a load-olasokat sorba rendezi a 
valtozo neve szerint is...

Nem csinaltam meg ilyeneket, csak ugy belegondoltam kicsit :)
Remelem, adtam azert vele valami otletet ;)

Egyebkent hallottam valamikor, hogy nem stack-es gepre is szoktak ugy
kifejezeskiertekelot optimalizalni, hogy eloszor megcsinaljak egy 
stack-es pseudo-gepre, aztan az optimalizalt eredmenybol generalnak 
regiszteres kodokat.

István
--  Istvan Marosi  --  http://www.sch.bme.hu/~marosi  --
--  Recosoft Ltd.  --  mailto:  --

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