Einzelnen Beitrag anzeigen

Eichhoernchen

Registriert seit: 22. Apr 2004
Ort: Hagen
322 Beiträge
 
Turbo Delphi für Win32
 
#1

ASM real werte!

  Alt 13. Sep 2005, 21:08
Hallo,
ich hab mich heute mal rangesetzt und wollte in Delphi was mit dem Inline-Assembler machen, man muss dazu sagen ich hab keine Ahnung von ASM und daher nicht hauen wenn ich da totale kacke gemacht hab:

Delphi-Quellcode:
procedure mandelbrot(MaxIt : integer);
var x, y, n : integer;
    xc, yc, xzalt, yzalt, xz, yz, buff, buff2 : real;
Begin
 for x := 1 to Form1.Image1.Width-1 do
   Begin
     for y := 1 to Form1.Image1.Height-1 do
       Begin
        xc := x / 100 - 2.1;
        yc := y / 100 - 1.1;
        xzalt := 0;
        yzalt := 0;
        n := 0;
        while(n <= MaxIt) and (xzalt*xzalt+yzalt*yzalt < 4) do
          Begin
            asm
             INC n;
             MOV buff, xzalt;
             MOV ax,buff;
             IMUL buff;
             MOVE buff2, yzalt;
             MOV ax,buff2;
             IMUL buff2;
             SUB buff, buff2;
             ADD buff, xc;
             ADD xz, buff;
             MOV ax, 2;
             IMUL xzalt;
             MOV ax, xzalt;
             IMUL yzalt;
             ADD yzalt,yc;
             MOV yz, yzalt;
             MOV xzalt,xz;
             MOV yzalt, yz;
            end;
          end;
        if n >= MaxIt
          then Form1.Image1.Canvas.Pixels[x, y] := clblack
          else Form1.Image1.Canvas.Pixels[x, y] := clred;
       end;
   end;
end;

Ich bin mir jetzt nicht so sicher ob das stimmt, aber ich bekomme schon in der 2. ASM zeile nen Fehler, und zwar glaub ich liegt es daran das ich mit mov keine real variablen "zuweisen" kann. Wie geht das oder was mach ich falsch?
Jan
  Mit Zitat antworten Zitat