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才能正常编译
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了