Hollosi Information eXchange /HIX/
HIX CODER 662
Copyright (C) HIX
1999-12-04
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Adalek a proci tortenelemhez (mind)  10 sor     (cikkei)
2 Re: forditas (mind)  22 sor     (cikkei)
3 Re: (k++)*(k++) (mind)  104 sor     (cikkei)
4 Re: forditas -->Mc (mind)  54 sor     (cikkei)
5 Java (mind)  35 sor     (cikkei)
6 TP-ben nyomtatás... (mind)  26 sor     (cikkei)

+ - Adalek a proci tortenelemhez (mind) VÁLASZ  Feladó: (cikkei)

Hello CODERek!

Gyanitom, hogy  kevesen tudjak, hogy a PX hajnalan
a 8086-os processzorhoz (PC XT) szuletett egy
CP/M86, a CP/M PC-s valtozata. A Linuxhoz hasonloan
konzolt lehetett valtani, es multitaskos (max 4) volt.
M$ mikor is lett ilyen?

Udvozlettel
Andras
+ - Re: forditas (mind) VÁLASZ  Feladó: (cikkei)

On Fri, 3 Dec 1999 19:01:52 EST,   wrote:

Teljesen igazad van :-))) Errol en nem tudtam...

>  add cx,1   ; 81 c1 01 00  vagy  83 c1 01

Azert itt nincs teljesen: az egyiknel word-os konstans van a masiknal
byte-os ;-) Ekkor meg tulajdonkepp nem serult az elv...

>  add ax,1   ; 81 c0 01 00  vagy  83 c0 01  vagy  05 01 00

A harmadikrol tudtam: ez a beepitett AX esete...
(Akosnak: optimalizacios celokbol a gyakori AX-el vegzett muveletekhez
az INTEL kulon opkodot generalt ...)

>  or  ax,cx  ; 09 c8        vagy  0b c1

