Hollosi Information eXchange /HIX/
HIX CODER 136
Copyright (C) HIX
1998-06-16
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re: Pascal-Asm (mind)  13 sor     (cikkei)
2 hw felismeres, lea vs. mov (mind)  19 sor     (cikkei)
3 Re: ES=0a000h (Re: Re: Kis tanfolyam) (mind)  48 sor     (cikkei)
4 ez & az (mind)  83 sor     (cikkei)
5 hmmm nem semmi (mind)  9 sor     (cikkei)
6 RE: kis tanfolyam (mind)  5 sor     (cikkei)
7 File muveletek bit szinten (mind)  18 sor     (cikkei)
8 Re: Ismet itt vagyok (mind)  16 sor     (cikkei)

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

Bocs, hogy beleszólok, csak magánvélemény....

Miért kell cikizni a nagy ASM-eseknek a csóró Pascal-osokat, meg C-seket?
Ezek a nyelvek mára fejlett objektumorientált nyelvekké feljlödtek, majd
mindent meg lehet velük csinálni, s ami fontos, ezerszer gyorsabban, mint
asemblerben. Proálj meg ASM-ben Win95-ös adatabáziskezelö programot, egy ki
ügyviteli beütéssel legyártani ASM-ben! Biztos, hogy megy?

Igaz!!! Mielött még lebaltáznak: 250K-ban görgö képernyon futó szinesben
csillogó vonalakat valóban nem lehet csinálni sem Pascalban, sem C-ben. De
azert nem kelene leirni a többi nyelvet sem.

Horty
+ - hw felismeres, lea vs. mov (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

Hardware felismeres teren meg egy dolog, amit ha jol lattam, nem 
emlitettetek: int 11h (bar nem egy nagy durranas).

###

Mas: 8085 utan kisse zuros ez a 8086 szegmens-buvoles nekem. Meg tudnatok 
mondani, hogy mi a kulonbseg az alabbi MASM "progi" 2 sora kozott?

        .data
string  db        "blabla"
        .code
        lea       dx,string
        mov       dx,offset string


Elore is koszonom,
marky a germanhonba szakadt neme[s|csek] - 
+ - Re: ES=0a000h (Re: Re: Kis tanfolyam) (mind) VÁLASZ  Feladó: (cikkei)

Hali!
> 
> Az en moccerem: (ez a leheto legrovidebb kodu!)
>  ASM
>    push 0a000h     ; 3 byte
>    pop es          ; 1 byte
>  END
> hatranya hogy 286-ra forditas opcio kell hozza, de hat ki az aki
> XT-re fordit ilyesmit? :)
Ezzel en szivtam 1szer egy baromi nagyot.
Egy assemblert csinaltam, amit a GNU assemblerenek a modositasaval 
ertem el. Sajnos az eredeti GNU assembler AT&T szintaxist hasznal es 
emiatt szinte teljesen at kellett irni, mert a "normalis" 
programozonak picit szokatlan az AT&T szintaxis. :-)
Az assembler protected modban futott es protected modu kodot is 
generalt. 

Neha elofordult a forditando kodokban is a fenti utasitassorozat. 
A lenyeg, hogy en logikusan azt gondoltam, hogy a protected modban a 
stack 32 bitenkent no vagy csokken. Igy nem is nagyon teszteltem az
ilyen utasitasparok altal generalt kodot.
Viszont a proci protected modban is tudja 4 byte helyett 2 byte-tal 
novelni vagy csokkenteni a stack pointert. Szerintem ez hujeseg.

Szoval egyszer csak elkezdtek jonni a generalis faliorak olyan 
egyszeru kodokban is ahol nem kellett volna neki jonnie.
Aztan egy kis gepi kodu nezegeteskor jottem ra, hogy elcsuszik a 
stack.
Sajna arra most nem emlekszem es nincs is nalam pentium konyv, hogy a
"push 0a000h"  tett le csak 2 bytetot a stackre vagy a 
"pop es" vett csak fel 2 byte-ot a strackrol, de szepen elcsuszott a 
stack es onnantol mar ki tudja, hogy mi volt a stacken.

Termeszetesen egy utasitas prefixxel meg lehetett neki mondani, 
hogy ilyen esetekben kovetkezetesen 2 vagy 4 byte-tal novelje vagy 
csokkentse a stacket.
En ugy oldottam meg a dolgot, hogy mindig 4 byte-onkent hasznalja a 
stacket, mert szerintem ez tisztabb.
Gondolom ennek akkor lehet jelentosege a jobb forditoknal, ha pld 
stack meret optimalizalast valasztok akkor az ilyen esetekben 2 csak 
byte-osan hasznalja a stacket.

Persze a kereskedelmi forgalomban is kaphato assemblereknek ezt a 
helyzetet rendesen kell lekezelniuk, mert kulonben eladhatatlanok 
lennek. Ugyhogy aggodasra semmi ok, csak azert irtam ezt a cikket, 
hogy okuljatok. :-)))))

Pisti
+ - ez & az (mind) VÁLASZ  Feladó: (cikkei)

> C-ben filekezeles 

ASCII file-ok olvasasara a kovetkezo modszert ajanlom:

FILE      *fp;
char buf[200];

if ((fp = fopen("nev","r")) == NULL ){
	/* hiba jelzes ide */
} else {
	while(fgets(buf,sizeof(buf),fp) != NULL){
		/* 
		   dolgozd fel a buf valtozot, sscanf-val 
                   vagy mas modon
		*/
	}
	fclose(fp);
}

