2.5 OpenEuler 中C与汇编的混合编程(选做)
任务详情
- 在X86_64架构下实践2.5中的内容,提交代码和实践截图
- 把2.5的内容在OpenEuler中重新实践一遍,提交相关代码和截图
- 实验内容要经过答辩才能得到相应分数
过程
一、在X86_64架构下实现
查看linux虚拟机版本
下载gcc32位库
sudo apt-get install gcc-multilib g++-multilib module-assistant
此时,就可以使用gcc -m32指令编译32位程序了
1、用汇编代码编程
将c代码编译成汇编代码
c代码:
#include<stdio.h>
extern int B();
int A(int x,int y)
{
int d,e,f;
d =4; e =5; f=6;
d=B(d,e);
}
使用指令 gcc -m32 -S
将a.c代码编译成32位的汇编代码
查看编译结果:
2、用汇编语言实现函数
示例2.2
程序的c代码与汇编代码:
编译指令:gcc -m32 s.c s.s -o s
运行结果:
示例2.3
c代码与汇编代码:
编译指令:
gcc -m32 mysum.c mysum.s -o mysum
注意使用该指令时,要在xx.s文件中加入.code32才能正常编译