教學(xué)優(yōu)勢
曙海教育的課程培養(yǎng)了大批受企業(yè)歡迎的工程師。大批企業(yè)和曙海
建立了良好的合作關(guān)系。曙海教育的課程在業(yè)內(nèi)有著響亮的知名度。
本課程,秉承18年積累的教學(xué)品質(zhì),以項(xiàng)目實(shí)現(xiàn)為導(dǎo)向,老師將會與您分享設(shè)計(jì)的全流程以及工具的綜合使用經(jīng)驗(yàn)、技巧。
課程簡介:
現(xiàn)代x86匯編語言程序設(shè)計(jì)培訓(xùn)課程
第1章 x86-64Core體系結(jié)構(gòu)
1.1歷史回顧
1.2數(shù)據(jù)類型
1.2.1基本數(shù)據(jù)類型
1.2.2數(shù)值數(shù)據(jù)類型
1.2.3SIMD數(shù)據(jù)類型
1.2.4其他數(shù)據(jù)類型
1.3內(nèi)部體系結(jié)構(gòu)
1.3.1通用寄存器
1.3.2RFLAGS寄存器
1.3.3指令指針
1.3.4指令操作數(shù)
1.3.5內(nèi)存尋址
1.4x86-64與x86-32編程的區(qū)別
1.4.1無效指令
1.4.2不推薦的指令
1.5指令集概述
1.6本章小結(jié)
第2章 x86-64Core程序設(shè)計(jì):第1部分
2.1簡單的整數(shù)算術(shù)運(yùn)算
2.1.1加法和減法
2.1.2邏輯運(yùn)算
2.1.3移位運(yùn)算
2.2高級整數(shù)算術(shù)運(yùn)算
2.2.1乘法和除法
2.2.2使用混合類型的運(yùn)算
2.3內(nèi)存尋址和條件代碼
2.3.1內(nèi)存尋址模式
2.3.2條件代碼
2.4本章小結(jié)
第3章 x86-64Core程序設(shè)計(jì):第2部分
3.1數(shù)組
3.1.1一維數(shù)組
3.1.2二維數(shù)組
3.2結(jié)構(gòu)
3.3字符串
3.3.1字符計(jì)數(shù)
3.3.2字符串拼接
3.3.3比較數(shù)組
3.3.4數(shù)組反轉(zhuǎn)
3.4本章小結(jié)
第4章 AVX指令集
4.1AVX概述
4.2SIMD編程概念
4.3環(huán)繞與飽和算術(shù)運(yùn)算
4.4AVX執(zhí)行環(huán)境
4.4.1寄存器集
4.4.2數(shù)據(jù)類型
4.4.3指令語法
4.5AVX標(biāo)量浮點(diǎn)數(shù)
4.5.1浮點(diǎn)數(shù)編程概念
4.5.2標(biāo)量浮點(diǎn)寄存器集
4.5.3控制狀態(tài)寄存器
4.5.4指令集概述
4.6AVX打包浮點(diǎn)值
4.7AVX打包整數(shù)
4.8x86-AVX和x86-SSE之間的區(qū)別
4.9本章小結(jié)
第5章 AVX程序設(shè)計(jì):標(biāo)量浮點(diǎn)數(shù)
5.1標(biāo)量浮點(diǎn)算術(shù)運(yùn)算
5.1.1單精度浮點(diǎn)數(shù)運(yùn)算
5.1.2雙精度浮點(diǎn)數(shù)運(yùn)算
5.2標(biāo)量浮點(diǎn)值的比較和轉(zhuǎn)換
5.2.1浮點(diǎn)值比較
5.2.2浮點(diǎn)值轉(zhuǎn)換
5.3標(biāo)量浮點(diǎn)數(shù)組和矩陣
5.3.1浮點(diǎn)數(shù)組
5.3.2浮點(diǎn)矩陣
5.4調(diào)用約定
5.4.1基本堆棧幀
5.4.2使用非易失性通用寄存器
5.4.3使用非易失性XMM寄存器
5.4.4函數(shù)序言和函數(shù)結(jié)語的宏
5.5本章小結(jié)
第6章 AVX程序設(shè)計(jì):打包浮點(diǎn)數(shù)
6.1打包浮點(diǎn)算術(shù)運(yùn)算
6.2打包浮點(diǎn)值比較
6.3打包浮點(diǎn)值轉(zhuǎn)換
6.4打包浮點(diǎn)數(shù)組
6.4.1打包浮點(diǎn)平方根
6.4.2打包浮點(diǎn)數(shù)組的小值和優(yōu)選值
6.4.3打包浮點(diǎn)小二乘法
6.5打包浮點(diǎn)矩陣
6.5.1矩陣轉(zhuǎn)置
6.5.2矩陣乘法
6.6本章小結(jié)
第7章 AVX程序設(shè)計(jì):打包整數(shù)
7.1打包整數(shù)加法和減法運(yùn)算
7.2打包整數(shù)移位
7.3打包整數(shù)乘法
7.4打包整數(shù)圖像處理
7.4.1像素的小值和優(yōu)選值
7.4.2像素平均強(qiáng)度
7.4.3像素轉(zhuǎn)換
7.4.4圖像直方圖
7.4.5圖像閾值化
7.5本章小結(jié)
第8章 AVX2
8.1AVX2執(zhí)行環(huán)境
8.2AVX2打包浮點(diǎn)數(shù)
8.3AVX2打包整數(shù)
8.4x86指令集擴(kuò)展
8.4.1半精度浮點(diǎn)數(shù)
8.4.2乘法加法融合
8.4.3通用寄存器指令集擴(kuò)展
8.5本章小結(jié)
第9章 AVX2程序設(shè)計(jì):打包浮點(diǎn)數(shù)
9.1打包浮點(diǎn)算術(shù)運(yùn)算
9.2打包浮點(diǎn)數(shù)組
9.2.1簡單計(jì)算
9.2.2列均值
9.2.3相關(guān)系數(shù)
9.3矩陣乘法和轉(zhuǎn)置
9.4矩陣求逆
9.5混合和排列指令
9.6數(shù)據(jù)收集指令
9.7本章小結(jié)
第10章 AVX2程序設(shè)計(jì):打包整數(shù)
10.1打包整數(shù)基礎(chǔ)
10.1.1基本算術(shù)運(yùn)算
10.1.2打包和解包
10.1.3大小提升
10.2打包整數(shù)圖像處理
10.2.1像素剪裁
10.2.2RGB像素的小值和優(yōu)選值
10.2.3RGB圖像到灰度圖像的轉(zhuǎn)換
10.3本章小結(jié)
第11章 AVX2程序設(shè)計(jì):擴(kuò)展指令集
11.1FMA程序設(shè)計(jì)
11.1.1卷積
11.1.2標(biāo)量FMA
11.1.3打包FMA
11.2通用寄存器指令
11.2.1不影響標(biāo)志位的乘法和移位
11.2.2增強(qiáng)型位操作
11.3半精度浮點(diǎn)轉(zhuǎn)換
11.4本章小結(jié)
第12章 AVX-512
12.1AVX-512概述
12.2AVX-512執(zhí)行環(huán)境
12.2.1寄存器集
12.2.2數(shù)據(jù)類型
12.2.3指令語法
12.3指令集概述
12.3.1AVX512F
12.3.2AVX512CD
12.3.3AVX512BW
12.3.4AVX512DQ
12.3.5操作掩碼寄存器
12.4本章小結(jié)
第13章 AVX-512程序設(shè)計(jì):浮點(diǎn)數(shù)
13.1標(biāo)量浮點(diǎn)數(shù)
13.1.1合并屏蔽
13.1.2零屏蔽
13.1.3指令級舍入
13.2打包浮點(diǎn)數(shù)
13.2.1打包浮點(diǎn)數(shù)算術(shù)運(yùn)算
13.2.2打包浮點(diǎn)值比較
13.2.3打包浮點(diǎn)列均值
13.2.4向量叉積
13.2.5矩陣向量乘法
13.2.6卷積
13.3本章小結(jié)
第14章 AVX-512程序設(shè)計(jì):打包整數(shù)
14.1基本算術(shù)運(yùn)算
14.2圖像處理
14.2.1像素轉(zhuǎn)換
14.2.2圖像閾值
14.2.3圖像統(tǒng)計(jì)
14.2.4RGB到灰度的轉(zhuǎn)換
14.3本章小結(jié)
第15章 優(yōu)化策略和技術(shù)
15.1處理器微體系結(jié)構(gòu)
15.1.1處理器體系結(jié)構(gòu)概述
15.1.2微體系結(jié)構(gòu)流水線功能
15.1.3執(zhí)行引擎
15.2優(yōu)化匯編語言代碼
15.2.1基本技術(shù)
15.2.2浮點(diǎn)算術(shù)運(yùn)算
15.2.3程序分支
15.2.4數(shù)據(jù)對齊
15.2.5SIMD勵(lì)技術(shù)
15.3本章小結(jié)
第16章 高級程序設(shè)計(jì)
16.1CPUID指令
16.2非時(shí)態(tài)內(nèi)存存儲
16.3數(shù)據(jù)預(yù)獲取
16.4多線程
16.5本章小結(jié)
答疑