Bin to Bcd

hoyuka hoya hoyuka at c2.hu
Mon Jul 18 14:48:00 CEST 2005


Hali!

Ez vmi ilyesmi ciklus volt:

for(int i=0; i<1024; i++) array[i]=0;

A leforditott kod meg valami ilyesmi lett:

xor eax,eax;
mov ebx, address of array
mov edx,1024;
label:
    mov [ebx],eax;
    add ebx,4
    dec edx
    jnz label

Irtam, hogy akkor forditja meg magatol a ciklust, ha lehetseges. Okos
gyerek ez a gcc :) Jo, mondjuk PIC-nel ezt lehet nem lehet megcsinalni...

Egyebkent kiprobalhatod te is, vmi ilyesmi parancssorbol a forditas:
gcc -O2 pelda.c -S -o pelda.S
A pelda.S az assembly file es AT&T szintaktikat hasznal.

udv.
hoyuka

Nya'ri Viktor said:
>> Ugy emlexem a ciklusvaltozot beletolta egyik regiszterbe, pl. EDX. Ezt
>> csokkentette: dec edx. Es a vegen egy sima jnz-vel vagy jz-vel elugrott.
>> Ha jol tudom x86-oson a dec allitja a Zero flag-et.... Igy nem kell se
>> test, se cmp.
>
> És ha a cikluson belül a ciklusváltozó értékére is szükséged van? Akkor
> már fejreáll a világ...
>
> -----------------------------------
>  Szponzorunk: http://tonerbolt.hu/
>

-------------------------------------
C2 MAIL: Levelezés felsõfokon. http://mail.c2.hu




More information about the Elektro mailing list