![]() |
ASM real werte!
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? |
Re: ASM real werte!
Zitat:
|
Re: ASM real werte!
hier eine Befehlsübersicht ("normale" Befehle, FPU und MMX):
![]() schau dir vor allem mal die befehle FLD FMUL FADD FSUB FSTP an. und übrigens, bei ASM kannst du dir das ; nach jeder Zeile sparen (es sei denn du willst mehrere Instuktionen in einer Zeile unterbringen, dann müssen diese durch ; getrennt werden) |
Re: ASM real werte!
danke BlackJoker die Seite ist echt klasse und die ; lass ich dann in Zukunft weg!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz