找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3386|回复: 0

有关x64的一些讨论

[复制链接]
发表于 2014-11-6 20:37:56 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
64位的架构其实有两种,一种是英特尔“发明”的IA-64,一种是AMD“发明”的AMD64。

IA 64的处理器,据我所知,有以下特性:
1、并行性,每个指令有三个slot,每个slot能做一件事——一条指令做三件事。
2、不兼容性,IA-64的CPU不兼容80x86的指令。

而AMD64则看起来就像我们平时用的x86的扩展,特点是:
1、兼容性,兼容80x86指令。
2、寄存器:
    eax->rax
    ecx->rcx
    edx->rdx
    ebx->rbx
    esp->rsp
    ebp->rbp
    esi->rsi
    edi->rdi
    eip->rip
    新增r8,r9,r10,r11,r12,r13,r14,r15
    寻址方式添加了[rip+XXX]这种方式,比如:
    mov rax,[rip+233]
看起来,AMD64就像是x86的直接扩展。

至少,我还没见过IA64的处理器。AMD在2003年出了AMD64以后,Intel便追随AMD出了兼容的指令集,有人说那是Intel唯一一次追随AMD。早期的Microsoft的一些SDK(典型的有SDK2003)就提供了对IA-64的支持,而现在大家使用的x64的Win7、Win8、Win8.1等都是AMD64的(当然IA-64的版本也可下载到)。
IA-64并没完全消失,但是基本上在国内没多少人使用。据说一些特别的服务器计算机使用的是IA-64的处理器,虽然主频不太高(大概1.5GHz左右吧?)但是据说性能不错。

我不知道从哪个版本的VS开始就支持x64了。好像VS2012默认只支持编译为x86、AMD64、ARM三种指令集的程序,IA64好像要用特殊的方式编译。VS2012编写X64程序的时候不能使用内联汇编(_asm或__asm关键字),但是可以“外联”汇编(用NASM编译,命令行开关是-f win64,然后C程序像使用静态库一样使用这个NASM编译出的OBJ即可)。
回复

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-11-21 21:34 , Processed in 0.035664 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表