Hollosi Information eXchange /HIX/
HIX CODER 139
Copyright (C) HIX
1998-06-18
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 RE:C-beli File... (mind)  25 sor     (cikkei)
2 Re: Record vs record (mind)  16 sor     (cikkei)
3 Re: C-beli File... (mind)  36 sor     (cikkei)
4 Re: Vegyes (mind)  69 sor     (cikkei)
5 "386-os Processor Professzorra" lenne szuksegem! (mind)  26 sor     (cikkei)
6 OT: BC5.0 CD (mind)  11 sor     (cikkei)
7 C file + ASM, a kiraly meztelen? (mind)  83 sor     (cikkei)
8 Re: Temakor: Vegyes (mind)  17 sor     (cikkei)
9 Re: Nyelvek (CODER #137) (mind)  14 sor     (cikkei)
10 close(vita); (mind)  36 sor     (cikkei)
11 War (mind)  69 sor     (cikkei)
12 Re: C-beli File... (mind)  20 sor     (cikkei)
13 Meg mindig LEA (mind)  20 sor     (cikkei)

+ - RE:C-beli File... (mind) VÁLASZ  Feladó: (cikkei)

>Csakhogy eggyel tobbszor megy vegig mint kene. Ugy ertem a feof azutan
>billen be miutan mar a file vege utan megegyszer vegigfutott. Miert van ez?
>En sehogyan sem tudtam kitalalni.
>Itt a ciklus:
>
>adatok=fopen("data.dat","r+b");
>clrscr();
>do
> {
> fread(&output,sizeof(char),1,adatok);
> printf("%c",output);
>    }
>while(!feof(adatok));
~~~~
Ja, hogyha Te hatultesztelo ciklussal olvasol fajlbol...
Igy mar ertheto, mert amikor az utolso byteot kiolvastad
meg nincs mitol az EOF bebillenjen, -ervenyes fajlpozicion
allsz- tehat visszamegy a ciklus elejere, es probal meg egyet
olvasni. Itt a kov. fajlpoziciora akar ugrani ami nincs, de
hiaba allitodik be az EOF, csak az olvasasi kiserlet utan
vizsgalod. Ennyi.

A while sort ; nelkul ird a do helyere, a do-t dobd el.

VAti
+ - Re: Record vs record (mind) VÁLASZ  Feladó: (cikkei)

On 17 Jun 98 at 6:42,  > wrote:

> Ez valahol az a fajta ertelem keveredes mint a "Veletlen (!!!) eleresu
> memoria" A hatam borsozik amikor ilyet mondanak. Miert nem tudjak
> megnezni a masodik szotari alakot, hogy Kozvetlen Eleresu Memoria ami

Ha mar szoba hoztad:
A "random" se nem "veletlen", se nem "kozvetlen"!

A szotar szerint azt jelenti, hogy "talalomra, vaktaban". :-) Szo
szerint magyarra forditani a RAM-ot eleg ertelmetlen dolog, de ez
persze nem menti azokat, akik "veletlen hozzaferest" mondanak.

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

On 17 Jun 98 at 13:30,  > wrote:

> Csakhogy eggyel tobbszor megy vegig mint kene. Ugy ertem a feof
> azutan billen be miutan mar a file vege utan megegyszer
> vegigfutott. Miert van ez?

Rob tegnap mar valaszolt Neked, hogy ez nem bug, hanem feature. Igy
talaltak ki.

Nezd meg az feof-ot meg a getc-t, ezek egyszeruen makrok, latszik
beloluk, hogy nem is lehet mashogy, csak ugy, hogy akkor ad eof-ot,
miutan egy olvasas mar "nem sikerult".

> adatok=fopen("data.dat","r+b");

Miert "r+b"-vel nyitod meg? (Nem a "b" a kerdes, hanem az "r+".) Csak
olvasol utana belole, nem irsz. Eleg lenne az "rb" is. Igy viszont
("r+"-szal) lehetseges, hogy nem fog sikerulni a nyitas, ha egy masik
program mar megnyitotta a file-t deny write-tal.

> do
>    {
>         fread(&output,sizeof(char),1,adatok);
>         printf("%c",output);
>    }
> while(!feof(adatok));

Ehelyett inkabb ezt csinald:

  while (fread(&output,sizeof(char),1,adatok)) {
    printf("%c",output);
  }

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

On 17 Jun 98 at 3:16,  > wrote:

> >>    push 0a000h     ; 3 byte
> >>    pop es          ; 1 byte
>
> Ez tenyleg a legrovidebb, de a leglasubb is. Bar nem ront el egy regisztert
> sem.

A push-pop lassusagaval csinjan kell banni! A Pentiumoktol kezdve
nem is olyan lassu az! Mondjuk nem ez a szegmensregiszter feltoltes
a jo pelda ra, de vegyuk ezeket:

  xchg bx,cx    ; 3 orajel, nem parhuzamosithato

  push bx
  push cx
  pop  bx
  pop  cx       ; a 4 utasitas egyutt csak 2 orajel!!!

Azert a Pentium orajeleivel nagyon vigyazni kell, van ugy, hogy egy
program gyorsabb lesz attol, ha megfelelo helyre berak az ember egy
NOP-ot!!

Ha mar itt tartunk, akkor meg hozzateszem, hogy az

  xchg reg,[mem]

jellegu utasitas _nagyon_ lassu, mert ilyeneket szemaforokra szoktak
hasznalni, es az intelnel ugy gondoltak, hogy a programozok nem
ertenek a programozashoz, meg kell oket vedeni a hossza
debug-olastol, ezert ha keri az ember, ha nem, ez az utasitas
lock-olva hajtodik vegre es nem hasznalja a cache-t!

[... LEA EAX,[EAX+2*EAX] ...]

> Ezt en egy szoval sem allitottam hogy van ilyen [ax+2*ax]. Azert is irtam

Bocs, felreertettelek.

> A 286-os nem is ismerte a LEA-t.

Jo, most direkt nem ertelek felre: "A 286-os nem is ismeri a
scaled+indexed cimzesi modot." Ezt akartad fentebb irni, ugye. Mert
a LEA utasitast termeszetesen ismeri, mar a 8088-as is.

Egyebkent a LEA szinten olyan utasitas, amire Pentiumnal figyelni
kell, ha az orajeleket szamoljuk: Mivel cimszamitas van benne,
ezert ha a regisztert az utasitas elott modositjuk:

  inc eax
  lea eax,[eax+4*eax]

akkor a processzor egy varakozo orajelet (Address Generation
Interlock) iktat kozbe. Ugyanezen AGI miatt az alabbi ket
utasitasparos kozul a masodik a _gyorsabb_ :

  add ebx,4
  mov eax,[ebx]

  mov eax,[ebx+4]  ;
  add ebx,4        ; Ez a gyorsabb !

> Na ismet szereztem egy-ket rajongot magamnak.

:))

István
--  Istvan Marosi  --  http://www.sch.bme.hu/~marosi  --
--  Recosoft Ltd.  --  mailto:  --
+ - "386-os Processor Professzorra" lenne szuksegem! (mind) VÁLASZ  Feladó: (cikkei)

Kedves Coder Olvasok,


Van itt ti kozottetek egy olyan ember aki jol ert a
386-os processor programozashoz?

Aki erti ezeket a dolgokat, hogy pl. hogyan kell
protected modeba kapcsolni a gepet,
hogyan kell a regisztereket inicializalni, stb....
Mert nekem ilyesmi teruleten lenne egy jo par
kerdesem, ugyanis kernel irasba vagtam a fejszemet.... :))

Ha te ertesz ezekhez, akkor legy szives irj egy levelet
nekem es en megirom a kerdeseimet....

Elore is ezer koszonet!!!!!!

God Bless You! * Good Bye!
-----------------------------------
Zsolt N. P. from Dallas, TEXAS U.S.
mailto: 

_____________________________________________________________________
You don't need to buy Internet access to use free Internet e-mail.
Get completely free e-mail from Juno at http://www.juno.com
Or call Juno at (800) 654-JUNO [654-5866]
+ - OT: BC5.0 CD (mind) VÁLASZ  Feladó: (cikkei)

Sziszatok!

    Ha valaki rendelkezik az eredeti BC 5.0  (figyelem 5.0!!!) CD-vel , vagy
a 16.bites CodeGuard-dal (bc4.53)
kerem irjon nekem!

    Koszi


Bye/Udv  * Hofi *  --- mailto: ---
                /* --- mailto: --- */
+ - C file + ASM, a kiraly meztelen? (mind) VÁLASZ  Feladó: (cikkei)

Hello,

>Na szoval a problema a kovetekezo. Van egy ciklus ami filebol
>olvas ki  adatokat. Csakhogy eggyel tobbszor megy vegig mint kene

>do{
>        fread(&output,sizeof(char),1,adatok);
>        printf("%c",output);
> } while(!feof(adatok));

Miert iratod ki a EOF karaktert is? A lenyeg az hogy a EOF  eleresnel ki
kell a ciklusbol lepni.

/* foo.c */
#include <stdio.h>
#include <stdlib.h>
FILE *fp;
main()
{ char c;

fp = fopen("foo.c","rb");

/* az fread EOF-ra 0-t ad vissza */
while(fread(&c,sizeof(char),1,fp)==1){
printf("%c",c);
}
fclose(fp);

return 0;
}

Hadd fuzzem hozza meg azt hogy igy ahogy van ez egy nagyon
kevesse optimalizalt megoldasnak nez ki. Ha egyesevel karaktereket
akarsz kiolvasni akkor nyisd meg a file-t text modban es hasznalj
fgetc-t. Attol nem gyorsabb sem jobb a progi hogy fread-del dolgozol.
epp ellenkezoleg. Ugyanakkor mindig tesztelni kell hogy sikerult-e
az illeto adatot beolvasni, "defenziv" programozas ez es hamar
megterul.

Az fread-et ellenben akkor kell hasznalni mikor egy blokk adatot
akarsz beolvasni egyszerre, mondjuk otszaz bonyolult strukturat es
azt majd a memoriaba feldolgozod.

mas,

> Ajanlom figyelmetekbe a home page-emen talalhato aprocska OOP-s
> erdekesseget, nem volt kepem bevagni ide az egeszet, reszletekben
> viszont nem olyan elvezetes :)

> OOP Suxx: http://ond.jupiter.vein.hu/~fiery/oop.html

Nem, nem es nem. Nem igaz. Ez kacsa vagy vicc? vagy hazugsag?
mindenki valasszon izlese szerint. Bjarne Stroustrup soha
nem mondta azokat amiket a lapon irsz. Soha! Ezzel egyutt
(es ezt az internetnek koszonhetjuk) minimum havonta felmerul
a kerdes a comp.lang.c++ -ban esetenkent B.S. veszi a faradsagot
hogy cafolja de mostanra erthetoen megunta.

Miklos Tamas-nak meg azt uzenem hogy annyival tartozik az
igazsagnak hogy ezt a lapon feltunteti. Mert van aki komolyan
veszi (lehet hogy o maga is?), es biztos hogy senki nem lesz
halas amikor kiderul hogy legbolkapott hanta.

csak jot,

szindbad.

ps. nezzunk szembe az igazsaggal ha valami suxx akkor az ASM
biztos hogy igen, mert mit nyujt? lekot egy platform mellett,
rettenetesen obskurus meg egy egyszeru rutin is, (szeretnek
egyszer egy quiksort-ot asm-ben latni es azt is ahogy egy
"so called" assembler magus ebbe belenyul), zero programozasi
gyakorlatod lesz utana, eppen mivel bonyolult dolgokat nem tudsz
csinalni, tiz ev ASM utan se tudod mi az hogy simple linked list. Es
a dolgok ami annyira jol hangzottak kilencvenes evek elejen  vagesz
grafika es zene stb manapsag mar szofteveresen sokkal profibban
megvalosithato. Azt mondod szupergyors gyors putpixel ASM-ben en
erre jot kacagok es azt mondom szupergyors  glutSolidSphere
OpenGL-ben megvilagitassal, arnyekolassal, texturaval, 3DFX kartya
tamogatassal, mindennel, hat ossze lehet hasonlitani a kettot?

az ASM leket kapott szenes gozos am a sok matroz fel urhajosnak
menni... Nos, ohajt valaki kiszallni?
+ - Re: Temakor: Vegyes (mind) VÁLASZ  Feladó: (cikkei)

Hi all!

