64位x86-64处理器
另一方面,當處理器運行于本機 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)。不過它們常常被看做是模式而不是子模式,因此,先來了解這兩個模式。
在兼容模式下,現有的 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 位最主要的區別如下所示:
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处理器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【读书笔记】《pattern hatch
- 下一篇: LV逻辑卷组