注册 登录
编程论坛 汇编论坛

请问用汇编如何编写类似C的函数?

ivapple 发布于 2008-09-15 14:38, 1165 次点击
比如
int Max(int a, intb)
{
    return a>b?a:b;
}
之类的函数该怎么写,参数怎么传递,如果里面要用局部变量怎么办,如果有递归呢?
我对汇编了解不多,让各位见笑了,可能问的有点傻。希望能指点迷津?
5 回复
#2
lwq20152008-09-15 19:00
支持你的想法 新手啊
#3
summerxi2008-09-15 21:11
用条件转移吧。再用XCHG实现数据交换。。。
(我也是新人,不知道对不
#4
ONEPROBLEM2008-09-15 22:43
用Win32汇编的话,我还会点.其它的就不懂了:
例:
int Max(int a, intb)
{
    return a>b?a:b;
}
;==========================
_Max    proc    _a,_b
            ;中间部分略
_Max    endp

;然后,就可以:
invoke    _Max,x,y
;返回值就在eax中.
;其中,_a,_b是形参;而x,y则是实参.
#5
ONEPROBLEM2008-09-15 22:46
其实在Win32汇编里,许多东西都可以做成函数的形式,然后再调用.也叫做模块化编程吧?
#6
rediums2008-09-16 19:34
Max proc c
    push ebp
    mov ebp,esp
    mov eax,[ebp+8]
    cmp eax,[ebp+12]
    ja next
    mov eax,[ebp+12]
next:
    pop ebp
    ret
Max endp

push b
push a
call Max
add esp,8
1