请教:小弟我想写一个加法的函数,要用堆栈传参数, 应该如何写啊能不能给个例子
请问:我想写一个加法的函数,要用堆栈传参数, 应该怎么写啊,能不能给个例子啊
我想写一个加法的函数,要用堆栈传参数, 应该怎么写啊,能不能给个例子啊
------解决方案--------------------
我想写一个加法的函数,要用堆栈传参数, 应该怎么写啊,能不能给个例子啊
------解决方案--------------------
- 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