请教:小弟我想写一个加法的函数,要用堆栈传参数, 应该如何写啊能不能给个例子

请问:我想写一个加法的函数,要用堆栈传参数, 应该怎么写啊,能不能给个例子啊
我想写一个加法的函数,要用堆栈传参数, 应该怎么写啊,能不能给个例子啊

------解决方案--------------------
Assembly code

code    segment
    assume cs:code
_add    proc    near
    mov    bp,sp
    mov    ax,[bp+2]
    add    ax,[bp+4]
    ret
_add    endp

start:
    mov    ax,1
    push    ax
    mov    ax,9
    push    ax
    call    _add

    ;now result in ax == 1+9

    mov    ah,4ch
    int    21h
code    ends
    end    start

------解决方案--------------------
code segment
assume cs:code
_add proc near
push bp // 保存bp
mov bp,sp
mov ax,word ptr [bp+4]
add ax,word ptr [bp+6]
pop bp
ret
_add endp
或者:
_add proc near
mov ax,word ptr [sp+2]
add ax,word ptr [sp+4]
ret
_add endp

------解决方案--------------------
如2楼,可以先声明子过程原型:

Assembly code

.code
_addsub PROTO BYTE,BYTE

main PROC
...
invoke _addsub 1,2
...
main ENDP

_addsub PROC x:DWORD,y:DWORD
...
_addsub ENDP
END main