CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

64 位处理器架构

2022-12-31 06:27| 发布者: admin| 查看: 332| 评论: 0|来自: AutoCAD

两家芯片制造商——英特尔和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 ; addAndMul
push 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 ; addAndMul
mov 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

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 13:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部