深入了解x64架构下的编程模型与汇编语言编程
1. x64架构的数学协处理器
x64架构采用了第三代数学协处理器AVX。在此之前,还有第一代的MMX架构和第二代的SSE架构。
很多人会问,什么时候会有128位的CPU呢?实际上,在一些关键应用场景中,我们已经拥有了128位的处理能力。在高级数学应用,如3D建模、视频处理、密码学、数据压缩和人工智能等领域,128位寄存器是必不可少的。所有集成了SSE协处理器的现代CPU都为数学协处理器配备了128位寄存器(通用CPU无法直接使用这些寄存器)。不仅如此,AVX协处理器将寄存器位数提升到了256位,而2021年推出的AVX - 512(主要用于服务器CPU)则可以使用512位寄存器进行数学运算。鉴于有128位、256位和512位的数学寄存器可用于数字运算,将通用寄存器扩展到128位的意义不大。64位被广泛认为是通用计算的“最佳选择”,并且在很长一段时间内仍将如此。
需要注意的是,使用SSE和AVX编程较为复杂,对于初学者来说,可以参考相关资料进行学习。建议在掌握普通x64汇编之后,再深入学习数学协处理器编程。
2. 四大汇编编程模型
在x64位英特尔CPU上,有四种主要的编程模型,不过其中两种现在已被认为是过时的。这些模型的差异主要体现在使用寄存器来寻址内存方面,其他差异(尤其是高端方面的差异)在很大程度上被操作系统隐藏了。以下是对这四种模型的简要介绍:
2.1 实模式扁平模型
- 内存限制 :在实模式下,CPU只能访问1MB(1,048,576字节)的内存。你可以使用段:偏移寄存器技巧,将段寄存器和偏
超级会员免费看
订阅专栏 解锁全文

2865

被折叠的 条评论
为什么被折叠?



