Logo GNU
Kodovani P°edchozφ Nßsledujφcφ Obsah

32. Testovacφ smyΦka z BCC


Je to kompilovßno pod BC2.0 s optimalizacemi na max. rychost
   ;
   ;    main()
   ;
        assume  cs:_TEXT
_main   proc    near
        enter   2,0             #Tohle je opravdu hodn∞ pomalΘ na pentiu
        push    si              #zbyteΦnΘ...
        push    di
   ;
   ;    {int i,a=1,b=0;
   ;
        mov     si,1            #do registru se to neve╣lo...
        mov     word ptr [bp-2],0
   ;
   ;     for(i=0;i<9999;i++)
   ;
        xor     di,di
        jmp     short @1@98     #To, ╛e smyΦka prob∞hne, u╛ nepoznal...
@1@50:
   ;
   ;            a=a+b,b=2*a;
   ;
        mov     ax,si           #v GCC to byly 2 instrukce a tady 5...
        add     ax,word ptr [bp-2]#A leze do pam∞ti..uprost°ed cyklu...
        mov     si,ax
        shl     ax,1
        mov     word ptr [bp-2],ax
        inc     di              #cyklus neobrßtil
@1@98:                          #teda dal╣φ instrukce na porovnßnφ
        cmp     di,9999
        jl      short @1@50
   ;
   ;     printf("%i\n",a);
   ;
        push    si              #Volß printf
        push    offset DGROUP:s@
        call    near ptr _printf
        pop     cx              #tady by takΘ ╣lo ╣et°it...
        pop     cx
   ;
   ;    }
   ;
        pop     di              #a zase zbyteΦnosti..
        pop     si
        leave                   #a╛ sem.
        ret


P°edchozφ Nßsledujφcφ Obsah

Dotazy a p°ipomφnky ohledn∞ strßnky posφlejte na hubicka@paru.cas.cz