MASM:如何通过引用传递值

时间:2016-05-03 23:21:59

标签: assembly masm masm32

我正在尝试将2个变量传递给过程,将它们一起添加,然后返回并打印结果。我正在使用Stack Frame。我没有得到正确的结果,而是一个大的不正确的数字。谢谢。

        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

1 个答案:

答案 0 :(得分:-1)

在将数据推入堆栈之前清除EAX寄存器。

    mov  eax,0
    push 10
    push 20

    call Test12