0,0 → 1,956 |
; mov [pointer_to_screen],eax |
; mov [output_array],ebx |
; mov [screen_size_x],ecx |
;setpixel (pixel_x,pixel_y) |
setpixel: |
|
mov ecx,[output_array] |
mov eax,[pixel_y] |
mov ebx,[screen_size_x] |
imul eax,ebx |
add eax,[pixel_x] |
lea eax,[eax+eax*2] |
add eax,[pointer_to_screen] |
mov [ecx],eax |
add [output_array],4 |
ret |
; procedure <<<<<<PutPixel>>>>>> |
; IN |
; eax - pointer to picture |
; ebx - picture size x |
; ecx - color of pixel |
; esi - x coordinat of pixel |
; edi - y coordinat of pixel |
; OUT |
; not returned value |
PutPixel: |
|
imul ebx,edi |
add ebx,esi |
lea ebx,[ebx+ebx*2] |
add eax,ebx |
mov ebx,ecx |
shr ebx,16 |
mov [eax],cx |
mov [eax+2],bl |
ret |
; function <<<<<<GetColorOfPixel>>>>>> |
; IN |
; eax - pointer to picture |
; ebx - picture size x |
; esi - x coordinat of pixel |
; edi - y coordinat of pixel |
; OUT |
; eax - color of pixel in coordinats (x,y) |
GetColorOfPixel: |
|
imul ebx,edi |
add ebx,esi |
lea ebx,[ebx+ebx*2] |
add eax,ebx |
mov ebx,[eax] |
and ebx,0xffffff |
mov eax,ebx |
ret |
|
;procedure <<<<calculate line>>>> |
; IN |
;eax - pointer to screen |
;ebx - output array |
;ecx - (screen size x)*bytes per pixel |
;edx - x1*65536+y1 |
;esi x2 |
;edi - y2 |
; OUT |
;eax - number of pixels |
calculate_line: |
|
mov [pointer_to_screen],eax |
mov [output_array],ebx |
mov [screen_size_x],ecx |
mov eax,edx |
and eax,0xffff |
shr edx,16 |
mov [x_l],edx ;x=x1 |
mov [y_l],eax ;y=y1 |
mov [sx],1 |
mov [sy],1 |
|
mov edx,[output_array] |
|
sub esi,[x_l] ;esi=x2-x1 |
jnz no_0_x |
and esi,0 |
jmp x_no_minus |
no_0_x: |
jns x_no_minus |
neg esi |
mov [sx],-1 ;sx=-sx |
x_no_minus: |
|
sub edi,[y_l] ;edi=y2-y1 |
jnz no_0_y |
and edi,0 |
jmp y_no_minus |
no_0_y: |
jns y_no_minus |
neg edi |
mov [sy],-1 ;sy=-sy |
y_no_minus: |
|
mov [_dx],esi |
mov [_dy],edi |
|
cmp [_dx],0 ;if (dx=0 & dy=0) { } |
jnz no_null_d |
cmp [_dy],0 |
jnz no_null_d |
mov eax,[x_l] |
mov ebx,[y_l] |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel ;setpixel(x1,y1) |
mov eax,1 |
ret |
no_null_d: |
|
cmp edi,esi ;if (dy>dx) { } |
jle no_bigger |
mov eax,[_dx] |
mov [z],eax ;z=dx |
mov eax,[_dy] |
mov [_dx],eax ;dx=dy |
mov eax,[z] |
mov [_dy],eax ;dy=z |
mov [_ch],dword 1 ;ch=true |
jmp exit_if2 |
no_bigger: ;else {} |
and [_ch],0 |
exit_if2: |
|
mov eax,[_dy] |
shl eax,1 |
sub eax,[_dx] |
mov [e],eax ;e=2*dy-dx |
|
mov esi,1 ;counter |
mov edi,[sx] |
mov ebp,[sy] |
do: |
|
mov eax,[x_l] |
mov ebx,[y_l] |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
cmp [e],0 |
js while_e |
|
mov eax,[_ch] |
test eax,eax |
jz ch_else |
add [x_l],edi |
jmp exit_if3 |
ch_else: |
add [y_l],ebp |
exit_if3: |
|
mov eax,[_dx] |
shl eax,1 |
sub [e],eax ;e=e-2*dx |
|
while_e: |
|
mov eax,[_ch] |
test eax,eax |
jz ch_else2 |
add [y_l],ebp |
jmp exit_if4 |
ch_else2: |
add [x_l],edi |
exit_if4: |
|
mov eax,[_dy] |
shl eax,1 |
add [e],eax ;e=e+2*dy |
inc esi |
|
mov ecx,[_dx] |
cmp esi,ecx |
jle do ;while (i<=dx) |
|
mov eax,[x_l] |
mov ebx,[y_l] |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,[output_array] |
sub eax,edx |
shr eax,2 |
|
ret |
;--------------------------- |
;procedure calculate <<<<<rectangle>>>>>>> |
; IN |
;eax - pointer to screen |
;ebx - output array |
;ecx - (screen size x) |
;edx - x1*65536+y1 |
;esi x2 |
;edi - y2 |
; OUT |
;eax - number of pixels |
|
calculate_rectangle: |
|
mov [pointer_to_screen],eax |
mov [output_array],ebx |
mov [screen_size_x],ecx |
mov eax,edx |
and eax,0xffff |
shr edx,16 |
mov [x_l],edx ;x=x1 |
mov [y_l],eax ;y=y1 |
mov [x2],esi ;x2 |
mov [y2],edi ;y2 |
mov [sx],1 |
mov [sy],1 |
|
mov edx,[output_array] |
|
sub esi,[x_l] ;esi=x2-x1 |
jnz no_0_x_r |
and esi,0 |
jmp x_no_minus_r |
no_0_x_r: |
jns x_no_minus_r |
neg esi |
mov [sx],-1 ;sx=-sx |
x_no_minus_r: |
|
sub edi,[y_l] ;edi=y2-y1 |
jnz no_0_y_r |
and edi,0 |
jmp y_no_minus_r |
no_0_y_r: |
jns y_no_minus_r |
neg edi |
mov [sy],-1 ;sy=-sy |
y_no_minus_r: |
|
mov [_dx],esi |
mov [_dy],edi |
|
cmp [_dx],0 ;if (dx=0 & dy=0) { } |
jnz no_null_r |
cmp [_dy],0 |
jnz no_null_r |
mov eax,[x_l] |
mov ebx,[y_l] |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel ;setpixel(x1,y1) |
mov eax,1 |
ret |
no_null_r: |
|
mov edi,[_dx] |
mov esi,[x_l] ;x1 |
|
horizontal_lines: |
|
mov eax,esi ;x |
mov ebx,[y_l] ;y1 |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,esi ;x |
mov ebx,[y2] ;y2 |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
add esi,[sx] |
dec edi |
jns horizontal_lines |
|
mov edi,[_dy] |
mov esi,[y_l] ;y1 |
vertical_lines: |
|
mov eax,[x_l] ;x1 |
mov ebx,esi ;y |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,[x2] ;x2 |
mov ebx,esi ;y |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
add esi,[sy] |
dec edi |
jns vertical_lines |
|
mov eax,[output_array] |
sub eax,edx |
shr eax,2 |
|
ret |
;procedure <<<<<<calculate_circle>>>>>> |
; IN |
;eax - pointer to screen |
;ebx - output array |
;ecx - (screen size x)*bytes per pixel |
;edx - x_c*65536+y_c |
;esi r |
; OUT |
;eax - number of pixels |
|
calculate_circle: |
|
mov [pointer_to_screen],eax |
mov [output_array],ebx |
mov [screen_size_x],ecx |
mov eax,edx |
and eax,0xffff |
shr edx,16 |
mov [x2],edx ;circle centr x |
mov [y2],eax ;circle centr y |
mov [r],esi ;radius of cicrle |
|
mov edx,[output_array] |
|
mov [x_l],0 ;x=0 |
mov [y_l],esi ;y=r |
mov [d],3 |
mov eax,[r] |
shl eax,1 |
sub [d],eax ;d=3-2*r |
|
|
while_circle: |
|
mov esi,[y_l] |
mov edi,[x_l] |
|
sub esi,edi ;while y>=x |
js exit_while_circle |
|
|
mov eax,[x_l] ;x |
mov ebx,[y_l] ;y |
add eax,[x2] ;x+xc |
add ebx,[y2] ;y+yc |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,[x_l] ;x |
mov ebx,[y2] ;yc |
add eax,[x2] ;x+xc |
sub ebx,[y_l] ;yc-y |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,[x2] ;xc |
mov ebx,[y2] ;yc |
sub eax,[x_l] ;xc-x |
add ebx,[y_l] ;yc+y |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,[x2] ;xc |
mov ebx,[y2] ;yc |
sub eax,[x_l] ;xc-x |
sub ebx,[y_l] ;yc-y |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,[x2] ;xc |
mov ebx,[y2] ;yc |
add eax,[y_l] ;xc+y |
add ebx,[x_l] ;yc+x |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,[x2] ;xc |
mov ebx,[y2] ;yc |
add eax,[y_l] ;xc+y |
sub ebx,[x_l] ;yc-x |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,[x2] ;xc |
mov ebx,[y2] ;yc |
sub eax,[y_l] ;xc-y |
add ebx,[x_l] ;x+yc |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,[x2] ;xc |
mov ebx,[y2] ;yc |
sub eax,[y_l] ;xc-y |
sub ebx,[x_l] ;yc-x |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
cmp [d],0 |
jns if1_d |
mov eax,[x_l] |
shl eax,2 |
add eax,6 |
add [d],eax ;d=d+4*x+6 |
jmp exit_if1_d |
if1_d: |
mov eax,[x_l] |
sub eax,[y_l] |
shl eax,2 |
add eax,10 |
add [d],eax ;d=d+4*(x-y)+10 |
dec [y_l] |
exit_if1_d: |
inc [x_l] |
|
jmp while_circle |
|
exit_while_circle: |
|
mov eax,[output_array] |
sub eax,edx |
shr eax,2 |
|
ret |
;procedure <<<<<<flood fill>>>>> |
;IN |
;eax - pointer to screen |
;ebx - pointer to output array |
;ecx - picture size x |
;edx - x0*65536+y0 |
;esi - x_max*65536+y_max |
;edi - color of flood fill arrea |
flood_fill: |
|
mov [pointer_to_screen],eax |
mov [output_array],ebx |
mov [screen_size_x],ecx |
|
mov eax,edx |
and edx,0xffff |
shr eax,16 |
mov [sx],eax ;x0 |
mov [sy],edx ;y0 |
|
mov eax,esi |
and esi,0xffff |
shr eax,16 |
mov [m_x],eax ;maximum x size of picture |
mov [m_y],esi ;maximum y size of picture |
|
mov [c_f],edi ;color of feel |
|
mov eax,[output_array] ; stek |
mov [eax],dword 1 ; number of pointes in stek |
mov esi,[sx] |
mov edi,[sy] |
mov [eax+4],si ;x0 |
mov [eax+4+2],di ;y0 |
|
mov eax,[pointer_to_screen] |
mov ebx,[screen_size_x] |
call GetColorOfPixel |
mov [c],eax |
|
cmp eax,[c_f] |
jne can_flood_fill |
mov eax,[output_array] |
mov [eax],dword 0 |
ret |
can_flood_fill: |
|
while_no_null: |
;¨§¢«¥ª ¥¬ ª®®à¤¨ âë ¨§ á⥪ |
mov eax,[output_array] |
mov ebx,[eax] |
dec ebx |
shl ebx,2 ;ebx=ebx*8 |
add ebx,4 ;ebx=ebx*8+4 |
xor esi,esi |
xor edi,edi |
mov si,[eax+ebx] ;x |
mov di,[eax+ebx+2] ;y |
mov [x2],esi |
mov [y2],edi |
|
mov [sy],edi |
|
mov eax,[output_array] |
mov ebx,[eax] |
dec ebx |
mov [eax],ebx ; |
|
; go to right until color=c or until x<MaxXPicture |
mov edx,[x2] |
go_to_right: |
|
mov eax,[pointer_to_screen] |
mov ebx,[screen_size_x] |
mov esi,edx; |
mov edi,[sy] |
call GetColorOfPixel |
|
cmp eax,[c] |
jne not_color_of_feeling_arrea_right |
|
mov eax,[pointer_to_screen] |
mov ebx,[screen_size_x] |
mov ecx,[c_f] ;color of filinf flood |
mov esi,edx |
mov edi,[sy] |
call PutPixel |
|
inc edx |
|
mov eax,edx |
cmp eax,[m_x] |
jle go_to_right |
|
not_color_of_feeling_arrea_right: |
|
mov eax,edx |
dec eax ;---------------------------------- |
mov [x_r],eax ; save right absciss |
|
|
; go to left until color=c or until x>0 |
mov esi,[x2] |
mov edi,[y2] |
dec esi |
mov edx,esi |
mov [sy],edi |
|
go_to_left: |
|
mov eax,[pointer_to_screen] |
mov ebx,[screen_size_x] |
mov esi,edx |
mov edi,[sy] |
call GetColorOfPixel |
|
cmp eax,[c] |
jne not_color_of_feeling_arrea_left |
|
mov eax,[pointer_to_screen] |
mov ebx,[screen_size_x] |
mov ecx,[c_f] ;color of filing flood |
mov esi,edx |
mov edi,[sy] |
call PutPixel |
|
dec edx |
jns go_to_left |
|
not_color_of_feeling_arrea_left: |
|
mov eax,edx |
inc eax ;---------------------------------------- |
mov [x_l],eax ; save left absciss |
|
mov edi,[y2] |
dec edi |
jns no_null_1_floodfill |
mov edi,1 |
no_null_1_floodfill: |
mov [sy],edi |
|
mov eax,[output_array] |
mov ebx,[eax] |
mov [l_s],ebx ; save total number of points in stek |
mov [l_c],-1 ; last color = -1 |
mov edx,[x_l] |
analizing_from_left_to_right_upper: |
; «¨§¨à㥬 ¯¨ªá¥«¨ ¤ «¨¨¥© á «¥¢®£® ªà ï |
mov eax,[pointer_to_screen] |
mov ebx,[screen_size_x] |
mov esi,edx |
mov edi,[sy] |
call GetColorOfPixel |
push eax |
|
cmp eax,[c] ;¥á«¨ 梥⠯஢¥àאַ£® ¯¨ªá¥«ï ¥ à ¢¥ á,â® ¥ § ®á¨¬ ¥£® ¢ á⥪ |
jne no_fill_1 |
mov ebx,[l_c] |
cmp ebx,[c] |
jne no_fill_1 |
mov edi,[sy] |
mov eax,[output_array] |
mov ebx,[eax] |
inc ebx |
mov [eax],ebx |
dec ebx |
shl ebx,2 |
add ebx,4 |
mov esi,edx |
dec esi |
mov [eax+ebx],si |
mov [eax+ebx+2],di |
no_fill_1: |
|
pop [l_c] |
inc edx |
cmp edx,[x_r] |
jle analizing_from_left_to_right_upper |
|
mov ebx,[l_c] |
cmp ebx,[c] ;last color is c(color of filing arrea) ? |
jne have_changes_in_stek_1 |
;save last color in stek |
mov edi,[sy] |
mov eax,[output_array] |
mov ebx,[eax] |
inc ebx |
mov [eax],ebx |
dec ebx |
shl ebx,2 |
add ebx,4 |
mov esi,edx |
dec esi |
mov [eax+ebx],si |
mov [eax+ebx+2],di |
|
have_changes_in_stek_1: |
|
mov edi,[y2] |
inc edi |
cmp edi,[m_y] |
jle no_max_1_floodfill |
mov edi,[m_y] |
no_max_1_floodfill: |
mov [sy],edi |
|
mov eax,[output_array] |
mov ebx,[eax] |
mov [l_s],ebx ; save total number of points in stek |
mov [l_c],-1 ; last color = -1 |
mov edx,[x_l] |
analizing_from_left_to_right_down: |
|
; «¨§¨à㥬 ¯¨ªá¥«¨ ¯®¤ «¨¨¥© á «¥¢®£® ªà ï |
mov eax,[pointer_to_screen] |
mov ebx,[screen_size_x] |
mov esi,edx |
mov edi,[sy] |
call GetColorOfPixel |
push eax |
|
cmp eax,[c] ;¥á«¨ 梥⠯஢¥àאַ£® ¯¨ªá¥«ï ¥ à ¢¥ á,â® ¥ § ®á¨¬ ¥£® ¢ á⥪ |
je no_fill_3 |
mov ebx,[l_c] |
cmp ebx,[c] |
jne no_fill_3 |
mov edi,[sy] |
mov eax,[output_array] |
mov ebx,[eax] |
inc ebx |
mov [eax],ebx |
dec ebx |
shl ebx,2 |
add ebx,4 |
mov esi,edx |
dec esi |
mov [eax+ebx],si |
mov [eax+ebx+2],di |
no_fill_3: |
|
pop [l_c] |
inc edx |
cmp edx,[x_r] |
jle analizing_from_left_to_right_down |
|
mov ebx,[l_c] |
cmp ebx,[c] ;last color is c(color of filing arrea) ? |
jne have_changes_in_stek_2 |
;save last color in stek |
mov edi,[sy] |
mov eax,[output_array] |
mov ebx,[eax] |
inc ebx |
mov [eax],ebx |
dec ebx |
shl ebx,2 |
add ebx,4 |
mov esi,edx |
dec esi |
mov [eax+ebx],si |
mov [eax+ebx+2],di |
|
have_changes_in_stek_2: |
|
mov ebx,[output_array] ;while stek have points ¯®ª ¢ á⥪¥ ¥áâì â®çª¨(ª®®à¤¨ âë) |
mov ecx,[ebx] |
test ecx,ecx |
jnz while_no_null |
|
|
ret |
; procedure <<<<<<calculate ellips>>>>>> |
; IN |
; eax - pointer to picture |
; ebx - output array |
; ecx - picture size x |
; edx - x0*65536+y0 |
; esi - a*65536+b |
; edi - color |
; OUT |
; procedure not return value |
calculate_ellips: |
|
mov [pointer_to_screen],eax |
mov [output_array],ebx |
mov [screen_size_x],ecx |
mov [e],ebx |
|
mov eax,edx |
and eax,0xffff |
shr edx,16 |
mov [x2],edx ; centr x |
mov [y2],eax ; centr y |
|
mov eax,esi |
and eax,0xffff ;eax=b |
shr esi,16 ;esi=a |
mov [a],esi |
mov [b],eax |
|
mov [c],edi ;color |
mov [row],eax ;b |
|
imul esi,esi ;a*a |
imul eax,eax ;b*b |
|
mov [a_square],esi |
mov [b_square],eax |
and [col],0 |
|
shl esi,1 |
shl eax,1 |
mov [two_a_square],esi |
mov [two_b_square],eax |
shl esi,1 |
shl eax,1 |
mov [four_a_square],esi |
mov [four_b_square],eax |
|
mov eax,[row] ;eax=row |
mov ebx,eax |
dec ebx ;ebx=(row-1) |
imul ebx,eax ;ebx=(row-1)*row |
imul ebx,[two_a_square] ;ebx=two_a_square*((row-1)*row) |
mov ecx,[a_square] ;ecx=a_square |
mov eax,1 |
sub eax,ecx ;eax=(1-a_square) |
imul eax,[two_b_square] ;eax=two_b_square*(1-a_square) |
add ebx,[a_square] ;ebx=two_a_square*((row-1)*row)+a_square |
add eax,ebx ;eax=two_a_square*((row-1)*row)+a_square+two_b_square*(1-a_square) |
mov [d],eax |
|
mov edx,[x2] ;x |
mov ebp,[y2] ;y |
|
while_ellips_1: |
mov esi,[a_square] |
mov edi,[b_square] |
imul esi,[row] |
imul edi,[col] |
cmp esi,edi |
jle no_while_ellips_1 |
|
mov eax,edx ;x |
mov ebx,ebp ;y |
add eax,[col] ;x+col |
add ebx,[row] ;y+row |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,edx ;x |
mov ebx,ebp ;y |
add eax,[col] ;x+col |
sub ebx,[row] ;y-row |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,edx ;x |
mov ebx,ebp ;y |
sub eax,[col] ;x-col |
add ebx,[row] ;y+row |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,edx ;x |
mov ebx,ebp ;y |
sub eax,[col] ;x-col |
sub ebx,[row] ;y-row |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,[d] |
cmp eax,0 |
js lab33 ;>=0 |
dec [row] |
mov ebx,[four_a_square] |
mov ecx,[row] |
imul ebx,ecx ;ebx=four_a_square*(row) |
sub [d],ebx ;d=d-four_a_square*(row) |
lab33: |
|
mov eax,[col] |
shl eax,1 |
add eax,3 |
imul eax,[two_b_square] |
add [d],eax ;d=d+two_b_square*(3+(col*2)) |
|
inc [col] |
jmp while_ellips_1 |
|
no_while_ellips_1: |
|
mov eax,[col] |
inc eax |
imul eax,[col] |
imul eax,[two_b_square] ;eax=two_b_square*((col+1)*col) |
mov ebx,[row] |
sub ebx,2 |
imul ebx,[row] |
inc ebx |
imul ebx,[two_a_square] ;ebx=two_a_square*((row-2)*row+1) |
mov ecx,1 |
sub ecx,[two_a_square] |
imul ecx,[b_square] ;ecx=(1-two_a_square)*b_square |
add eax,ebx |
add eax,ecx |
mov [d],eax ;two_b_square*(col+1)*col+two_a_square*(row*(row-2)+1)+(1-two_a_square)*b_square |
|
mov edx,[x2] ;x |
mov ebp,[y2] ;y |
|
while_ellips_2: |
mov esi,[row] |
inc esi |
test esi,esi |
jz no_while_ellips_2 |
|
mov eax,edx ;x |
mov ebx,ebp ;y |
add eax,[col] ;x+col |
add ebx,[row] ;y+row |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,edx ;x |
mov ebx,ebp ;y |
add eax,[col] ;x+col |
sub ebx,[row] ;y-row |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,edx ;x |
mov ebx,ebp ;y |
sub eax,[col] ;x-col |
add ebx,[row] ;y+row |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,edx ;x |
mov ebx,ebp ;y |
sub eax,[col] ;x-col |
sub ebx,[row] ;y-row |
mov [pixel_x],eax |
mov [pixel_y],ebx |
call setpixel |
|
mov eax,[d] |
cmp eax,0 |
jns lab34 |
|
inc [col] |
mov ebx,[col] |
imul ebx,[four_b_square] |
add [d],ebx ;d=d+four_b_square*col |
lab34: |
dec [row] |
mov ebx,[row] |
shl ebx,1 |
mov eax,3 |
sub eax,ebx |
imul eax,[two_a_square] |
add [d],eax ;d=d+two_b_square*(3-(row*2)) |
|
jmp while_ellips_2 |
no_while_ellips_2: |
|
mov eax,[output_array] |
sub eax,[e] |
shr eax,2 |
|
ret |
;--------------------------- |
x_l dd ? |
y_l dd ? |
x_r dd ? |
y_r dd ? |
_dx dd ? |
_dy dd ? |
sx dd ? |
sy dd ? |
z dd ? |
e dd ? |
i dd ? |
_ch dd ? |
x2 dd ? |
y2 dd ? |
d dd ? |
r dd ? |
m_x dd ? |
m_y dd ? |
c dd ? |
c_f dd ? |
l_c dd ? |
l_s dd ? |
;--------------------------- |
pointer_to_screen dd 0 |
screen_size_x dd 0 |
output_array dd 0 |
pixel_x dd 0 |
pixel_y dd 0 |
;--------------------------- |
a dd 0 |
b dd 0 |
col dd 0 |
row dd 0 |
bnew dd 0 |
a_square dd 0 |
b_square dd 0 |
two_a_square dd 0 |
two_b_square dd 0 |
four_a_square dd 0 |
four_b_square dd 0 |
;----------------------------- |