首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

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

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

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

[解决办法]

Assembly code
code    segment    assume cs:code_add    proc    near    mov    bp,sp    mov    ax,[bp+2]    add    ax,[bp+4]    ret_add    endpstart:    mov    ax,1    push    ax    mov    ax,9    push    ax    call    _add    ;now result in ax == 1+9    mov    ah,4ch    int    21hcode    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,BYTEmain PROC...invoke _addsub 1,2...main ENDP_addsub PROC x:DWORD,y:DWORD..._addsub ENDPEND main 

热点排行