Intel? 64 和 IA-32 架構(gòu) 軟件開發(fā)者手冊
卷1: 基礎(chǔ)架構(gòu)
章1
關(guān)于本手冊
1.1 本手冊支持的INTEL? 64 和 IA-32 處理器
1.2 卷1:基礎(chǔ)架構(gòu)概覽
1.3 符號約定
1.3.1 bit和byte順序
1.3.2 保留位和軟件兼容性
1.3.2.1 指令操作數(shù)
1.3.3 十六進(jìn)制和二進(jìn)制數(shù)
1.3.4 分段尋址
1.3.5 一種新的描述CPUID,CR和MSR的值的語法
1.3.6 異常
1.4 相關(guān)文獻(xiàn)
章節(jié)2
Intel? 64 和 IA-32 架構(gòu)
2.1 Intel? 64 和 IA-32 架構(gòu)簡史
2.1.1 16位處理器和分段 (1978)
2.1.2 Intel? 286 處理器 (1982)
2.1.3 Intel? 386 處理器 (1985)
2.1.4 Intel? 486 處理器 (1989)
2.1.5 Intel? 奔騰? 處理器 (1993)
2.1.6 P6處理器家族 (1995-1999)
2.1.7 奔騰?4處理器家族(2000-2006)
2.1.8 Intel? 至強(qiáng)? 處理器(2001-2007)
2.1.9 奔騰?M處理器(2003-2006)
2.1.10 奔騰?處理器至尊版(2005)
2.1.11 Intel? 酷睿? Duo 和 Solo處理器(2006-2007)
2.1.12 Intel? 至強(qiáng)? 處理器5100和5300系列 Intel? 酷睿2處理器家族(2006)
2.1.13 Intel? 至強(qiáng)? 處理器5200,5400,7400系列和Intel? 酷睿2處理器家族(2007)
2.1.14 Intel? 凌動? 處理器家族(2008)
2.1.15 Intel? 凌動? 處理器家族基于 Silvermont 微架構(gòu)(2013)
2.1.16 Intel? 酷睿? i7 處理器家族(2008)
2.1.17 Intel? 至強(qiáng)? 處理器 7500系列(2010)
2.1.18 2010 Intel? 酷睿?處理器家族(2010)
2.1.19 Intel? 至強(qiáng)? 處理器 5600系列(2010)
2.1.20 第二代Intel? 酷睿?處理器家族(2011)
2.1.21 第三代Intel? 酷睿?處理器家族(2012)
2.1.22 第四代Intel? 酷睿?處理器家族(2013)
2.2 發(fā)展方向
2.2.1 P6家族微架構(gòu)
2.2.2 Intel NetBurst? 微架構(gòu)
2.2.2.1 前端流水線
2.2.2.2 亂序執(zhí)行核心
2.2.2.3 零時(退役)單元
2.2.3 Intel? 酷睿? 微架構(gòu)
2.2.3.1 前端
2.2.3.2 運(yùn)算(執(zhí)行)核心
2.2.4 Intel? 凌動? 微架構(gòu)
2.2.5 Intel? 微架構(gòu)代號Nehalem
2.2.6 Intel? 微架構(gòu)代號Sandy Bridge
2.2.7 SIMD指令
2.2.8 Intel? 超線程技術(shù)
2.2.8.1 一些實(shí)現(xiàn)說明
2.2.9 多核技術(shù)
2.2.10 Intel? 64位架構(gòu)
2.2.11 Intel? 虛擬化技術(shù)(VT)
2.3 Intel? 64 和 IA-32 處理器系列
章節(jié)3
基礎(chǔ)執(zhí)行環(huán)境
3.1 運(yùn)行模式
3.1.1 Intel? 64位架構(gòu)
3.2 基礎(chǔ)執(zhí)行環(huán)境概覽
3.2.1 64位模式執(zhí)行環(huán)境
3.3 內(nèi)存結(jié)構(gòu)
3.3.1 IA-32內(nèi)存模型
3.3.2 分頁和虛擬內(nèi)存
3.3.3 64位下的內(nèi)存結(jié)構(gòu)
3.3.4 操作模式和內(nèi)存模型
3.3.5 32位與16位地址以及操作數(shù)
3.3.6 保護(hù)模式下的擴(kuò)展物理尋址
3.3.7 64位模式下的地址運(yùn)算
3.3.7.1 典型尋址
3.4 基礎(chǔ)程序執(zhí)行寄存器
3.4.1 通用寄存器
3.4.1.1 64位模式下的通用寄存器
3.4.2 段寄存器
3.4.2.1 64位模式下的段寄存器
3.4.3 EFLAG寄存器
3.4.3.1 狀態(tài)標(biāo)記位
3.4.3.2 DF標(biāo)記位
3.4.3.3 系統(tǒng)標(biāo)記位和IOPL域
3.4.3.4 64位下的REFLAGS寄存器
3.5 指令指針
3.5.1 64位下的指令指針
3.6 操作數(shù)大小和地址大小
3.6.1 64位下的操作數(shù)大小和地址大小
3.7 操作數(shù)尋址
3.7.1 立即數(shù)的操作數(shù)
3.7.2 寄存器的操作數(shù)
3.7.2.1 64位下寄存器的操作數(shù)
3.7.3 內(nèi)存操作數(shù)
3.7.3.1 64位下的內(nèi)存操作數(shù)
3.7.4 指定段選擇器
3.7.4.1 64位下的分段
3.7.5 指定一個偏移
3.7.5.1 64位下指定一個偏移
3.7.6 匯編器和編譯器的尋址方式
3.7.7 I/O端口的訪問
章節(jié)4
數(shù)據(jù)類型
4.1 數(shù)據(jù)類型基本原理
4.1.1 字,雙字荷腊,四字昔善,以及雙四字對齊
4.2 數(shù)字?jǐn)?shù)據(jù)類型
4.2.1 整數(shù)
4.2.1.1 無符號整數(shù)
4.2.1.2 有符號整數(shù)
4.2.2 浮點(diǎn)數(shù)據(jù)類型
4.3 指針數(shù)據(jù)類型
4.3.1 64位下的指針數(shù)據(jù)類型
4.4 bit域(binary)數(shù)據(jù)類型
4.5 串(string)數(shù)據(jù)類型
4.6 封裝的SIMD數(shù)據(jù)類型
4.6.1 64位下封裝SIMD數(shù)據(jù)類型
4.6.2 128位封裝的SIMD數(shù)據(jù)類型
4.7 二進(jìn)制編碼化以及二進(jìn)制編碼的整數(shù)
4.8 實(shí)數(shù)和浮點(diǎn)數(shù)的格式
4.8.1 實(shí)數(shù)系統(tǒng)
4.8.2 浮點(diǎn)數(shù)格式
4.8.2.1 有理數(shù)
4.8.2.2 偏置指數(shù)
4.8.3 實(shí)數(shù)和非數(shù)字的編碼
4.8.3.1 有符號的零
4.8.3.2 有理數(shù)和無理數(shù)
4.8.3.3 無窮數(shù)
4.8.3.4 NaNs
4.8.3.5 SNaNs 和 QNaNs的操作
4.8.3.6 應(yīng)用中的SNaNs 和 QNaNs
4.8.3.7 QNaN中的浮點(diǎn)無窮數(shù)
4.8.3.8 半精度浮點(diǎn)運(yùn)算
4.8.4 循環(huán)數(shù)
4.8.4.1 循環(huán)數(shù)控域
4.8.4.2 SSE與SSE2的舍去轉(zhuǎn)換指令
4.9 浮點(diǎn)異常概述
4.9.1 浮點(diǎn)異常情況
4.9.1.1 無效操作異常(#I)
4.9.1.2 錯誤的操作數(shù)異常(#D)
4.9.1.3 除0異常(#Z)
4.9.1.4 數(shù)字溢出(上溢)異常(#O)
4.9.1.5 數(shù)字溢出(下溢)異常(#U)
4.9.1.6 精度異常(#P)
4.9.2 浮點(diǎn)異常優(yōu)先
4.9.3 一個浮點(diǎn)異常處理程序的典型動作
章節(jié)5
指令集摘要
5.1 通用指令
5.1.1 數(shù)據(jù)轉(zhuǎn)移指令
5.1.2 二進(jìn)制運(yùn)算指令
5.1.3 十進(jìn)制運(yùn)算指令
5.1.4 邏輯指令
5.1.5 移動和翻轉(zhuǎn)指令
5.1.6 bit和byte指令
5.1.7 控制轉(zhuǎn)移指令
5.1.8 串轉(zhuǎn)移指令
5.1.9 I/O指令
5.1.10 進(jìn)入和退出指令
5.1.11 標(biāo)志寄存器控制指令
5.1.12 段寄存器指令
5.1.13 混合指令
5.1.14 用戶模式擴(kuò)展?fàn)顟B(tài)保存/恢復(fù)指令
5.1.15 隨機(jī)數(shù)生成指令
5.1.16 BMI1,BMI2
5.1.16.1探測VEX編碼的GPR指令LZCNT 和 TZCNT, PREFETCHW
5.2 X87 FPU指令
5.2.1 X87 FPU數(shù)據(jù)轉(zhuǎn)移指令
5.2.2 X87 FPU基礎(chǔ)運(yùn)算指令
5.2.3 X87 FPU比較指令
5.2.4 X87 FPU超然指令
5.2.5 X87 FPU加載物理常數(shù)指令
5.2.6 X87 FPU控制指令
5.3 X87 FPU 和 SIMD 狀態(tài)管理指令