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