2.5 OpenEuler 中C与汇编的混合编程(选做)

2021/11/28 14:39:59

本文主要是介绍2.5 OpenEuler 中C与汇编的混合编程(选做),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

2.5 OpenEuler 中C与汇编的混合编程(选做)


0.任务详情

1.  在X86_64架构下实践2.5中的内容,提交代码和实践截图
2. 把2.5的内容在OpenEuler中重新实践一遍,提交相关代码和截图
3. 实验内容要经过答辩才能得到相应分数

1.首先在x86_64kali中实践内容。

1.1

image-20211127213534928

入口代码

image-20211127215157320

函数体代码

image-20211127215251559

退出代码

image-20211127215338124

1.2

image-20211127215930987

image-20211127222712201

这里有点绕,得分两个文件进行编译,一个是s.s,另一个是s.c,将两份文件编译成.o文件再一起编译成可执行文件。

1.3

image-20211128114734035

这里编译出现问题是因为编译环境应该是32位的,这里的pop和push产生的是32位,但是系统环境应该是64位的,所以类型不匹配,需要再过程中加上-m32。(或者将所有指令都换成xxxl是否可行?)

参考博客:https://www.codenong.com/21245245/

1.4

image-20211128115644632

这里问题与上面相同,编译加上-m32即可通过。

代码链接:https://gitee.com/sister_ben/kali/tree/master/test2-5

2.接下来在树莓派openeuler中完成。

在openeuler中的源都没有有关32位库的安装包,无法安装32位编译环境。



这篇关于2.5 OpenEuler 中C与汇编的混合编程(选做)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程