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