Ich versuche, 2 Variablen an eine Prozedur zu übergeben, sie zusammen zu addieren und das Ergebnis zurückzugeben und zu drucken. Ich benutze den Stapelrahmen. Ich bekomme nicht das richtige Ergebnis, sondern eine große falsche Zahl. Vielen Dank.MASM: Wie Wert über Referenz übergeben wird
INCLUDE PCMAC.INC
.MODEL SMALL
.586
.STACK 100h
.DATA
sum DWORD ?
.CODE
EXTRN GetDec :NEAR, PutDDec : NEAR, PutHex : NEAR
Main PROC
_Begin
push 10
push 20
call Test12
; Print result
call PutDDec
_Exit
Main ENDP
Test12 PROC
push ebp
mov ebp, esp
mov eax, [ebp+12] ;
add eax, [ebp+8] ;
pop ebp
ret 8
Test12 ENDP
End Main
Funktioniert 'PutDDec', wenn Sie nur' eax' laden? Haben Sie einen Debugger verwendet, um den Wert in 'eax' zu prüfen? – Jester
Ja 'mov eax, 10' funktioniert gut zum Beispiel – user190494
Tut' push 10; pop eax' funktioniert auch gut? Verwenden Sie einen Debugger und/oder stellen Sie die tatsächliche Disassemblierung Ihres Codes bereit. – Jester