两家芯片制造商——英特尔和AMD——控制着64位PC微处理器市场。他们的 64 位处理器使用两种竞争的 64 位架构之一:IA-64 或 X64。AMD64和英特尔的EM64T平台使用X64架构。英特尔的安腾芯片引入了基于RISC的IA-64架构。 X64 扩展了 32 位 Windows 计算机中常见的标准 IA-32 X86 体系结构。该架构维护IA-32的基本寄存器和指令集。因此,X64 处理器本机执行 32 位指令集,这有助于提高性能。为了使 IA-32 适应 64 位计算,X64 添加了新的寄存器和指令,并更改了一些指令名称。 IA-64 是本机 64 位平台,因此必须使用仿真来处理 IA-32 指令。无法本机运行 32 位代码会妨碍 IA-64 计算机上旧版 32 位 Windows 应用程序的性能。 AutoCAD 64 位仅支持使用 X64 体系结构的平台。 下面的代码演示了 32 位和 64 位指令之间的一些差异。此示例显示了一个简单的 C++ 函数,后跟 IA-32 和 X64 编译器为其生成的汇编代码: // Simple C++ function that adds and multiplies. INT_PTR addAndMul(INT_PTR a, INT_PTR b, INT_PTR c) {return (a + b) * c;} ; 32-bit compiler assembly listing ?addAndMul@@YAHHHH@Z PROC ; addAndMulpush ebp mov ebp, esp mov eax, DWORD PTR _a$[ebp] add eax, DWORD PTR _b$[ebp] imul eax, DWORD PTR _c$[ebp] pop ebp ret 0?addAndMul@@YAHHHH@Z ENDP ; addAndMul ; 64-bit (X64) compiler assembly output ?addAndMul@@YA_J_J00@Z PROC ; addAndMulmov QWORD PTR [rsp+24], r8 mov QWORD PTR [rsp+16], rdx mov QWORD PTR [rsp+8], rcx mov rax, QWORD PTR b$[rsp] mov rcx, QWORD PTR a$[rsp] add rcx, rax mov rax, rcx imul rax, QWORD PTR c$[rsp] ret 0 ?addAndMul@@YA_J_J00@Z ENDP ; addAndMul |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-8 19:09
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.