另一方面,当处理器运行于本机 64 位模式时,是不支持 16 位实模式或虚拟 8086 模式的。(在传统模式(legacy mode)下,还是支持 16 位编程,但是在 Microsoft Windows 64 位版本中不可用。)

注意尽管 x86-64 指的是指令集,但是也可以将其看作是处理器类型。学习汇编语言时,没有必要考虑支持 x86-64 的处理器之间的硬件实现差异。

第一个使用 x86-64 的 Intel 处理器是 Xeon,之后还有许多其他的处理器,包括 Core i5 和 Core i7。AMD 处理器中使用 x86-64 的例子有 Opteron 和 Athlon 64。

另一个为人所知的 64 位 Intel 架构是 IA-64,后来被称为 Itanium。 IA-64 指令集与 x86 和 x86-64 完全不同,Itanium 处理器通常用于高性能数据库和网络服务器。

64 位操作模式

Intel 64 架构引入了一个新模式,称为 IA-32e。从技术上看,这个模式包含两个子模式:兼容模式(compatibility mode)和 64 位模式(64-bit mode)。不过它们常常被看做是模式而不是子模式,因此,先来了解这两个模式。

  1. 兼容模式
    在兼容模式下,现有的 16 位与 32 位应用程序通常不用进行重新编译就可以运行。但是,16 位 Windows(Win16)和 DOS 应用程序不能运行在 64 位 Microsoft Windows 下。

与早期 Windows 版本不同,64 位 Windows 没有虚拟 DOS 机器子系统来利用处理器的功能切换到虚拟 8086 模式。
2) 64 位模式
在 64 位模式下,处理器执行的是使用 64 位线性地址空间的应用程序。这是 64 位 Microsoft Windows 的原生模式,该模式能使用 64 位指令操作数。
基本 64 位执行环境
64 位模式下,虽然处理器现在只能支持 48 位的地址,但是理论上,地址最大为 64 位。从寄存器来看,64 位模式与 32 位最主要的区别如下所示:

16 个 64 位通用寄存器(32 位模式只有 8 个通用寄存器)
8 个 80 位浮点寄存器
1 个 64 位状态标志寄存器 RFLAGS (只使用低 32 位)
1 个 64 位指令指针寄存器 RIP

32 位标志寄存器和指令指针寄存器分别称为 EFLAGS 和 EIP。此外,还有一些 x86 处理器用于多媒体处理的特殊寄存器:

8 个 64 位 MMX 寄存器
16 个 128 位 XMM 寄存器(32 位模式只有 8 个 XMM 寄存器)

通用寄存器
在《32位x86处理器》一节中介绍 32 位处理器时介绍过通用寄存器,它们是算术运算、数据传输和循环遍历数据指令的基本操作数。通用寄存器可以访问 8 位、16 位、32 位或 64 位操作数(需使用特殊前缀)。

64 位模式下,操作数的默认大小是 32 位,并且有 8 个通用寄存器。但是,给每条指令加上 REX(寄存器扩展)前缀后,操作数可以达到 64 位,可用通用寄存器的数量也增加到 16 个:32 位模式下的寄存器,再加上 8 个有标号的寄存器,R8 到 R15。下表给出了 REX 前缀下可用的寄存器。

还有一些需要记住的细节:

64 位模式下,单条指令不能同时访问寄存器高字节,如 AH、BH、CH 和 DH,以及新字节寄存器的低字节(如 DIL)。
64 位模式下,32 位 EFLAGS 寄存器由 64 位 RFLAGS 寄存器取代。这两个寄存器共享低 32 位,而 RFLAGS 的高 32 位是不使用的。
32 位模式和 64 位模式具有相同的状态标志。

