| |
|
|
Normann Strübli | Salut,
peut-être habe je es oui irgendwo überlesen, mais sommes Prozeduren dedans des XPIA-Codes erlaubt?
allez cela? et comment peux ensuite qui obere Procédure quelque chose à qui aufrufende transfert si ret pas erlaubt ist?
Salut Normann |
|
|
| |
|
|
|
| eh bien Du könntest à den AsmStart-Bereich per Paramètres qui Prozeduradresse einer Profanprozedur angeben um cet ensuite avec Call aufzurufen. comment cela avec qui Parameterübergabe & des Returnwertes aussieht - j'aime eigendlich pas drüber sur).
Generell serait je en dissuader aus qui AsmProc une XPrfProc trop callen.
Salve. |
|
|
| |
|
|
|
Normann Strübli | non iF, cela la hâte du faux verstanden
j'ai deux Prozeduren dedans eines ASM-Blockes et qui une soll qui autre Aufrufen. de einem XPrfProc-Aufruf était pas qui discours...
qui Frage était si mehrer Prozeduren dedans des ASM-Blockes erlaubt sommes qui sich mutuel appel peut et quoi ensuite avec <ret> passiert.
|
|
|
| |
|
|
|
Michael Dell | Hi,
si Verschachtellung erlaubt ist sais je pas.
mais que voici allez: KompilierenMarqueSéparation {$clq}
Declare a&,b&,c&,d&
Cls
Print "Test Start:"
ASMSTART Zweite
Parameters a&,b&
Return c&
mov eax,para1
mov ebx,para2
add eax,ebx
ASMEND
ASMSTART Erste
Return d&
Local Var1 :DWORD
Local Var2 :DWORD
mov Var1,6
mov Var2,3
Scall Zweite,Var1,Var2
ASMEND
Print "Ergebnis (6+3=9): " + Str$(d&)
WaitKey
Fin
|
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 09.11.2005 ▲ |
|
|
|
|
| [quote-part:b049d93a42]non iF, cela la hâte du faux verstanden [/quote-part:b049d93a42]de quoi pour Prozeduren redest Du ensuite? dans ASM gibts aucun Prozeduren - je musste alors annehmen cela Du de XProfan-Prozeduren redest - de quoi sonst?
Asm-Bereiche sommes aucun Prozeduren - mais Funktionen.
Salve. |
|
|
| |
|
|
|
Frank Abbing | Hi,
trop Michaels Solution besoin du encore cela Macro Scall: KompilierenMarqueSéparationScall MACRO name:REQ,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22
FOR arg,<p22,p21,p20,p19,p18,p17,p16,p15,p14,p13,
p12,p11,p10,p9,p8,p7,p6,p5,p4,p3,p2,p1>
IFNB <arg>
push arg
ENDIF
ENDM
call name
includeasis.inc écrivons. Pour qui prochain XPIA-Version hab je cela maintenant la fois gemacht, ist oui un sinnvolles Macro. Michaels Solution ist qui einfachste, pour eigene Funktionen anstatt invoke simple Scall verwenden.
Call allez naturellement aussi, si le paramètre dans umgekehrter Reihenfolge aussi dem Stack abgelegt volonté. Invoke allez seulement, si le Funktionen auparavant défini volonté. Ist quoi pour qui prochain XPIA-Version.
P.S.: deux Funktionen dans einem Assemblerblock aller naturellement pas. |
|
|
| |
|
|
|
Normann Strübli |
merci, je denke cela hat mir weitergeholfen mais es venez bestimmt encore qui un- ou bien autre Frage de mir....
Salut Normann |
|
|
| |
|
|
|
Normann Strübli | et voilà vous déjà, qui prochain Frage:
qui XPIA meldet chez folgenden Code: Maschinencode konnte pas generiert volonté! je vois là mais ne...aucune faute -ou bien? Irgendetwas hab je là wohl encore pas kapiert. KompilierenMarqueSéparation...
Declare istring$,pb&
Asmstart String2Dword
Parameters addr(istring$)
Return pb&
LOCAL Result:DWORD
mov Result,0
mov edi,para1
invoke lstrlen,para1
.while eax!=0
xor edx,edx
mov dl,byte ptr [edi]
sub dl,"0"
mov esi,eax
dec esi
push eax
mov eax,edx
push ebx
mov ebx,10
.while esi > 0
mul ebx
dec esi
.endw
pop ebx
add Result,eax
pop eax
inc edi
dec eax
.endw
mov eax,Result
Asmend
|
|
|
| |
|
|
|
Michael Wodrich | la fois regarder:
- chez Paramètres ist aucun Variable angegeben mais une Funktion. - eax est un Ergebnis- et Rechenregister, pour Zähler ist ecx besser approprié (plutôt aus alter Zeit)
Es wird wohl à Paramètres liegen. simple la fois testen.
belle Grüße Michael Wodrich
Hab ici malheureusement aucun Werkzeuge vorliegen. |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 09.11.2005 ▲ |
|
|
|
|
Normann Strübli | mais dans qui Doku de Frank steht oui aussi:
[quote-part:e9d72de353]Paramètres x&, bereich#, addr(string$)[/quote-part:e9d72de353]
|
|
|
| |
|
|
|
Michael Wodrich | ensuite ändere s'il te plaît la fois den Namen qui Procédure. cela voulais je seulement avec écrivons, hatte es mais verworfen. Evtl. hängt es doch avec qui Art qui Namensgebung zusammen (ici speziell avec dem mot DWORD). |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 09.11.2005 ▲ |
|
|
|
|
Normann Strübli | non, c'est es malheureusement aussi pas. mais quand même merci pour Votre schnelle Aider!
Salut Normann |
|
|
| |
|
|