Uj beszallo vagyok, mit kell mosogatni??!! :)))))))

 wroted:
>A 286-os nem is ismerte a LEA-t.
Dehogynem!!
Ahogy eszrevettem, mindenki ir mindent, csak a lenyeget nem, ami egy
esetleges kezdo olvasonak hasznara valhat.

Megpedig: lea [reg], [vmi]
...ekkor, DS:[reg]-be kerul a megadott [vmi] memoriabeli seg:ofs cime.

Udv: TD at 

UI: Huuuu, ezt aztan jol kezdem...
::))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+ - Re: Nyelvek (CODER #137) (mind) VÁLASZ  Feladó: (cikkei)

> >Nem tudsz olyat sem mondani amit commodore basic-ben nem lehetne
> >megcsinalni sem pedig olyat amit csak SNOBOL-ban lehet.
> OK,varom azt a commodore basic-ben irt programot, amivel kiirsz modjuk
egy
> 10 karakteres szoveget a _keretre_.

En a regi szep C64-es idokben lattam ilyet egy jatekban. Az pontosabban
ugy nezett ki, hogy a keret folott futott (jobbrol balra) valamilyen
szoveg valami szines hatterrel. Ezen nekem is leesett az allam, mert
addig azt hittem, hogy ilyet keptelenseg csinalni.

Sziasztok:
Buddha
UIN 13212243
+ - close(vita); (mind) VÁLASZ  Feladó: (cikkei)

Udv mindenkibe!


Ismetelten nem akarok senkit megserteni, de ami itt megy, az immaron tullo
minden hataron.... Keptelen vagyok kovetni, ki irta ezeket, de azert
hozzaszolok:

>>  Ja, meg egy mukk arrol, hogy miert nem szeretem a Pascalt. Mert nem
>> letezik. Mar senki sem hasznalja...
> En hasznalom... Most is van benne egy 2000+ soros kis programom allando
> hasznalatban / modositasban, igaz, a VESA-s
> kepkirakas/egerkezeles/ilyesmi az ASM benne, de a fo reszek nem. Tudom,
> jobb lenne a C, csak hat...

Nekem pedig egy 51000+ (otvenegyezer) soros programom irodik 3+ eve Turbo
Pascalban (no igaz, hogy ebbol _csak_ 13000+ sor Pascal, a tobbi ASM :)
Ezt a programot a vilag 15+ orszagaban 100+ ember hasznalja. Ennyit arrol,
hogy a Pascal nem letezik es hogy senki sem hasznalja......

Fel eve egy gyanus kulseju urge megprobalta ramtukmalni a C++ -t (egyetemi
eloadas kereteben :), de valahogy nem sikerult neki - megtanulni
megtanultam, azonban meg sosem volt szuksegem ra. Ha a pasi 3 evvel elobb
kezdi el a C++ dicsoiteset, talan azt valasztottam volna. De 1 MB forrast
atirni Pascalbol C-be nem kis melo...

A Pascal igenis letezik!
A C is letezik!
Az ASM is letezik!
Mind egyforman leteznek!
Es a tobbi programozasi nyelv sem silanyabb ezeknel!

Zarjuk le a vitat, gyerekek...
Alt-F4 ;)


Fiery - author of sysinfo tool ASMDEMO
+ - War (mind) VÁLASZ  Feladó: (cikkei)

Hi,

>> OOP Suxx: http://ond.jupiter.vein.hu/~fiery/oop.html
>Nem, nem es nem. Nem igaz. Ez kacsa vagy vicc? vagy hazugsag?

Akar mindegyik egyszerre :) De azt hittem, ez egyertelmu...

>Miklos Tamas-nak meg azt uzenem hogy annyival tartozik az
>igazsagnak hogy ezt a lapon feltunteti. Mert van aki komolyan
>veszi (lehet hogy o maga is?), es biztos hogy senki nem lesz
>halas amikor kiderul hogy legbolkapott hanta.

Azert tettem fel a home page-emre, mert ugy erzem, annak ellenere, hogy
kitalacio, rengeteg igazsag van benne! A kamurol szolo szoveget pedig amint
tudom, felpakolom... Hogy az igazsagnak ne tartozzak semmivel!

>ps. nezzunk szembe az igazsaggal ha valami suxx akkor az ASM
>biztos hogy igen, mert mit nyujt?

Gyors, rovid kodot, es azt, hogy benne mindent meg tudsz csinalni, nem ugy,
mint a magasszintu nyelvekben! Akinek azonban nem tetszik, az ne
hasznalja... Latni kellett volna azt a felvidult abrazatot, amikor a kedvenc
Pascalos haverom megirta elete elso ASM rutinjat... Aztan megmutattam neki,
hogy ugyanaz a rutin hogyan is nez ki Pascalban (Intr($10) es hasonlok
hasznalataval), es vegkepp a szivebe zarta az ASM-et... Egyaltalan, Sindbad,
lattad mar debuggerben, hogy nez ki egy C-s vagy Pascalos megszakitashivas?
Milyen hosszu es korulmenyes az egesz? ASM-ben egy utasitas, C-ben-Pascalban
pedig egy tobb szaz bajt hosszu, tobb szubrutinbol allo procedura...

>lekot egy platform mellett,
>rettenetesen obskurus meg egy egyszeru rutin is

Igy igaz, de nem is arra talaltak ki, hogy egy komplett ugyviteli szoftvert
vagy egy 3D suxx jatekot ebben irjanak meg... Inkabb "manko"-nak
csufolhatnank,
hiszen minden valamire valo magasszintu nyelvet kepes tamogatni,
kiegesziteni.

>tiz ev ASM utan se tudod mi az hogy simple linked list

Eh, 7 ev ASM utan nem tudom... Nem ugy szoktak leforditani, hogy "lancolt
lista"? Mert arrol mar hallottam valamit ;) De me'g _soha_ nem volt ra
szuksegem! Me'g akkor sem, amikor konkretan lancolt listaval kellett volna
megvalositani egy programozasi feladatot. Akkor is meg tudtam oldani anelkul
:)

A tobbiek bezzeg szivtak a fogukat, allandoan fagyott a lancolt listas szupi
stuffjuk, habar ... neha mondjuk elindult ... es csak a felenel szallt el
"Memory allocation error" es hasonlo uzenetekkel :(

>az ASM leket kapott szenes gozos am a sok matroz fel urhajosnak
>menni... Nos, ohajt valaki kiszallni?

Ja, hat ha a programozok mondjuk 1 GHz-es Merceden kezdtek volna Windows
2000 alatt Visual C++ 623-as verzioval amiben csak hajigalni kell az
objektumokat, akkor valoszinuleg sosem lett volna szukseg ASM-re... A szivem
szakad meg, amikor a koleszben a szobatarsam gepen (iMMX-225, 6 G vinyo, 64M
RAM) a Win95+Explorer4 ugy kezdi, hogy 70 mega swap fajl!! Es akkor me'g
semmi sincs elinditva :(((((
Ba'nna' a tetu, ha legalabb stabil lenne :>


* De volt me'g ido, amikor nem a hardvert vette'k a szoftverhez, hanem
forditva!! *


Uff,

Fiery - author of sysinfo tool ASMDEMO
+ - Re: C-beli File... (mind) VÁLASZ  Feladó: (cikkei)

>adatok=fopen("data.dat","r+b");
>clrscr();
>do
>{
>fread(&output,sizeof(char),1,adatok);
>printf("%c",output);
>
>    }
>while(!feof(adatok));
>fclose(adatok);

Itt van a megoldas:

if((adatok=fopen("adat.dat","r+b"))==NULL) {fprintf(stderr,"Open
error"); exit(2);}
while (!feof(adatok)){
fread(&output,sizeof(char),1,adatok);
printf("%c",output);
}
fclose(adatok);
+ - Meg mindig LEA (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

 irta:
>lea eax, font
>lea eax, [eax+ebx*8]

Szerintem ez ugyanaz mint: lea eax,font[ebx*8]

>A 286-os nem is ismerte a LEA-t.
En ugy tudom, hogy mar a 8088-on is volt, csak ugye ertelemszeruen
nem a 32 bites valtozata.

>Na ismet szereztem egy-ket rajongot magamnak.
:))

Udv
Emze

ps.: Azert sem szallok be a pascal-C-ASM vitaba!
(Pedig neha nagyon vissza kell fogni magam)

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