【发布时间】:2016-11-08 20:26:45
【问题描述】:
我正在为计算机体系结构课程开发一些“有趣”的实验室,让学生编写和运行一个非常简单的操作系统。我正在关注http://wiki.osdev.org/Bare_Bones 的 Bare Bones 设置,并使用 Richard Hull 的预编译 i686 交叉编译器 (https://github.com/rm-hull/barebones-toolchain)。
当我尝试使用%r8d 编写汇编代码时,我收到此错误
Error: bad register name `%r8'
自述文件说“有两种平台风格,32 位和 64 位,具体取决于您的主机 linux 环境”,但也将“i686(32 位 ELF)”列为目标之一。
问题的根源在于 ELF 目标是 32 位,我是否正确?如果是这样,是否有一种简单的方法可以让具有 64 位 ELF 目标的交叉编译器启动并运行?
【问题讨论】:
标签: gcc cross-compiling elf