我目前正在学习汇编语言。 我正在使用 Gas在 Linux Mint (32 位)。使用本书: Programming from the Ground Up .
我使用的机器有一个 AMD Turion 64 bit处理器,但我仅限于 2 GB 的 RAM。 我正在考虑将我的 Linux 安装升级到 64 位版本的 Linux Mint,但我担心因为本书针对的是 32 位 x86 架构,所以代码示例无法运行。
所以两个问题:
- 代码示例是否可能存在任何问题?
- 这里有没有人注意到使用 64 位 Linux 比使用 32 位 Linux 总体上有什么好处(我在 Stack Overflow 上看到过一些与此有关的帖子,但它们主要与 Windows Vista 和 Windows XP 相关。)
最佳答案
您的代码示例应该仍然有效。 64 位处理器和操作系统仍然可以在某种“兼容模式”下运行 32 位代码。您的 assembly 示例也不异常(exception)。您可能需要提供一两行额外的汇编代码(例如 .BITS 32),仅此而已。
一般来说,使用 64 位操作系统会比使用 32 位操作系统更快。 x86_64 比 i386 有更多的寄存器。由于您正在从事汇编工作,因此您已经知道寄存器的用途...拥有更多寄存器意味着必须将更少的东西移入和移出堆栈(以及其他临时内存),因此您的程序花费更少的时间来管理数据和更多时间处理这些数据。
编辑:要使用 gas 在 64 位 linux 上编译 32 位代码,您只需使用命令行参数“--32”,如 the GAS manual 中所述
关于linux - 64 位 linux,汇编语言,问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/574990/