Omorphia Productions Homepage
Project Omorphia Foren-Übersicht  >  Wünsche, Anregungen, Fragen
Autor Nachricht
<  Assembler-Befehle
wh89
BeitragVerfasst am: Di Nov 09, 2004 18:27  Antworten mit Zitat



Anmeldungsdatum: 31.10.2004
Beiträge: 120
Wohnort: Braunschweig(Niedersachsen), da wo die Atomuhr steht :D

sorry, dass ich hier überall neue Themen mache... Embarassed

Ich hab mir die math-untits durchgelesen und kein Wort verstanden(War ja auch kein Wort da, nur so komische Befehle)
Ich wei??, es ist auskommentiert, aber nur die Prozeduren. Ich würde mich dafür interessieren, was die einzelnen Befehle machen. In der Delphi-Hilfe steht das nicht drin, im DF auch nicht, google hilft mir auch nicht viel weiter. Da ich denke, dass ihr mir nicht jeden Befehl erklären wollt, wo gibts ne Befehlsübersicht? Z.B. FST bzw. FSTP würde mich interessieren, weil ich z.B.
da
Zitat:
FSTP TBYTE PTR [EAX]
Nix von einer Variable gesehn hab, die den Wert entgegen nimmt. Oder steht das da auch gar nicht(Das Zitat ist SinCos und ich hab verzweifelt
Zitat:
Var Sin, Cos: Extended
gesucht)

Wenn ihr keine Befehlsübersicht kennt, könnt ihr mir sagen, woher ihr die Befehle wisst?

cu
winnie
_________________
Cogito, ergo esse possim. Sed procol asinus clamat. (Ich denke, also könnte ich sein. Aber in der Ferne schreit ein Esel.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden AIM-Name Yahoo Messenger MSN Messenger
BenBE
BeitragVerfasst am: Di Nov 09, 2004 22:31  Antworten mit Zitat
Hauptcoder


Anmeldungsdatum: 21.08.2004
Beiträge: 838
Wohnort: Jahnsdorf (Chemnitz)

Die Mathe-Unit ist zu einem Gro??teil in i386-Assembler geschrieben. Eine Befehlsreferenz gibt's in der Ge-Packt-Reihe.

Allerdings ist ASM nicht ganz einfach. Daher solltest Du dich erstmal mit reinem DelphiLaanguage arbeiten. Vertrau einfach den Quelltexten. Ganz genaue Beschreibungen kannst du hier im Board einfach erfragen.

Die ASM-Quelltexte stammen zu einem Gro??teil von mir, bzw. wurden durch andere ASM-Fragmente angeregt.

Und das du keine Variablen gefunden hast, ist in der SinCos-Funktion auch klar: Das macht alles die FPU (Gleitkommaeinheit oder auch oft Co-Prozessor genannt).

Code:
Procedure SinCos(Const Theta: Extended; Var Sin, Cos: Extended); Assembler; Register;
Asm
//     calculates sine and cosine from the given angle Theta
//     EAX contains address of Sin
//     EDX contains address of Cos
//     Theta is passed over the stack

    FLD     TBYTE PTR [Theta]
    FSINCOS
    FSTP    TBYTE PTR [EDX]            // cosine
    FSTP    TBYTE PTR [EAX]            // sine
//    FWAIT                       //Seems to be unnecessary
End;


Hat Drei Parameter: Theta, Sin und Cos, wobei Theta als Const und Sin\Cos als Var-Parameter übergeben werden. Alle 3 sind Extended-Parameter (jeder Extended-Wert ist 10 Bytes).

Zuerst wird Theta in die FPU geladen um damit zu rechnen.
Danach teil ich der FPU mit, dass ich sowohl Sinus als auch Cosinus haben möchte, die dann im FPU-Stack abgelegt werden (interner Speicher der FPU)
Die letzten beiden Befehle speichern das Ergebnis nur noch an die richtige Stelle ab.

Arrow Nichts Weltbewegendes.

Achso: das FWAIT, was auskommentiert ist, sorgt dafür (würde es mitcompiliert), dass die CPU auf Beendigung der Berechnungen der FPU warten würde, was ich aber aus Geschwindigkeitsgründen nicht haben will. (Ist nämlich auch nicht extra nötig).

Achso: Frag bitte nicht nach der Erklärung der MatrixDeterminant-Routine: Die ist zu kompliziert, als dass ich sie hier ohne weiteres und ohne Vermittlung der Kenntnisse der Matrix-Rechnung erklären könnte*\wöllte.

*Könnte schon, ist aber wirklich zu kompliziert.
_________________
Das Problem ist die Entscheidung!
Delphi-Code:
  1. Matrix.System.HLT;

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Neo
BeitragVerfasst am: Di Nov 09, 2004 23:25  Antworten mit Zitat
Hauptcoder


Anmeldungsdatum: 01.09.2004
Beiträge: 593
Wohnort: Matrix

@BenBE: Kannst du mir die erklären? LOL

Cu
Neo
_________________
Follow the white rabit!
Delphi-Code:
  1. Self.ConnectTo(Matrix);
  2. Matrix.LogIn(Neo);
//Diese fehlerfreie Signatur wird Ihnen präsentiert von BenBE
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
wh89
BeitragVerfasst am: Mi Nov 10, 2004 18:04  Antworten mit Zitat



Anmeldungsdatum: 31.10.2004
Beiträge: 120
Wohnort: Braunschweig(Niedersachsen), da wo die Atomuhr steht :D

THX Very Happy
_________________
Cogito, ergo esse possim. Sed procol asinus clamat. (Ich denke, also könnte ich sein. Aber in der Ferne schreit ein Esel.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden AIM-Name Yahoo Messenger MSN Messenger
Neo
BeitragVerfasst am: Mi Nov 10, 2004 18:15  Antworten mit Zitat
Hauptcoder


Anmeldungsdatum: 01.09.2004
Beiträge: 593
Wohnort: Matrix

@wh89: File gesendet. Hoffe das du damit etwas anfangen kannst!

Also dann

CU
Neo
_________________
Follow the white rabit!
Delphi-Code:
  1. Self.ConnectTo(Matrix);
  2. Matrix.LogIn(Neo);
//Diese fehlerfreie Signatur wird Ihnen präsentiert von BenBE
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
wh89
BeitragVerfasst am: Mi Nov 10, 2004 19:07  Antworten mit Zitat



Anmeldungsdatum: 31.10.2004
Beiträge: 120
Wohnort: Braunschweig(Niedersachsen), da wo die Atomuhr steht :D

leider nur wenig, da ich nur die bmps und jpgs öffnen kann und die bringen mir nich sehr viel Sad (Noch nich ma, um deine Idee weiter zu führen, denn dafür bräuchte ich das Omega und das omorphia ohne Hintergrund)

cu
winnie
_________________
Cogito, ergo esse possim. Sed procol asinus clamat. (Ich denke, also könnte ich sein. Aber in der Ferne schreit ein Esel.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden AIM-Name Yahoo Messenger MSN Messenger
Neo
BeitragVerfasst am: Mi Nov 10, 2004 20:04  Antworten mit Zitat
Hauptcoder


Anmeldungsdatum: 01.09.2004
Beiträge: 593
Wohnort: Matrix

@Winfried: das sind Gimp Dateien! Das kannst du dir runtersdaugen! Ist kostenlos! Dort sind dann auch die einzelnen Layer drin!

Thx & Cu
Neo
_________________
Follow the white rabit!
Delphi-Code:
  1. Self.ConnectTo(Matrix);
  2. Matrix.LogIn(Neo);
//Diese fehlerfreie Signatur wird Ihnen präsentiert von BenBE
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
wh89
BeitragVerfasst am: Do Nov 11, 2004 17:49  Antworten mit Zitat



Anmeldungsdatum: 31.10.2004
Beiträge: 120
Wohnort: Braunschweig(Niedersachsen), da wo die Atomuhr steht :D

Zitat:
Das kannst du dir runtersdaugen

HAHAHAHA! Ja natürlich kann ichs mir saugen, aber nich installieren ohne Admin. Laughing
*verfluche sch...lechte Admin-regelung*

Vleicht kannst dus ja mit Gimp in jpg/gif/bmp umformen. Wär echt nett.
Wenn ich dann deins überarbeitet(mit dem Sternenfeldhintergrund versehen) hab, stelle ich auch wieder n update von meinem online.
_________________
Cogito, ergo esse possim. Sed procol asinus clamat. (Ich denke, also könnte ich sein. Aber in der Ferne schreit ein Esel.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden AIM-Name Yahoo Messenger MSN Messenger
Neo
BeitragVerfasst am: Fr Nov 12, 2004 15:46  Antworten mit Zitat
Hauptcoder


Anmeldungsdatum: 01.09.2004
Beiträge: 593
Wohnort: Matrix

@Winnie: Ich kann dir das Bild schon als JPG oder so geben aber dann hast due die Transparenten bereiche und Layer nicht mehr verfügbar!

Cu
Neo
_________________
Follow the white rabit!
Delphi-Code:
  1. Self.ConnectTo(Matrix);
  2. Matrix.LogIn(Neo);
//Diese fehlerfreie Signatur wird Ihnen präsentiert von BenBE
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
wh89
BeitragVerfasst am: Fr Nov 12, 2004 22:31  Antworten mit Zitat



Anmeldungsdatum: 31.10.2004
Beiträge: 120
Wohnort: Braunschweig(Niedersachsen), da wo die Atomuhr steht :D

Zitat:
@Winnie: Ich kann dir das Bild schon als JPG oder so geben aber dann hast due die Transparenten bereiche und Layer nicht mehr verfügbar!

Ich meinte damit, dass du mir die Layer einzeln als jpg etc. gibst. Hauptsächlich aber das Omega und den Schriftzug darunter. Wär echt nett, hab nämlich versucht, das ding manuel rauszuschneiden aber hab versehentlich als MonochromBitmap gespeichert und die Arbeit war futsch. Sad
_________________
Cogito, ergo esse possim. Sed procol asinus clamat. (Ich denke, also könnte ich sein. Aber in der Ferne schreit ein Esel.)


Zuletzt bearbeitet von wh89 am Mo Nov 15, 2004 12:52, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden AIM-Name Yahoo Messenger MSN Messenger
Neo
BeitragVerfasst am: Sa Nov 13, 2004 23:59  Antworten mit Zitat
Hauptcoder


Anmeldungsdatum: 01.09.2004
Beiträge: 593
Wohnort: Matrix

@wh89: Yes kann ich machen! Dauert aber ein wenig!

Cu Neo
_________________
Follow the white rabit!
Delphi-Code:
  1. Self.ConnectTo(Matrix);
  2. Matrix.LogIn(Neo);
//Diese fehlerfreie Signatur wird Ihnen präsentiert von BenBE
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Alle Zeiten sind GMT + 1 Stunde

Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Seite 1 von 1
Project Omorphia Foren-Übersicht  >  Wünsche, Anregungen, Fragen

Neues Thema eröffnen   Neue Antwort erstellen


 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.




Powered by phpBB 2.0.17 and NoseBleed v1.05