Hollosi Information eXchange /HIX/
HIX CODER 259
Copyright (C) HIX
1998-10-24
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re: NASM kerdes (mind)  17 sor     (cikkei)
2 Re: Kodoptimalasi megoldasok [ASM] (mind)  80 sor     (cikkei)
3 TP7 runtime error (mind)  24 sor     (cikkei)
4 5x5 buvosnegyzet es -kocka (mind)  53 sor     (cikkei)
5 GCC?! (mind)  4 sor     (cikkei)

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

On 22 Oct 98 at 18:20,  > wrote:

> Az a problemam, hogy 0.93-as NASM nem tudta kezelni a tul sok cimket , erre 
> attertem a 0.97-esre, ami ugyanugy nem tudja, sot ugyanarra forrasra a 0.93-as
> & a 0.97-es kulonbozo mere tu file-t fordit. Miert??? Most nincs NASM sourcem,
> mi a cimkek szamanak korlatja? Vagy nem lehet tetszoleges nagy programot leforditani?

A nasm a cimkeket blokkonkent foglalja le, egy blokkba 320 cimke
fer, de a blokkokbol magabol elvileg akarmennyi lehet. Gyakorlatilag
a memoria merete korlatoz csak. Nem tudom, dos alatt (16 bit) mennyi
ez a korlat gyakorlatilag, mert en dos-ban mindig nasmw-t futtatok,
tehat a 32 bites nasm-ot, ott meg a korlat tenyleg nagy. Probald Te
is a nasmw-t hasznalni.

István
--  Istvan Marosi  --  http://www.sch.bme.hu/~marosi  --
--  Recosoft Ltd.  --  mailto:  --
+ - Re: Kodoptimalasi megoldasok [ASM] (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

Amikor megjelent TomCat megoldas-cikke, akkor valaszoltam mar
(legalabbis ugy emlekszem :), de azota se jelent meg a levelem. Hat
akkor megprobalom ujra osszeszedni:

On 20 Oct 98 at 11:27,  wrote:

> Es itt vannak a megoldasok a _legkevesebb utasitasban_:

Ezekkel a megoldasokkal mindegyikkel van valami bajom.
Vegyuk sorra oket:

> 1. ugras nelkul, tabla nelkul (_4 db_):
> > > > > cmp ax,31
> > > > > jna label
> > > > > mov ax,31
> > > > > label:
 ...
> > sub   ax,31           ; ax=ax-31
> > sbb   cx,cx           ; cx= 'ax'<31 ? 0ffffh  | 0
> > and   cx,ax           ; cx= 'ax'<31 ? 'ax'-31 | 0
> > add   cx,31           ; cx= 'ax'<31 ? 'ax'    | 31
> >
> > rod/mandula

Ez a megoldas rogton 5 utasitasra novekszik, ha az eredmenyt az
ax-be is at kell pakolni, mint ahogy az eredeti programreszlet is
teszi. 5 utasitasosat en is tudok: ... hoppa! most veszem eszre, hogy
ez nem is max(ax,31), hanem min(ax,31)!! Hat ezt jol elneztem :(
Akkor viszont tudok 4 utasitasosat is :-) (max-hoz kell csak 5
utasitas, ugyanis ahhoz meg egy 'cmc' is kell)

Oke, vegulis ezzel nincs is olyan nagy baj: ha jol megnezem, az en
megoldasom gyakorlatilag tokeletesen megegyezik rod megoldasaval,
csak epp ax-ban lesz a minimum:

  sub ax,31
  sbb cx,cx
  and ax,cx
  add ax,31

> 2. tabla nelkul (_6 db_)
> > > > Hogy lehet a leheto legkevesebb utasitassal megcserelni a 
> > > > memoria egy adott word-jenek 13. es 4. bitjet? (Derko Quiz)

Erre nehany honapja, amikor itt felmerult, mar kuldtem be egy 3 
utasitasos megoldast:

  test var,1 shl 13 + 1 shl 4
  jpe  ugyanaz ; ha paros paritasu, a ket bit azonos, nem kell csere
  xor  var,1 shl 13 + 1 shl 4     ; egyik bit 1, masik 0, xor cserel
ugyanaz:

Igaz, hogy ebben van ugras, de a kiiras azt nem tiltotta meg. Ha 
megtiltanank, akkor is lehet azert hasonlo elvut csinalni:

  test  var,1 shl 13 + 1 shl 4
  setpo al     ; ha paratlan paritasu (a ket bit kulonbozo), al=1
  mov   ah,0   ;                                   egyebkent al=0
  imul  ax,1 shl 13 + 1 shl 4
  xor   var,ax

Ez csak 5 utasitas, szoval ugras nelkul is nyertem :) 

> 3. Ezt tobben megirtatok (_1 db_) 
> > Tetelezzuk fel hogy EAX-ben 0 van, kiveve a legalso 8 bitet (AL-t). 
> > Mennyi utasitas kell AL tartalmanak a felso harom byte-ba valo
> > masolasahoz

