Deutsch
Assembler Forum

Profanbefehle in einer ASM-Schleife verwenden

 
Ich möchte eine ASM-Schleife benutzen und darin die original Profanbefehle reinsetzen.
Wie geht so etwas?

mfg
peter
 
28.08.2008  
 




Frank
Abbing
Hm? Profan-Befehle im Assemblerteil? Das geht natürlich nicht.
 
28.08.2008  
 




Sebastian
Sprenger
Naja, du könntest vielleicht die XProfan-Befehle in eine Prozedur packen, deren Adresse über die Funktion ProcAddr  ermitteln, an die Assemberroutine übergeben und sie dort über den Opcode call  aufrufen - aber wieso sollte die Schleife selbst in Assembler vorliegen und der Schleifenkörper in XProfan?
 
Profan² 7.0e, XProfan 9, 11.2a, FreeProfan32
Windows Vista Home Premium 32-Bit, 2.8 Ghz, 4 GB RAM
Windows Me, 1.8 Ghz, 256 MB RAM
28.08.2008  
 



Warum funktionieren denn die Befehle von Windows mit dem Vorbefehl "Invoke"?

mfg
peter
 
29.08.2008  
 



Kannst du mal eine kleine Demo von deinem Vorschlag mit Procaddr herstellen.

Danke.

mfg
peter
 
29.08.2008  
 




Frank
Abbing
Von der Methode rate ich dringend ab, du versuchst in ein Sackgasse zu flüchten. Momentan ist ProcAddr zu unsicher und kann zu schlimmen Fehlern führen, selbst unter XProfan 11. Gerade, wenn du Profanfunktionen von Assembler aus starten willst.

"Invoke" ist ein Call zu einer Dll-Funktion oder zu einem Speicherbereich. Da XProfan nicht nativ arbeitet, kannst du folglich auch keine native Routine aufrufen. ProcAddr versucht dem Abhilfe zu leisten, versagt aber in bestimmten Situationen.
 
29.08.2008  
 



Frank Abbing
Von der Methode rate ich dringend ab, du versuchst in ein Sackgasse zu flüchten. Momentan ist ProcAddr zu unsicher und kann zu schlimmen Fehlern führen, selbst unter XProfan 11. Gerade, wenn du Profanfunktionen von Assembler aus starten willst.


Hmpf, das Problem wird einfach nicht verstanden - das ist nicht "unsicher". ProcAddr darf nur dann nicht verwendet werden wenn ausserhalb des eigentlichen Ablaufthreads ein Call abgesetzt würde. Schreibt man jedoch eine ASM-Funktion welche eine mit Procaddr bezogene Funktion aufruft und der eigentliche Ablauf des XProfanprogrammes wegen des Inline-ASM-Aufrufes sowieso geblockt ist, dann ist das sogar eine gute Möglichkeit welche ich ebenso oft nutze - und das funktioniert auch sehr sehr zuverlässig.

Ein Profanbefehl in einer ASM Schleife ist also solange kein Problem, wie die ASM-Schleife auch im selben Thread passiert und/oder nicht z.B. über Timer injeziert wird.
 
29.08.2008  
 




Frank
Abbing
Peter, sollten also unvorhergesehene Dinge bei der Ausführung deine Programmes passieren, wende dich bitte direkt an den guten, alten iF. Ich bin sowas von raus aus der Sache...
 
29.08.2008  
 



Ein Call auf eine mit ProcAddr-bezogene XProfanfunktion darf nur geschehen wenn das XProfan grad "steht" - ist eigentlich ganz einfach.

Ein Call heraus aus einer Inlineasm-Funktion, die grade abgearbeitet wird, ist also unproblematisch. Diese Inlineasm-Funktion darf nur nicht in einem anderen Thread abgearbeitet werden da sichergestellt werden muss, dass das XProfanprogramm auch wirklich grad "steht". Deshalb ist auch ein Call per SetTimer-Api nicht zu nutzen, aber Roland wird sicher auch das noch hinbekommen.

Im Bezug auf Assembler ist Frank aber deutlicher Ansprechpartner da ich (im Vergleich zu Ihm) hiermit viel viel weniger programmiere, aber dieses spezielle Problem ist ja kein ASM-Problem.
 
29.08.2008  
 




Sebastian
Sprenger
Peter Bierbach
Kannst du mal eine kleine Demo von deinem Vorschlag mit Procaddr herstellen.

KompilierenMarkierenSeparieren
 
Profan² 7.0e, XProfan 9, 11.2a, FreeProfan32
Windows Vista Home Premium 32-Bit, 2.8 Ghz, 4 GB RAM
Windows Me, 1.8 Ghz, 256 MB RAM
29.08.2008  
 



Und ein Returnwert liegt imho auch (korrekterweise) im eax-Register.
 
29.08.2008  
 



Jup, danke.

Haut sauber hin und ist ganz fix .

Danke.

mfg
peter
 
29.08.2008  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

15.077 Betrachtungen

Unbenanntvor 0 min.
funkheld11.12.2022
p.specht04.06.2021
N.Art18.11.2020
iF24.09.2020
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie