c语言中如何调用汇编程序
答案:2 悬赏:0 手机版
解决时间 2021-02-04 16:09
- 提问者网友:呐年旧曙光
- 2021-02-04 12:55
c语言中如何调用汇编程序
最佳答案
- 五星知识达人网友:舍身薄凉客
- 2021-02-04 14:31
1、如果汇编程序是可执行文件,比如exe文件,则可以使用system函数直接调用。比如下面的代码,用system()打开windows上的记事本程序。
#include
#include
int main()
{
system("notepad.exe");
return 0;
}2、在C语言源码中,可以通过内联汇编来直接编写汇编程序代码。不同的编译器使用内联汇编的方法不同,vc/vs编译器中一般使用__asm关键字来使用内联汇编,gcc编译器一般使用asm关键字来使用内联汇编,以vc6.0为例,下面的代码通过使用内联汇编来计算1+1,并将结果保存到int型变量result中。
#include
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;
}
#include
#include
int main()
{
system("notepad.exe");
return 0;
}2、在C语言源码中,可以通过内联汇编来直接编写汇编程序代码。不同的编译器使用内联汇编的方法不同,vc/vs编译器中一般使用__asm关键字来使用内联汇编,gcc编译器一般使用asm关键字来使用内联汇编,以vc6.0为例,下面的代码通过使用内联汇编来计算1+1,并将结果保存到int型变量result中。
#include
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楼网友:一把行者刀
- 2021-02-04 15:43
c程序调用汇编程序
汇编程序的设计要遵守atpcs(arm—thumb procedure call standard),保证程序调用时参数的正确传递。在汇编程序中使用export 伪操作声明本程序,使得本程序可以被别的程序调用。在c程序使用extern声明该汇编程序。
下面是一个c程序调用汇编程序的例子。其中汇编程序strcopy实现字符串复制功能,c程序调用strcopy完成字符串复制的工作。
//c程序
#include
extern void strcopy(char *d, const char *s);
int main( )
{
const char *srcstr=”first string-source”;
char dststr[ ]=”second string-destination”;
printf(“before copying:\n”);
printf(“%s\n %s\n”, srcstr,dststr);
strcopy(dststr,srcstr);
printf(“after copying:\n”);
printf(“%s\n %s\n “,srcstr,dststr);
while(1) ;
}
;汇编程序
area scopy, code, readonly
export strcopy
strcopy
ldrb r2, [r1], #1
strb r2, [r0], #1
cmpr2,#0
bne strcopy
mov pc, lr
end
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