汇编和C相互调用

这里有几个原则:
1.调用者需要在调用前声明被调用者。
c的做法
void myprint(char* msg, int len);

int choose(int a, int b)
{
	if(a >= b){
		myprint("the 1st one\n", 13);
	}
	else{
		myprint("the 2nd one\n", 13);
	}

	return 0;
}

汇编的做法:
extern choose
...
...
push	num2nd
push	num1st
call	choose

2.汇编提供给外部C调用的代码需要在汇编中做全局声明
global myprint

3.调用者需要负责清除堆栈

push	num2nd
push	num1st
call	choose
add	esp, 4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值