No, hat ez a feltetelezes nem szerepelt itt TomCat multkori 
leveleben. (Marmint, hogy a tobbi bit 0.) Ugy viszont kell meg egy 
utasitas az elejere:

  movzx eax,al
  imul  eax,01010101h

István
--  Istvan Marosi  --  http://www.sch.bme.hu/~marosi  --
--  Recosoft Ltd.  --  mailto:  --
+ - TP7 runtime error (mind) VÁLASZ  Feladó: (cikkei)

Hi!

Erdekes volt Sandor beszamoloja a multkori Coder-ben. Ha a forrasnak hinni
lehet, akkor nem a rutinokkal, hanem az Intel procikkal lehet gond.

>Jelenseg: a programot gyors gepen futtatva (>PII 300MHz) indulaskor
>  Runtime error 200 at ????:91 hibauzenetet ad (Nullaval valo osztas).

Irtatok site-ot is, melyen elemzik a problemat, sajna pillanatnyilag ezekhez
nem ferek hozza. Nekem igy latatlanba az a gyanum, hogy a CRT unit a Delay
eljarashoz szamitana ki egy idozitesi erteket elegge gagyi modon.
(Megjegyzem ez mar a TP6-ban sem mukodott igazan jol).

Ha a forrasnak hinni lehet, akkor a DIV elotti MOV meg nem tolti be CX-be az
55 erteket mikor a proci mar osztana is (nyilvan a parhuzamos vegrehajtas
kavar be) es eme szerencsetlen esetben a MOV elott CX erteke telleg nulla.
Vagy egyszeruen nem CX-szel oszt.

Majd javitson ki valaki. :)
Kerdesem csupan annyi, hogy TP6-os progik hogyan futnak??

Thx & bye,
DFace http://www.earthcorp.com/dface/ ICQ 5242066 "I am a pleasure machine.
Your mission is to turn me on." (Butt-Head) Sig compressed by EGA cruncher.
+ - 5x5 buvosnegyzet es -kocka (mind) VÁLASZ  Feladó: (cikkei)

Haliho!

Eleg regen, tema volt a 5x5-os varazsnegyzet, illetve
a belole szarmaztatott kocka.
 > Felado : Nagy Gabor
 > valaszt a kerdesemre az 5x5-os varazsnegyzettel kapcsolatban:
 > minden egyes lerakott pontnak paros szamu szomszedja kell,
 > hogy legyen.
En ezt ugy pontositanam, hogy minden elem kozeleben (+ alakban,
sajat magat is beleveve) paratlan szamu lerakott legyen. Sajnos,
hogy miert eppen csak 4 eredmeny jon ki, azt nem tudom, de
sikerult egy gyorsabb programot irni, ami akar XTn is veges idon
belul eredmenyt ad. Ha esetleg valaki kiprobalna...

Akkor az elmelet: gondolkozzunk visszafele, ha minden pont
kozeleben paratlan szamu lerakott van, celszeru egy
masktablat csinalni, amibe leirjuk, hogy az egyes
helyeken milyen elrendezes johet szoba, tehat 
pl: a bal felso sarokban 4 fele lehet az elrendezes:
 10  01  00  11
 0   0   1   1 
Az elejen egy ures tabla van, ami tele van "nemtudni" ertekkel.
Csinalunk egy ciklust (rekurziot): megyunk y:0-4 x:0-4, s minden
helyen megnezzuk, hogy a mask beleillik-e, ha igen beleirjuk es
ciklus (rekurzio) tovabb, kulonben egyet visszalepunk.
Akinek kell annak szivesen elkuldom a PAS forrast,
kb 200 sor, ezt inkabb nem masoltam bele a levelbe.
Ha nemcsak mail lehetosegem lesz, felteszem az ftpre,
(ftp://neutron.szfki.kfki.hu/pub/HIX_Coder), vagy
aki hamarabb elerne, az pls rakja fel.

pl:
 10100   ezt tukrozd jobbra, majd azutan
 01001   az egeszet le es kesz a 10x10
 10101   negyzet egyetlen megoldasa
 00010   a progim talalta
 01101   kb 10 masodperc alatt

 > Ezt at kene dobni terbe, peldaul 5x5x5-os.
 > (na jo, szukitsunk: ASM, C es/vagy Pascal).
Na akkor ezzel (is) megvolnanak. PAS forras elerheto nalam.
Igen, ez mar lassabb, de meg mindig gyorsabb, mint vegigprobalni
mind a 2^125 variaciot. Johet a virtu bocicsoki :) Amugy
csodak-csodaja, de egy rakas megoldasa van (az is lehet,
hogy csak a forgatas, tukrozes miatt).

Ja igen, mindket formanal tetszolegesen lehet valtoztatni a
meretet.

Bye,
     Toth 'Gabry' Gabor
     mailto:
     post:H-4001 Debrecen, P.O. Box 515, HUNGARY
+ - GCC?! (mind) VÁLASZ  Feladó: (cikkei)

Udv

GCC ben lehetseges az assembler bete?
hogyan?

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