永发信息网

c语言中如何调用汇编程序

答案:2  悬赏:0  手机版
解决时间 2021-02-04 16:09
c语言中如何调用汇编程序
最佳答案
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;
}
全部回答
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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如何写自己的.cfg配置文件
谁能帮我査一下这个lp223.104.1***地址 越详
白描手法是什么意思
桃园宾馆地址有知道的么?有点事想过去
下列各项中,不属于直接人工标准工时组成内容
我是一个内向的初3小男生,我的胸部发育不良
喜欢就在你身边看着蓝蓝的天还有你微笑的脸简
两仪钢板仓有限责任公司这个地址在什么地方,
刮奏和花指有什么不同吗
2010年上海世博实现了环保世博、生态世博目标
战地2在多人游戏中如何改账号名称
白羊男对前任什么态度?
一个质点做简谐运动,它每次经过同一位置时,
新车上牌前可以贴膜吗
请问主板集成阵列好 还是 西霸3124阵列卡好?
推荐资讯
脑筋急转弯大哥打大嫂
九年级(2)班准备举办“反殖民,争独立”的
Matlab中rand和rand表示什么意思
请问铜铝复合暖气片如何保养?
顺德区佛山蕾特恩专业祛痘国际连锁(顺德嘉信
怎么把PDF(在QQ邮箱里的)放到看ipad上的Ado
据考古发现,在殷墟王陵区的祭祀场中,发现大
热血江湖凝神珠经验丹满了能交易吗
手机显示正在充电但是充不进电,已经把家里的
广源石材地址有知道的么?有点事想过去
花坪社区居委会地址在什么地方,我要处理点事
五星太阳能热水器仪表怎么设置
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?