ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

验证实验 Blum’s Book: Sample programs in Chapter 04, 05 (MovingData)

2021-07-01 23:59:39  阅读:287  来源: 互联网

标签:Chapter ld 04 programs 32 blog 64 details net


操作系统实验课的第一个实验,所以作业内容之外记录了一些环境配置的方法。

操作系统:ubuntu20.04LTS

实验步骤:https://blog.csdn.net/zwx54088/article/details/115718828

chapter04

cpuid.s顺利完成

/*cpuid2.s部分开始出现问题,先是python版本不匹配的问题,有两个方向,修改文件中使用的py版本,或者安装文件中的py版本。具体一会儿谈。

很多解决办法中提到yum,方便起见安装一个。注意搜索ubuntu安装yum(而不是linux,搜不到)。找到如下结果。

ubuntu 安装yum:https://blog.csdn.net/qq_43029747/article/details/94874442 */

以上问题各种报错(python、ld:can not find lc等)本质是64位环境下对32位程序不兼容,搜索“64位环境编译32位程序”找到对应教程:https://blog.csdn.net/msdnwolaile/article/details/50185103,根据教程配置后终于顺利完成实验chapter04部分。

chapter05

“汇编代码 编译出现-invalid instruction suffix for push”的问题,解决办法:https://blog.csdn.net/jackailson/article/details/82192273 。

第6题出现报错,一开始是“bash: ./movtest3: No such file or directory”,原因是忘了ld链接,虽然出现了.o文件但是没用。然后是“bash: ./movtest3: Accessing a corrupted shared library
”,这是因为虽然链接了,但因为缺少了“--32”(as)和“-m elf_i386”(ld),按默认编译成了64位的可执行文件,但代码是基于32位cpu的。只加了后者,as时忘记加“--32”的话会出现“ld: i386:x86-64 architecture of input file `movtest3.o' is incompatible with i386 output”的报错。全部修正后成功运行。(这一串bug是否出现还要看是否含不兼容的代码)

后续都参考前述即可。

标签:Chapter,ld,04,programs,32,blog,64,details,net
来源: https://blog.csdn.net/m0_59752752/article/details/118381401

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有