egyszeru es minden esetben jol mukodo megoldas ez, egyreszt 
atiranyitott inputnal se akad ki ha netan stringet akarsz 
beolvasni mint a scanf es a gets-gel ellentetben tul sem 
fog soha tulcsordulni a buf. Persze ha a sor hosszabb mint 
200 karakter akkor a maradekot levagja.

Es egy tetel:

scanf sucks,

Es a kovetkezmeny:

Akinek a programjaban scanf talalhato az nem ert a C-hez.

mas,

> Megprobalok objektiv maradni.

Objektivan teves informaciokat terjeszteni?

> Igaz az viszont hogy a forditott kod az kb 10%-al lasabb
> mint a C de ez sem mindig igaz.

Igaz, hogy nem igaz? A generalt kod sebessegenek elvileg
semmi koze a nyelvhez amelyben irodott. Hogy egy adott fordito
egy bizonyos problemat milyen modon optimalizal ez a sajat dolga.

> A hiresztelesekkel ellentetben nem tudtok olyat mondani amit 
> ne lehetne pascalban megcsinalni es C-ben igen.

Nem tudsz olyat sem mondani amit commodore basic-ben nem lehetne
megcsinalni sem pedig olyat amit csak SNOBOL-ban lehet. Ilyeneket
hogy ebben ezt meg lehet abban meg nem csak olyanok mondanak akiknek
fogalmuk sincs a programozasrol. Az egy teljesen mas kerdes hogy
egyes nyelvekben konnyebben lehet egy bizonyos dolgot megcsinalni,
pl SNOBOL-ban ha jol emlekszem szavakkal lehetett indexelni egy tombot.
Fura nyelv az biztos.

> hordozhatosagra torekszel, (ami azert a pascalnal nem a legjobb) 
> akkor a C kodod nem lesz igazan gyors

a hordozhatosagnak es gyorsasagnak semmi koze egymashoz. Ha ANSI C-ben
irod a kodot akkor hordozhato ha optimalizalt akkor gyors. Hol a
kapcsolat?

> Vegul is szerintem hulyeseg azon vitatkozni melyik a jo nyelv. Mindnek
> vannak elonyei es hatranyai is. Kinek mi a fontos. Na meg ki mit ismer

A lenyeges dolog az hogy az oktatasban meg kellene adni a szabadsagot
hogy azt
nyelvet tanuld meg amelyikre ugy erzed hogy szukseged lesz. Nehogy azert
tanulj Pascalt mert a tanitto bacsi csak azt tudja. Tisztan meg kell
mutatni hogy ime ezek a lehetosegek es eddig er a takaro, tudd, hogy
mibe vagsz bele.

Velem egyszer lehuzattak ket evig a basic-et aztan nyomattak a Pascalt
hogy
vegul mikor ide jottem kideruljon hogy itt FORTRAN vagy C nelkul
teljesen 
nulla vagy, azert ezt jo lett volna elore tudni.

ezert vagyok reggel mindig zsembes,

szin.
+ - hmmm nem semmi (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

Ezt nezzetek meg. Elismeresem a tulajnak.

http://www.hszk.bme.hu/~s5098raz/codepage/

csao

Cserko
+ - RE: kis tanfolyam (mind) VÁLASZ  Feladó: (cikkei)

Hi!
	>Nem kell it ganyolni, kod szempontjabol a legjobb:
	>push 0a000h
	>pop es
	Miert is?
+ - File muveletek bit szinten (mind) VÁLASZ  Feladó: (cikkei)

Hello!

ugy emlexem, valaki itt kerdezte, hogy file-t lehet-e bitenkent olvasni.
a coder-l listan most irta valaki, hogy a BT utasitassal, ha a celoperandus mem
oria,
akkor nem csak egy wordon belul lehet cimezni, hanem azon tul is. ugy probaltam
,
hogy 16 bites regisztert hasznaltam, es muxott. elojelesen kezeli a regisztert,
vagyis 16 bites regiszterrel max 2^15 bittel arrel levo bitet lehet vizsgalni.
32 bites reg-nel ez gondolom 2^31, ez valoszinuleg mar eleg lesz.
szoval a filebol beolvasod az adatokat egy memoriateruletre, es a BT-vel olvash
atod
agyba-fobe :)

ha nehezen ertheto, amit irtam, akkor bocs. (kicsit faradt vagyok)

Bye,
	Panther
+ - Re: Ismet itt vagyok (mind) VÁLASZ  Feladó: (cikkei)

On 14 Jun 98 at 2:13,  > wrote:

> De segitek pl. 3-al valo szorzas is egy Lea
> Lea eax, [eax+eax*2]
> Azert erdemes az eax-el csinalni mert gyorsabban vegzi a proci a szamitast
> de ez minimalis dolog.

Nem. CSAK eax-szel (pontosabban 32 bites regiszterrel) lehet ilyet
csinalni, mert 16 bites cimzeskor teljesen mas cimzesi modokat ismer
a processzor, mint 32 bitesen. Szoval olyan nincs, hogy [ax+2*ax] de
meg olyan sincs, hogy [bx+2*bx]. A 32 bites uzemmodban a cimzest
teljesen ujrairtak a 386-os mikrokodjaban, teljesen mashogy mukodik. 

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