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

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


0.任务详情

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

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

1.1

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

入口代码

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

函数体代码

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

退出代码

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

1.2

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

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

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

1.3

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

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

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

1.4

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

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

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

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

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

上一篇:openEuler“筑巢引凤”的实践与探索


下一篇:OpenEuler下OpenSSL的安装