Bin to Bcd

Nya'ri Viktor office at flexelec.hu
Mon Jul 18 14:56:25 CEST 2005


Nem, annyira nem izgat a kérdés, csak elméleti felvetés volt.


hoyuka hoya wrote:
> 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...




More information about the Elektro mailing list