bpl*_*lus 7 linux 64-bit assembly
我目前正在学习汇编语言.我在Linux Mint(32位)上使用Gas.使用本书: 从头开始编程.
我使用的机器有一个AMD Turion 64位处理器,但我限制在2 GB的RAM.我正在考虑将我的Linux安装升级到64位版本的Linux Mint,但我担心因为本书针对的是32位x86架构,所以代码示例不起作用.
所以有两个问题:
您的代码示例应该仍然有效。64 位处理器和操作系统仍然可以在某种“兼容模式”下运行 32 位代码。您的装配示例没有什么不同。您可能需要提供一两行额外的汇编代码(例如 .BITS 32),但仅此而已。
一般来说,使用 64 位操作系统会比使用 32 位操作系统更快。x86_64 的寄存器比 i386 更多。由于您正在进行汇编,所以您已经知道寄存器的用途...拥有更多寄存器意味着需要在堆栈(和其他临时内存)上移入和移出的内容更少,因此您的程序花费更少的时间来管理数据和更多时间处理这些数据。
编辑:要使用 Gas 在 64 位 Linux 上编译 32 位代码,只需使用命令行参数“--32”,如GAS 手册中所述