******C语言中调用汇编的方法…*****

来源:百度知道 编辑:UC知道 时间:2024/05/31 09:44:47
我想在C程序中调用一段汇编命令,请问用什么办法呢?听别人说要导出外部连接什么的,我不懂,请知道的告知一下!回答时照顾我是个新手,最好写详细点呢!谢谢咯!
请问在DEV-C4.9.9里面怎么实现?要调用哪个头文件?

C语言中调用汇编的方法如下:
1、用关键字asm嵌入,例如:
void exchange(int a,int b);
main()
{
int x,y;
scanf(“%d,%d”,&x,&y);
printf(“x=%d,y=%d”,x,y);
exchange(x,y);
printf(“x=%d,y=%d”,x,y);
}
void exchange(int a,int b)
{
asm mov ax,a
asm mov bx,b
asm mov a,bx
asm mov b,ax
}
2、用_asm{ }格式
#include <stdio.h>
int main()
{
int result;
_asm {
mov eax,1
mov ebx,1
add eax,ebx
mov result, eax
}
printf("1+1=%d\n", result);
return 0;
}

汇编语言没有高级语言要占用较大的存储空间和较长的运行时间等缺点,它的运行速度快是高级语言所不能比拟的。可以说高级语言与汇编语言各有千秋。有时我们采用高级语言编程速度达不到要求,全部采用汇编语言编程工作量又大,此时可以采用"混合"编程,彼此相互调用,进行参数传递,共享数据结构及数据信息,是一种有效的编程方法。这种方法可以发挥各种语言的优势和特点,充分利用现有的多种实用程序、库程序等使软件的开发周期大大缩短。
1 高级语言与汇编语言的接口需要解决的问题
1、需要说明和建立调用者与被调用者间的关系被调用的过程或函数应预先说明为外部类型,如汇编子程序,应用PUBLIC说明其可被外部模块引用;调用程序则应预先说明要引用的外部模块名。
2、参数传递问题在汇编子程序之间通常采用寄存器作为参数传递的工具,汇编语言与高级语言程序间的参数传递,一般采用堆栈来传递,即调用程序