Guest User

Untitled

a guest
May 24th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.    
  2.     global _draw_julia
  3.    
  4.     section .data
  5. pol:    dd  0.5
  6. ptr1:   dd  122
  7. ptr2:   dd  224
  8. ptr3:   dd  624
  9.  
  10. firstx: dd  -2.0
  11. firsty: dd  -1.5
  12. krok:   dd  4.0
  13.  
  14.    
  15.     section .text
  16.    
  17. _draw_julia:
  18.     ;prolog
  19.         push esi
  20.         push edi
  21.         push ebp
  22.         mov ebp, esp
  23.         sub esp,32
  24.        
  25.         ;stack frame   
  26.     ;       -32  -28  -24 -20   -16     -12     -8      -4      +0                      +16   +20   +24     +28
  27.         ; EBP->[x][y][zx][zy][temp_x][temp_y][iteracja][wynik][oldEBP][edi][esi] [ret][RE_C][im_c][maxiter][data]
  28.        
  29. ;co gdzie i jak?
  30. ;edi=petla po wysokosci
  31. ;esi=petla po szerokosci
  32. ;edx=*data
  33. ;ecx= licznik iteracji 
  34. %idefine iteracja dword [ebp-8]
  35. %idefine wynik dword [ebp-4]
  36. %idefine x dword [ebp+16]
  37. %idefine y dword [ebp+20]
  38. %idefine max dword [ebp+24]
  39. %idefine data dword [ebp+28]
  40.  
  41.        
  42.        
  43.         fld dword [firsty]  ;y=-1.5
  44.         fstp dword [ebp-28]
  45.        
  46.         mov     edx,  dword data    ; w edx jest *data
  47.         ;mov        edx, [edx]      ; teraz edx -> wskaznik na dane bitmapy, edx = ptr
  48.  
  49.        
  50.         xor edi, edi    ;edi=0 iteracja po wysokosci
  51. height_loop:
  52.         cmp edi, 600    ;j<height
  53.         jge height_loop_end
  54.        
  55.  
  56.         xor esi, esi
  57.     width_loop:
  58.         cmp esi, 800    ;i< width
  59.         jge width_loop_end
  60.        
  61.        
  62.                 ;kolorowanie
  63.            
  64.        
  65.            
  66.                
  67.                 mov al, 255
  68.                 mov [edx], al
  69.    
  70.                 mov edx, 32
  71.             ;   mov dword [edx+2], al
  72.                
  73.                
  74.                
  75.         dalej:
  76.                
  77.                 add edx,3   ;wsk+=3
  78.                
  79.                
  80.                 fld dword [ebp-32]      ;x+=krok
  81.                 fadd dword [krok]
  82.                 ;faddp
  83.                 fstp dword [ebp-32]
  84.    
  85.                 inc esi         ;inkremencja esi
  86.                 jmp width_loop
  87.                
  88.     width_loop_end:
  89.        
  90.        
  91.         fld dword [ebp-28]      ;y+=krok
  92.         fadd dword [krok]
  93.         ;faddp
  94.         fstp dword [ebp-28]    
  95.        
  96.         inc edi         ;inkrementacja edi
  97.         jmp height_loop
  98.        
  99.        
  100. height_loop_end:
  101.                
  102.            
  103.     ;epilog
  104.     mov esp, ebp
  105.     pop ebp
  106.     pop edi
  107.     pop esi
  108.     ret
Add Comment
Please, Sign In to add comment