![]() |
Anzeige:
|
|
|||||||
| Spezielles Für die Bereiche API, Subclassing, Inline-Assembler, Prozesse, ect. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#31 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
|
Wenn man ASM in einer Hochsprache nutzt, sollte man auch Wissen, welche
Register zu sichern sind, bevor man sie nutzt
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
#32 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Nein, Thomas. Mit XPIA kannst du alle Register verwenden, gibt da keine Einschränkungen wie in Inline-Assemblern anderer Hochsprachen, weil XPIA Dll-basierend arbeitet. Natürlich ist aber der User für den Stack zuständig und verantwortlich.
Register sichern bei API-Benutzung bleibt natürlich.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#33 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.079
|
FNINIT am Ende schafft (vermute ich mal) Abhilfe - zumindest war danach Ruhe. Solange mir aber nicht wirklich jemand Berufener erklären kann, was da genau vor sich geht, werde ich künftig einfach IMMER zwei Zeilenlange Strings hinter AsmEnd an Variable zuweisen. Da kann dann drin zu liegen kommen was will - es stört keinen mehr, wenn man die Variablen nicht verwendet.
Problem erledigt. Gruss P.S.: Es sind 7 x Chr$(0) und 1 x Chr$(128), die entsprechende Zeichen überschreiben, also sowas: %00000000 %00000000 %00000000 %00000000 %00000000 %00000000 %00000000 %10000000 bzw. 00 00 00 80h. Und die sind wirklich IM string, nicht bei der Ausgabe drübergeschrieben.
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 Geändert von p. specht (02.11.2011 um 01:14 Uhr) |
|
|
|
|
|
#34 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
FLDPI arbeitet intern mit 10-Byte-Floats und nutzt den Stack als Speicher. Du musst vor Verwendung halt Platz schaffen, sonst überschreibt es dir evt. den Speicher einer Variablen oder wie geschehen eines Strings. Am Ende ist auch eine Profan-Exe ein natives Delphi-Compilat...
Mit fst, fstp, fist, fistp, und fbstp müsstest du dein Pi wieder vom Stack holen können oder eben mit finit neu initieren. Das alles hat aber nichts mit XPIA und Compilerfehlern zu tun und hat hier im Thread eigentlich nichts zu suchen. Darum bitte nächstes Mal einen neuen Thread erstellen.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#35 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.079
|
Naja, das stimmt schon... Laut Beschreibung arbeitet der Barrel-Stack des 80x87-Teils mit 80 bit (10Byte bzw. TByte). Das sind jene Speicherstellen, die andererseits auch für SSE als mmx0 - mmx7 verwendet werden.
Gemäß Beschreibung rundet und speichert die FPU aber stets angepasst an das Zielformat, hier als Double precision FloatingPoint in 8 Byte. Und die drei TOP bits des ControlWords sind bei Verlassen der Routine 0, der Hardware-FPU-Stack also leer. Ich verstehe Eure Argumente so: Ihr meint, daß die FPU vielleicht hier DOCH 10 Byte abspeichert, OBWOHL richtig gerundet wurde - werde das testen! Mit jenem Stack, wo z.B. Variablenübergaben stattfinden, hat das m.E. aber nix zu tun. Den hätte ich aber für Effekte NACH Abschluß mit AsmEnd eher in Verdacht. Gruss P.S.: Bzgl. Einhaltung des Thread-Themas gelobe ich baldige Besserung.
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 Geändert von p. specht (03.11.2011 um 03:25 Uhr) |
|
|
|
|
|
|
#36 (Direktlink) |
|
War schon mal da
![]() Registriert seit: 12.02.2009
Alter: 52
Beiträge: 39
|
Nach sehr langer Zeit komme ich wieder dazu, mich intensiver mit dem Proggen zu beschäftigen. Und hatte nun gleich auch das Problem, daß XPIA unter Profan 8 nicht so wollte, wie gewünscht. Bisher war mir das nie aufgefallen, weil ich eigentlich fast nie mit Memory-Modul, sondern ausschließlich mit DLLs gearbeitet hatte. Ich habe mal die von Frank schon 'teil-modifizierte' memods.inc noch etwas geändert. Somit sollten nun auch unter Profan v8.0 keine unerwarteten Fehlermeldungen mehr auftreten...
Gruß Matthias p.s. Frank, bin von Deinem XPIA nach wie vor begeistert - Danke!
__________________
Win XP SP2 / XProfan 8/9/11f |
|
|
|
|
|
#37 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Prima.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
![]() |
|
| Lesezeichen |
| Stichworte |
| xpia, xprofan |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| XPRR und XPIA | Frabbing | Spezielles | 0 | 05.11.2009 06:41 |
| Neue Xpia | profanfan | Spezielles | 49 | 01.07.2009 06:34 |
| XPIA-Neuigkeiten | Frabbing | Helfer & Tools | 16 | 14.06.2009 20:00 |
| XPIA > neu | profanfan | Helfer & Tools | 10 | 30.04.2009 17:08 |
| XPIA - was brauche ich | AHT | Spezielles | 39 | 29.04.2009 16:57 |