Deutsch
Assembler Forum

Prozeduraufruf erlaubt?

 

Normann
Strübli
Hallo,

vielleicht habe ich es ja irgendwo überlesen, aber sind Prozeduren innerhalb des XPIA-Codes erlaubt?

Geht das? Und wie kann dann die obere Prozedur etwas an die aufrufende übergeben wenn ret nicht erlaubt ist?

Gruß
Normann
 
09.11.2005  
 



Nun Du könntest an den AsmStart-Bereich per Parameters die Prozeduradresse einer Profanprozedur angeben um diese dann mit Call aufzurufen. Wie das mit der Parameterübergabe & des Returnwertes aussieht - ich mag eigendlich nicht drüber nachdenken.

Generell würde ich davon abraten aus der AsmProc eine XPrfProc zu callen.

Salve.
 
09.11.2005  
 




Normann
Strübli
Nein iF, das hast du falsch verstanden

Ich habe zwei Prozeduren innerhalb eines ASM-Blockes und die eine soll die
andere Aufrufen. Von einem XPrfProc-Aufruf war nicht die Rede...

Die Frage war ob mehrer Prozeduren innerhalb des ASM-Blockes erlaubt sind die sich gegenseitig aufrufen können und was
dann mit <ret> passiert.
 
09.11.2005  
 




Michael
Dell
Hi,

ob Verschachtellung erlaubt ist weiß ich nicht.

Aber das hier geht:
KompilierenMarkierenSeparieren
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
09.11.2005  
 



[quote:b049d93a42]Nein iF, das hast du falsch verstanden [/quote:b049d93a42]Von was für Prozeduren redest Du dann? In ASM gibts keine Prozeduren - ich musste also annehmen das Du von XProfan-Prozeduren redest - von was sonst?

Asm-Bereiche sind keine Prozeduren - sondern Funktionen.

Salve.
 
09.11.2005  
 




Frank
Abbing
Hi,

zu Michaels Lösung benötigst du noch das Macro Scall:
KompilierenMarkierenSeparieren
Das kannst du am besten (zu den anderen Macros) in XPIAs Datei includeasis.inc schreiben. Für die nächste XPIA-Version hab ich das jetzt mal gemacht, ist ja ein sinnvolles Macro.
Michaels Lösung ist die einfachste, für eigene Funktionen anstatt invoke einfach Scall verwenden.

Call geht natürlich auch, wenn die Parameter in umgekehrter Reihenfolge auch dem Stack abgelegt werden. Invoke geht nur, wenn die Funktionen vorher definiert werden. Ist was für die nächste XPIA-Version.

P.S.: Zwei Funktionen in einem Assemblerblock gehen natürlich nicht.
 
09.11.2005  
 




Normann
Strübli


Danke, ich denke das hat mir weitergeholfen
Aber es kommt bestimmt noch die ein- oder andere Frage von mir....

Gruß
Normann
 
09.11.2005  
 




Normann
Strübli
Und da ist sie schon, die nächste Frage:

Der XPIA meldet bei folgenden Code: Maschinencode konnte nicht generiert werden!
Ich sehe da aber kein Fehler -oder?
Irgendetwas hab ich da wohl noch nicht kapiert.
KompilierenMarkierenSeparieren
 
09.11.2005  
 




Michael
Wodrich
Mal schauen:

- bei Parameters ist keine Variable angegeben sondern eine Funktion.
- eax ist ein Ergebnis- und Rechenregister, für Zähler ist ecx besser geeignet (eher aus alter Zeit)

Es wird wohl an Parameters liegen. Einfach mal testen.

Schöne Grüße
Michael Wodrich

Hab hier leider keine Werkzeuge vorliegen.
 
Programmieren, das spannendste Detektivspiel der Welt.
09.11.2005  
 




Normann
Strübli
Aber in der Doku von Frank steht ja auch:

[quote:e9d72de353]Parameters x&, bereich#, addr(string$)[/quote:e9d72de353]
 
09.11.2005  
 




Michael
Wodrich
Dann ändere bitte mal den Namen der Prozedur. Das wollte ich erst mit schreiben, hatte es aber verworfen.
Evtl. hängt es doch mit der Art der Namensgebung zusammen (hier speziell mit dem Wort DWORD).
 
Programmieren, das spannendste Detektivspiel der Welt.
09.11.2005  
 




Normann
Strübli
Nein, das ist es leider auch nicht.
aber trotzdem danke für Deine schnelle Hilfe!

Gruß
Normann
 
09.11.2005  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

13.657 Betrachtungen

Unbenanntvor 0 min.
E.T.01.12.2011

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