Ez a lenyeg: reg->r/m es r/m->reg irany letezik (kulon opkoddal), es
ha felcserlejuk a reg es r/m-t ugyanazt kapjuk. Ezt nem tudtam :-(((
Az INTEL bit-pocseklasa a bunos :-DDD

ZsZs.
+ - Re: (k++)*(k++) (mind) VÁLASZ  Feladó: (cikkei)

On  3 Dec 99 at 6:50,  wrote:

> Ezek az operatorok _egysegesek_ (vagy azoknak kellene lenniuk) az
> osszes C es C++ fordito eseteben.

Az operator egyseges, a problema nem azzal van.

On  3 Dec 99 at 16:23,  wrote:

> >Peldaul (k++)*(k++) 12-ot ad vissza, ha k 3 volt. A
> >vegso k ertek pedig 5 lesz.
> Ennek ugyanannyinak kellene lenni akarmilyen forditoval, mert
> jobbrol balra vagy balrol jobbra ugyanaz.

Nem. Nem a kiertekeles sorrendje miatt lehetne kulonbseg a forditok
kozott. Hiaba van zarojelezve is a k++, az sem jelenti azt, hogy
eloszor azt kell vegrehajtani teljes egeszeben a novelessel egyutt.
A kifejezes kiertekelese szempontjabol ugyanis k++ erteke k eredeti
ertekevel egyenlo, csupan van a dolognak egy _mellekhatasa_ is
(marmint, hogy noveli k-t). A mellekhatas vegrehajtasanak ideje
viszont fuggetlen lehet a kifejezeskiertekelestol. Hogy miert, azt ne
kerdezd, igy van definialva (pontosabban igy nincs definialva) a
szabvanyban, es kesz.

Egyebkent az, hogy a k erteke a legvegen 2-vel tobb lesz egy ilyen
kod eseten, az sincs definialva!!!! Erre ugyanis az vonatkozik, hogy
egy nem definialt esetben a fordito azt tehet, _amit_csak_akar_.
Tehat akar el is hagyhatja a ++ -okat, vagy mas szornyuseget is
tehet. Persze a tipikus forditok valamilyen tobbe-kevesbe normalis
dolgot fognak tenni, de erre szamitani nem szabad.

Idemasolom a C-FAQ-bol az idevonatkozo pontokat:

Section 3. Expressions

3.1:    Why doesn't this code:

                a[i] = i++;

        work?

A:      The subexpression i++ causes a side effect -- it modifies i's
        value -- which leads to undefined behavior since i is also
        referenced elsewhere in the same expression.  (Note that
        although the language in K&R suggests that the behavior of this
        expression is unspecified, the C Standard makes the stronger
        statement that it is undefined -- see question 11.33.)

        References: K&R1 Sec. 2.12; K&R2 Sec. 2.12; ANSI Sec. 3.3; ISO
        Sec. 6.3.

3.2:    Under my compiler, the code

                int i = 7;
                printf("%d\n", i++ * i++);

        prints 49.  Regardless of the order of evaluation, shouldn't it
        print 56?

A:      Although the postincrement and postdecrement operators ++ and --
        perform their operations after yielding the former value, the
        implication of "after" is often misunderstood.  It is *not*
        guaranteed that an increment or decrement is performed
        immediately after giving up the previous value and before any
        other part of the expression is evaluated.  It is merely
        guaranteed that the update will be performed sometime before the
        expression is considered "finished" (before the next "sequence
        point," in ANSI C's terminology; see question 3.8).  In the
        example, the compiler chose to multiply the previous value by
        itself and to perform both increments afterwards.

        The behavior of code which contains multiple, ambiguous side
        effects has always been undefined.  (Loosely speaking, by
        "multiple, ambiguous side effects" we mean any combination of
        ++, --, =, +=, -=, etc. in a single expression which causes the
        same object either to be modified twice or modified and then
        inspected.  This is a rough definition; see question 3.8 for a
        precise one, and question 11.33 for the meaning of "undefined.")
        Don't even try to find out how your compiler implements such
        things (contrary to the ill-advised exercises in many C
        textbooks); as K&R wisely point out, "if you don't know *how*
        they are done on various machines, that innocence may help to
        protect you."

 ....

11.33:  People seem to make a point of distinguishing between
        implementation-defined, unspecified, and undefined behavior.
        What's the difference?

A:      Briefly: implementation-defined means that an implementation
        must choose some behavior and document it.  Unspecified means
        that an implementation should choose some behavior, but need
        not document it.  Undefined means that absolutely anything
        might happen.  In no case does the Standard impose
        requirements; in the first two cases it occasionally suggests
        (and may require a choice from among) a small set of likely
        behaviors.


A tobbi resze is erdekes a FAQ-nak, erdemes elolvasni...
A www.faqs.org-on keressetek.

István
+ - Re: forditas -->Mc (mind) VÁLASZ  Feladó: (cikkei)

Hi inet,"HIX CODER" >!

[near conditional jump 386-ostol]
iC> Ezt én nem tudtam...
hat erre csak ezt tudom mondani:
-------------------[nearjnc.asm]-------------------
mov ah,0eh
mov al,'a'
clc
db 0fh,083h,02h,00h   ;jnc near j1
mov al,'b'
j1:
int 10h
ret
-------------------[nearjnc.asm]-------------------
ha minden jol megy, ez a 'b' betut fogja kiirni,
mivel ottan figyel a near conditional jumpod....;))))


[assembly = (1 az egyben) = gepikod]
iC> Teljesen igazad van, csak en az egy utasítason a ADD CX, 1-sort
iC> ertettem (szerintem így, egy osszetartozo egesz), s nem onmagaban a
iC> ADD-ot. Es ebbol csak egyfele gepi kod keletkezhet, vagyis egyazon
iC> assembly forrasprogrambol csak egyfele gepikod allhat elo (mar ha
iC> kikapcsolja az ember a fordito NOP bepakolaszasat)...
na akkor nezzel erre a peldara is ra...
--------------------------[addcx.asm]--------------------------
sub cx,cx
db 81h,0c1h,01h,00h     ;add cx,1    /add cx,imm16  leforditva
db 83h,0c1h,01h         ;add cx,1    /add cx,imm8   leforditva
mov al,cl
mov ah,0eh
add al,'0'
int 10h
ret
--------------------------[addcx.asm]--------------------------
nos... ha megnezed, kiirom, hogy hanyszor adtam egyet
ahoz nyamvadt cx-hez... es a proggy kis is irja... 2...
azaz, 2x adtam hozza egyet....;)) mivel mindket db vel
kezdodo sor egy 'add cx,1'-et takar.... es ez szerintem
bizonyitek arra, hogy az assembly nem felel meg 1:1 ben
a gepi kodnak... es eppen emiatt van igy... mert te az
asm forditodnak nem tudod megmondani, hogy te most
az imm8 vagy az imm16 valtozatot akarod, pedig neha bizony
hasznos lenne, ha meg tudnad mondani... mivel akkor esetleg
mashol meg nem kene dummy nopokat betenni, amivel biza
igen tisztessegesen lehet lassitani a kodot... ;)))))
/jo, elismerem, hogy igen keves esetben lehet erre szukseg,
de akkor is, neha szukseg van ra, es assemblyben nem tudod
hogy megmondani a forditonak, hogy mejik valtozatot akarod
hasznalni, tehat a szvsz a gepi kod egy joval tagabb dolog,
es az assemblyben csak egy reszet tudod kihasznalni...

na tovabbi jo kodolast.... Mc
+ - Java (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

Szeretnek appletbol kepet kirajzolni, igy csinalom:
void init()-ben:
notImage   = getImage(getCodeBase(), "not.gif");	
crossImage = getImage(getCodeBase(), "cross.gif");
utana a paint()-ben:
 g.drawImage(crossImage, c*xoff + 1, r*yoff + 1, xoff-2, yoff-2, this);
  
a notImage, crossImage Image tipusu. Miert nem megy vagy, hogy
kell ezt megvalositani? Egyebkent igy van a JDK exam.-ban is, de
ott se megy. A fileok termeszetesesn leteznek.

A masik porblema a kov:
  public void mouseReleased(MouseEvent e) {
      int x = e.getX();  int y = e.getY();
      Dimension d = getSize();

         int xoff = d.width / N;
         int yoff = d.height / N;
	 int xs   = x / xoff;	 int ys   = y / yoff;
//	 mkmove(xs*N+ys,1,2);
	 tabla[xs][ys]= 1;
//	 int st = findmov(1,2);
//	 tabla[st/N][st %N] = 2;
//	 makemove(st,2,1);
	 repaint();
	}
Igy van egy kirajzolt tablam es ha klikelek valhova, akkor beXeli. 
Ha a kommentezett sorokat is beleveszem, akkor nem frissiti az 
appletet (csak ha reload-ra kattintok), vagy nem is csinal semmit.
A fv.-ek sajatok, public-ok. Itt mi lehet a problema??
Elore is koszi, es ha lehet magan mailben kellenne a valasz,
hogy minel hamarabb megkapjam.
bye...
+ - TP-ben nyomtatás... (mind) VÁLASZ  Feladó: (cikkei)

Hy!

Hogyan lehet azt megoldani, hogy TP-ben
betűnként nyomtassak?
Azt meg tudom oldani, hogy a nyomtató leír
egy betűt, és sor emel. Utána leírja a következőt,
és sort emel......
De azt nem tudtam megoldani, hogy pl:
kiír egy betűt, és vár 1 mp-et, utána kiír egy 
másik betűt, (soremelés nélkül).
A TP könyvben láttam egy példát,
de ott egy file tartalmát nyomtatta ki
betűnként. Megpróbáltam átalakítani, 
hogy a képernyőn beírt szöveget írja ki,
de nem sikerült.

És hogyan lehet azt megcsinálni, hogy a
nyomtató írjon valamit, és utána a 
lapot kiadja.
Van egy majdnem jó megoldás, csak az
a lap kiadása után behúz egy újabb lapot.

--
Üdvözlettel:
Czárt András (Bandi)


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