我开始移植一个用C语言编写的程序,并用汇编语言编写几段代码,用32位机器的指令 - 比如 ljmp - 到64位机器。
是否有一个地方/文档在装配中有32位机器的指令和64位机器的对应物?如果没有,我在哪里可以找到列出32位和64位机器的所有指令的文档?
因为很明显,我是这种情况的新手。让我们澄清一些观点。
我在很早的时候就移植了一个操作系统。它是用x86机器编写的。现在,我希望它在x86_64上运行。
它是在考虑到UNIX的Linux机器中编写的。我几乎可以肯定原作者正在英特尔机器上写它。我也在英特尔,但我也想在AMD运行操作系统。
使用的编译器是gcc。
答案 0 :(得分:3)
首先阅读:http://x86asm.net/articles/x86-64-tour-of-intel-manuals/index.html。
然后在此处下载指令集参考:http://developer.intel.com/products/processor/manuals/index.htm。
答案 1 :(得分:3)
你没有提供任何背景,甚至没有提供类型的CPU,但我建议你也许应该把这个64位端口作为重新考虑使用汇编语言的机会。虽然它肯定有它的位置,但我建议用C ++重新编码例程并对编译器的优化输出进行基准测试,看看它是否真的更慢。在许多情况下,它不会。