64位x86-64处理器相关推荐

  1. c语言与64位windows不兼容_微软发布可模拟 64 位 x86 程序的 ARM 版 Windows 10

    微软今天宣布推出可以在 ARM 架构 PC 上模拟 64 位 x86 程序的新版 Windows 10.这意味着,拥有 ARM PC 的用户,比如 Surface Pro X 可以安装 64 位 x8 ...

  2. 八核 64 位 ARM Cortex-A53 处理器在安卓工控机主板上的应用

    这是南京时仓信息科技HI-PROS利用ARM Cortex-A53开发的一块便携式/车载仪器如手机般便捷操作的主板尺寸仅有三张名片大小,待机功耗低于3w,解决了高清口的问题,支持21.5-65寸屏,能 ...

  3. Windows下VS2015 MPI编译64位Boost1.64

    Windows下VS2015编译64位Boost1.64 2017年12月08日 15:51:48 阅读数:346 参考原帖:https://gist.github.com/UnaNancyOwen/ ...

  4. 计算机64位地址总线,64位CPU和数据/地址总线的关系

    一般我们常说的64位&32位机器中位数是由CPU决定的.一般我们所说的64位技术是相对32位而言的,这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存 ...

  5. 32位uefi引导64位Linux,维护版win8pe(32位+64位+纯64位,支持BIOS+EFI)

    此文件包的ISO格式,下载后解压即可得到ISO文件. 本合盘启动方式支持BIOS+32位EFI+64位EFI启动.写入方式支持量产,刻盘,B+,U+(不隐藏.普通隐藏.高端隐藏).最大化支持新老机型启 ...

  6. Intel 64/x86_64/x86/IA-32处理器标志寄存器详解(6) - 64位RFLAGS

    64位标志寄存器RFLAGS 在64位模式下,RFLAGS标志寄存器扩展到了64个比特位,但是最高32比特位全部是保留位.RFLAGS(64位模式)与EFLAGS(兼容模式)的系统标志位一致,没有增加 ...

  7. Intel 64/x86_64/x86/IA-32处理器标志寄存器详解(2) - 32位EFLAGS - 80386(386, Intel386)/80486(486, Intel486)

    80386/386/Intel386标志寄存器EFLAGS 80386增加了RF/VM标志位,用于支持虚拟8086模式与指令断点调试. 80486/486/Intel486标志寄存器EFLAGS (1 ...

  8. 浅淡Windows7 32位与64位/x86与x64的区别

    看到有很多会员问到底是选Windows7 x86,还是选x64.这里简单的谈一下这这两种系统的区别. 简单的说x86代表32位操作系统  x64代表64位操作系统. 简单的判断电脑是否支持64位操作系 ...

  9. [分享]Win7 32位与64位/x86与x64的区别

    看到有很多会员问到底是选Windows7 x86,还是选x64.这里简单的谈一下这这两种 系统 的区别. 简单的说x86代表32位操作系统  x64代表64位操作系统. 如果你的 CPU 是双核以上, ...

  10. Intel 64/x86_64/x86/IA-32处理器的指令指针(IP/EIP/RIP)

    Instruction Pointer 指令指针IP/EIP/RIP的基本功用是指向要执行的下一条地址.在8080 8位微处理器上的寄存器名称是PC(program counter,程序计数器),从8 ...

最新文章

  1. java 静态方法覆盖_Java中方法的覆盖和静态方法的隐藏
  2. wxWidgets:菜单
  3. 【BZOJ1572】【usaco 2009 open】工作安排job
  4. 8086汇编复习4 - int指令 - 使用emu8086
  5. nginx反向代理tomcat时遇到一个问题
  6. 基本电子电路系列——MOS管
  7. python3-字典中的一些常用方法
  8. 数据结构与算法——二分查找与二叉排序树
  9. linux系统安装显卡驱动卡顿,关于Ubuntu16.04上N卡驱动导致滚动屏幕卡顿问题
  10. python sympy安装_SymPy (A) 环境搭建与简介
  11. ZeroTier内网穿透工具配置
  12. 学习中碰到的一些优化工具包和库
  13. 为什么每个程序员都应该学习C语言?
  14. 解混淆/脱壳工具 - De4dot
  15. 【投稿提醒】2023年数字信号处理前沿国际会议(CFDSP 2023)
  16. Linux苹果工具,Projectsandcastle:一款针对iPhone的AndroidLinux支持工具
  17. logiops安装以及在ubuntu中配置logiops为罗技鼠标自定义按键和手势
  18. 蓝桥杯2013第四届 第四题39级台阶
  19. clang: error:clang frontend command failed due to signal
  20. 美国信用评估机构遭黑客入侵,半数美国人受影响!

热门文章

  1. 记忆力训练软件测试自学,记忆力训练题,每天10分钟,一周提高5倍记忆力
  2. 全国省市县三级数据库
  3. 中兴java笔试题_中兴Java 笔试题.doc
  4. ECSHOP和SHOPEX快递单号查询中通插件V8.6专版
  5. Hibernate配置(核心配置文件.cfg.xml 和映射配置文件.hbm.xml)(对象-关系映射 Object Relational Mapping)
  6. 华为HCNE题库大全(第一部)
  7. CVE-2017-11176: A step-by-step Linux Kernel exploitation (part 3/4)
  8. linux安装英伟达显卡驱动
  9. 餐厅小票打印模板_收银系统小票标签设置
  10. 软考网工-第四章知识产权与标准化