Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- global _draw_julia
- section .data
- pol: dd 0.5
- ptr1: dd 122
- ptr2: dd 224
- ptr3: dd 624
- firstx: dd -2.0
- firsty: dd -1.5
- krok: dd 4.0
- section .text
- _draw_julia:
- ;prolog
- push esi
- push edi
- push ebp
- mov ebp, esp
- sub esp,32
- ;stack frame
- ; -32 -28 -24 -20 -16 -12 -8 -4 +0 +16 +20 +24 +28
- ; EBP->[x][y][zx][zy][temp_x][temp_y][iteracja][wynik][oldEBP][edi][esi] [ret][RE_C][im_c][maxiter][data]
- ;co gdzie i jak?
- ;edi=petla po wysokosci
- ;esi=petla po szerokosci
- ;edx=*data
- ;ecx= licznik iteracji
- %idefine iteracja dword [ebp-8]
- %idefine wynik dword [ebp-4]
- %idefine x dword [ebp+16]
- %idefine y dword [ebp+20]
- %idefine max dword [ebp+24]
- %idefine data dword [ebp+28]
- fld dword [firsty] ;y=-1.5
- fstp dword [ebp-28]
- mov edx, dword data ; w edx jest *data
- ;mov edx, [edx] ; teraz edx -> wskaznik na dane bitmapy, edx = ptr
- xor edi, edi ;edi=0 iteracja po wysokosci
- height_loop:
- cmp edi, 600 ;j<height
- jge height_loop_end
- xor esi, esi
- width_loop:
- cmp esi, 800 ;i< width
- jge width_loop_end
- ;kolorowanie
- mov al, 255
- mov [edx], al
- mov edx, 32
- ; mov dword [edx+2], al
- dalej:
- add edx,3 ;wsk+=3
- fld dword [ebp-32] ;x+=krok
- fadd dword [krok]
- ;faddp
- fstp dword [ebp-32]
- inc esi ;inkremencja esi
- jmp width_loop
- width_loop_end:
- fld dword [ebp-28] ;y+=krok
- fadd dword [krok]
- ;faddp
- fstp dword [ebp-28]
- inc edi ;inkrementacja edi
- jmp height_loop
- height_loop_end:
- ;epilog
- mov esp, ebp
- pop ebp
- pop edi
- pop esi
- ret
Add Comment
Please, Sign In to add comment