flat assembler
Message board for the users of flat assembler.
Index
> Main > Converting code from C: "omg i need more registers!&quo |
Author |
|
Teehee 26 Feb 2011, 18:17
when im trying to convert a code, or implement a big routine i always get confused when there is no more registers to use. Using push/pop make the code to seem so slow (hehe). What do you do to solve this issue?
THe code i'm trying to convert is: Code: void line_fast(int x1, int y1, int x2, int y2, byte color) { int i,dx,dy,sdx,sdy,dxabs,dyabs,x,y,px,py; dx=x2-x1; /* the horizontal distance of the line */ dy=y2-y1; /* the vertical distance of the line */ dxabs=abs(dx); dyabs=abs(dy); sdx=sgn(dx); sdy=sgn(dy); x=dyabs>>1; y=dxabs>>1; px=x1; py=y1; VGA[(py<<8)+(py<<6)+px]=color; if (dxabs>=dyabs) /* the line is more horizontal than vertical */ { for(i=0;i<dxabs;i++) { y+=dyabs; if (y>=dxabs) { y-=dxabs; py+=sdy; } px+=sdx; plot_pixel(px,py,color); } } else /* the line is more vertical than horizontal */ { for(i=0;i<dyabs;i++) { x+=dxabs; if (x>=dyabs) { x-=dyabs; px+=sdx; } py+=sdy; plot_pixel(px,py,color); } } } ref _________________ Sorry if bad english. |
|||
26 Feb 2011, 18:17 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.