計算機組成原理與彙編語言(2023年清華大學出版社出版的圖書)

計算機組成原理與彙編語言(2023年清華大學出版社出版的圖書)

本詞條是多義詞,共2個義項
更多義項 ▼ 收起列表 ▲

《計算機組成原理與彙編語言》是2023年清華大學出版社出版的圖書,作者是田民格、秦彩傑、林觀俊、田佳琪。

基本介紹

  • 中文名:計算機組成原理與彙編語言
  • 作者:田民格、秦彩傑、林觀俊、田佳琪
  • 出版時間:2023年9月1日
  • 出版社:清華大學出版社
  • ISBN:9787302640462 
  • 定價:99.80 元
內容簡介,圖書目錄,

內容簡介

《計算機組成原理與彙編語言》按項目組建了14個單元的題庫和1個單元的課程設計,每個單元都有對應的教學視頻;與考試系統配套的課外練習能方便讀者自學;課堂測試功能為隨堂考試或期末考試提供了方便。考試系統支持8種題型,教師可以按要求隨機抽題組卷或統考,可以實現“黑盒+白盒”自動測試評分或手工評分,提供了預警和生成成績成長曲線功能。

圖書目錄

目 錄
第1章 數據表示與數值運算 1
1.1 計數制 1
1.1.1 十進制(decimal) 1
1.1.2 二進制(binary) 2
1.1.3 八進制(octal) 2
1.1.4 十六進制(hexadecimal) 3
1.2 進制數間的轉換 3
1.2.1 十進制轉二進制 3
1.2.2 十進制轉八進制和十六進制 4
1.2.3 十進制轉二進制加法口算 5
1.2.4 十進制轉二進制減法口算 6
1.2.5 十進制轉二進制其他口算 6
1.3 計算機的性能指標 6
1.3.1 字長 7
1.3.2 存儲容量 7
1.3.3 主頻 7
1.3.4 運算速度 7
1.3.5 可靠性 7
1.3.6 系統可維護性 8
1.4 數值的表示 8
1.4.1 無符號整數的表示 8
1.4.2 有符號整數的表示(補碼等) 10
1.4.3 移碼 12
1.4.4 BCD碼 13
1.4.5 浮點數 13
1.4.6* 浮點數按整數比較大小 17
1.5 字元的表示 19
1.5.1 ASCII碼 19
1.5.2 機內碼 19
1.5.3 Unicode 23
1.5.4 UTF-8 25
1.5.5 點陣字形碼 26
1.5.6 矢量字形碼 30
1.6 校驗碼 30
1.6.1 碼距 30
1.6.2 奇偶校驗碼 31
1.6.3 海明校驗碼 32
1.6.4 循環冗餘校驗碼 34
1.7 數值運算 38
1.7.1 定點整數加法運算 38
1.7.2 定點整數減法運算 39
1.7.3 溢出與檢測方法 39
1.7.4 定點整數加減法的邏輯實現 41
1.7.5 定點整數乘法運算 43
1.7.6 定點整數除法運算 45
1.7.7 浮點數加減運算 51
1.7.8 浮點數乘除運算 56
習題1 58
第2章 彙編語言基本組成 60
2.1 程式結構 60
2.1.1 選擇處理器偽指令 61
2.1.2 .MODEL偽指令 62
2.1.3 指明是否區分大小寫 62
2.1.4 要引用的頭檔案和庫檔案 63
2.1.5 函式原型聲明 63
2.1.6 變數的定義及使用 63
2.1.7 數據段和代碼段的定義 65
2.1.8 單行注釋與塊注釋 65
2.1.9 指令、標號、分行(\) 66
2.1.10 INVOKE偽指令調用函式 66
2.1.11 程式結束 66
2.1.12 彙編結束 67
2.2 數據類型 67
2.2.1 整數 67
2.2.2 整數常量表達式 69
2.2.3 浮點數 72
2.2.4 字元 74
2.2.5 字元串 77
2.2.6 結構體 78
習題2 80
第3章 彙編語言的編譯運行 84
3.1 VC 6.0編譯運行C程式 84
3.1.1 VC 6.0的安裝 85
3.1.2 運行C程式 85
3.1.3 配置VC 6.0環境 87
3.1.4 在命令行中編譯運行C程式 89
3.2 MASM32編譯運行彙編程式 90
3.2.1 MASM32的安裝 90
3.2.2 運行MASM32程式 92
3.2.3 配置MASM32環境 93
3.2.4 通過註冊表配置環境 94
3.2.5 在命令行中編譯運行彙編程式 95
3.3 VC 6.0編譯運行彙編程式 98
3.4 VS 2022編譯運行彙編程式 100
3.4.1 VS的安裝 100
3.4.2 VS編譯運行C程式 101
3.4.3 VS編譯運行x86彙編程式 103
3.4.4 VS彙編程式調用C庫檔案 105
3.4.5 VS編譯運行x64彙編程式 106
3.4.6 安裝高亮外掛程式 108
3.5 C/C++嵌入彙編指令 111
3.5.1 用彙編指令訪問C程式整型變數 111
3.5.2 用彙編指令讀C程式整型數組元素 112
3.5.3 彙編指令寫入C字元數組 112
3.6 C反彙編生成彙編源程式 114
3.6.1 設定C程式生成彙編源程式 114
3.6.2 修改C反彙編源程式 114
習題3 117
第4章 CPU指令系統及控制器 120
4.1 系統結構 121
4.2 微處理器 122
4.2.1 微處理器的基本結構 122
4.2.2 80386微處理器引腳 124
4.3 CPU暫存器 126
4.3.1 16位暫存器組 126
4.3.2 32位暫存器組 127
4.3.3 64位暫存器組 127
4.3.4 標誌暫存器EFlags 128
4.4 80X86處理器工作模式 131
4.5 存儲器訪問 131
4.5.1 主存的分類 132
4.5.2 存儲器的組織 132
4.5.3 CPU與存儲器的連線 134
4.5.4 數據存儲 135
4.5.5 數據對齊訪問 136
4.5.6 數據非對齊訪問 137
4.5.7 數據訪問案例分析 137
4.6 機器指令及控制器設計 141
4.6.1 機器指令格式 143
4.6.2 機器指令編碼 144
4.6.3 複雜指令集計算機 146
4.6.4 精簡指令集計算機 146
4.6.5 控制器設計方法 146
4.6.6 時序系統 147
4.6.7 暫存器的設定 148
4.6.8 CPU指令流程分析 148
4.6.9 控制器的設計 149
4.7 運算元定址方式 158
4.7.1 暫存器定址方式 158
4.7.2 立即定址方式 159
4.7.3 直接定址方式 159
4.7.4 暫存器間接定址方式 159
4.7.5 暫存器相對定址方式 160
4.7.6 基址變址定址方式 161
4.8 數據傳送類指令 163
4.8.1 通用數據傳送MOV[SX|ZX] 163
4.8.2 數據交換XCHG 165
4.8.3 位元組查錶轉換XLAT[B] 166
4.8.4* 位元組反向存儲BSWAP 168
4.8.5 入棧PUSH/PUSHA[D] 168
4.8.6 出棧POP/POPA[D] 168
4.8.7 取地址LEA/L[DEFGS]S 169
4.8.8 EFlags與AH傳送[L|S]AHF 170
4.8.9 EFlags出入棧PUSHFD/POPFD 170
4.8.10 進位位CF操作CLC/STC/CMC 170
4.8.11 方向位DF操作CLD/STD 170
4.8.12* 中斷允許位IF操作CLI/STI 171
4.9 整數算術運算指令 171
4.9.1 加法ADD/ADC/INC/XADD 171
4.9.2 減法SUB/SBB/DEC/NEG 173
4.9.3 乘法MUL/IMUL 174
4.9.4 除法DIV/IDIV 175
4.9.5 符號擴展CBW/CWD/CDQ 176
4.9.6 整數比較CMP/CMPXCHG[8B] 177
4.10* 調整指令(實現大數運算) 179
4.10.1 數字字元加法調整AAA 179
4.10.2 數字字元減法調整AAS 181
4.10.3 二進制數調整為BCD碼AAM 182
4.10.4 BCD碼調整為二進制數AAD 182
4.10.5 BCD碼加法調整DAA 183
4.10.6 BCD碼減法調整DAS 184
4.11 邏輯運算指令 185
4.11.1 邏輯與操作AND 185
4.11.2 邏輯或操作OR 186
4.11.3 邏輯非操作NOT 186
4.11.4 邏輯異或操作XOR 186
4.11.5 邏輯比較測試TEST 187
4.12 位操作指令 188
4.12.1 算術移位SAL/SAR 188
4.12.2 邏輯移位SHL/SHR 189
4.12.3* 雙精度移位SHLD/SHRD 190
4.12.4* 不帶進位循環移位ROL/ROR 192
4.12.5* 帶進位循環移位RCL/RCR 193
4.12.6* 位掃描BSF/BSR 193
4.12.7* 第i位操作BT[CRS] 195
4.13 串操作指令 196
4.13.1 重複前綴REP[E|Z|NE|NZ] 197
4.13.2 存串操作STOS[B|W|D] 198
4.13.3 移串操作MOVS[B|W|D] 199
4.13.4 取串操作LODS[B|W|D] 201
4.13.5 串掃描操作SCAS[B|W|D] 203
4.13.6 串比較操作CMPS[B|W|D] 204
4.13.7 輸入串操作INS[B|W|D] 207
4.13.8 輸出串操作OUTS[B|W|D] 207
4.14* CPU控制指令 207
4.14.1 空操作指令NOP 207
4.14.2 等待指令WAIT 207
4.14.3 暫停指令HLT 208
4.14.4 封鎖數據指令LOCK 208
4.14.5 獲得CPU信息CPUID 208
4.14.6 讀時間戳計數器RDTSC 209
習題4 210
第5章 FPU指令系統 221
5.1 FPU暫存器 221
5.1.1 浮點數據暫存器 221
5.1.2 浮點標記暫存器 222
5.1.3 浮點狀態暫存器 222
5.1.4 浮點控制暫存器 224
5.2 FPU指令系統的約定 225
5.3 實數傳送指令 226
5.3.1 實數載入FLD Src 227
5.3.2 整數載入FILD Src 227
5.3.3 BCD數載入FBLD Src 227
5.3.4 實數保存FST Dst 227
5.3.5 實數保存且出棧FSTP Dst 227
5.3.6 實數保存整數FIST Dst 227
5.3.7 保存整數且出棧FISTP Dst 227
5.3.8 保存BCD且出棧FBSTP Dst 229
5.3.9 實數交換FXCH[st(i)] 230
5.4 實數常量載入指令 230
5.4.1 實數0.0載入FLDZ 230
5.4.2 實數1.0載入FLD1 230
5.4.3 實數π載入FLDPI 230
5.4.4 實數log210載入FLDL2T 230
5.4.5 實數log2e載入FLDL2E 230
5.4.6 實數log102載入FLDLG2 231
5.4.7 實數loge2載入FLDLN2 231
5.5 實數比較指令 231
5.5.1 實數比較FCOM[P/PP] 231
5.5.2 實數與整數比較FICOM[P] 231
5.5.3 無序比較FUCOM[P/PP] 232
5.5.4 實數零檢測FTST 232
5.5.5 存CPU比較F[U]COMI[P] 232
5.5.6 檢測棧頂實數特徵FXAM 233
5.6 實數加法指令 237
5.6.1 實數加FADD 238
5.6.2 實數加且出棧FADDP 238
5.6.3 實數加整數FIADD 238
5.7 實數減法指令 239
5.7.1 實數減FSUB 239
5.7.2 實數減且出棧FSUBP 239
5.7.3 實數減整數FISUB 239
5.7.4 反向減FSUBR 239
5.7.5 反向減且出棧FSUBRP 239
5.7.6 實數反向減整數FISUBR 239
5.8 實數乘法指令 240
5.8.1 實數乘FMUL 240
5.8.2 實數乘且出棧FMULP 241
5.8.3 實數乘以整數FIMUL 241
5.9 實數除法指令 241
5.9.1 實數除FDIV 242
5.9.2 實數除且出棧FDIVP 242
5.9.3 實數除以整數FIDIV 242
5.9.4 實數反向除FDIVR 242
5.9.5 反向除且出棧FDIVRP 242
5.9.6 實數反向除整數FIDIVR 242
5.10 浮點超越函式指令 243
5.10.1 正弦函式FSIN 243
5.10.2 餘弦函式FCOS 244
5.10.3 正弦餘弦函式FSINCOS 245
5.10.4 正切函式FPTAN 245
5.10.5 反正切函式FPATAN 246
5.10.6 實數平方根FSQRT 247
5.10.7 絕對值FABS 248
5.10.8 負數FCHS 249
5.10.9 取實數尾數和階碼FXTRACT 250
5.10.10 以2為底的對數FYL2X[P1] 251
5.10.11 就近捨入取整FRNDINT 252
5.10.12 取余FPREM/FPREM1 253
5.10.13 2的指數FSCALE/F2XM1 254
5.11* FPU控制指令 257
5.11.1 初始化FPU操作F[N]INIT 257
5.11.2 保存狀態字F[N]STSW 257
5.11.3 保存控制字F[N]STCW 257
5.11.4 載入控制字FLDCW 257
5.11.5 保存環境F[N]STENV 257
5.11.6 載入環境FLDENV 259
5.11.7 存環境與數據F[N]SAVE 259
5.11.8 讀環境與數據FRSTOR 261
5.11.9 增加FPU棧指針FINCSTP 261
5.11.10 減少FPU棧指針FDECSTP 262
5.11.11 st(i)清空FFREE st(i) 263
5.11.12 清除異常F[N]CLEX 264
5.11.13 FPU空操作FNOP 264
5.11.14 FPU與CPU同步[F]WAIT 264
習題5 264
第6章 選擇結構程式設計 268
6.1 .IF偽指令實現雙分支選擇 268
6.2 .IF….ELSEIF實現多分支選擇 274
6.3 JMP和Jcc轉移指令 276
6.4* 測試條件轉存指令SETcc 285
6.5 浮點數的大小比較 287
6.6 散轉程式設計 289
習題6 295
第7章 循環結構程式設計 300
7.1 當循環偽指令.WHILE 300
7.2 重複偽指令.REPEAT 302
7.3 數組的使用 304
7.3.1 一維數組的使用 304
7.3.2 二維數組的使用 307
7.4 .BREAK和.CONTINUE偽指令 309
7.5 循環指令LOOP[N][EZ][WD] 310
7.5.1 循環指令LOOP 311
7.5.2 相等或為零循環LOOP[EZ] 313
7.5.3 不為零循環LOOPN[EZ] 314
7.6 ECX為零轉移指令JECXZ 316
7.7 LOOP/JECXZ循環指令存在的問題 317
習題7 320
第8章 模組化程式設計 329
8.1 子程式的定義 329
8.1.1 子程式定義的基本語法 329
8.1.2 子程式定義的完整語法 331
8.1.3 變參VARARG的使用 331
8.1.4 USES的使用 332
8.1.5 局部變數的定義 334
8.2 子程式的調用與返回 335
8.2.1 子程式用CALL調用 335
8.2.2 子程式用INVOKE調用 338
8.2.3 函式原型PROTO聲明 338
8.2.4 函式EXTRN聲明 340
8.2.5 返回指令RET 340
8.2.6 堆疊保護與恢復 341
8.3 不同數據類型作為形參的傳遞方法 344
8.3.1 整數參數的傳遞 344
8.3.2 字元參數的傳遞 345
8.3.3 整型數組參數的傳遞 346
8.3.4 字元串參數的傳遞 348
8.3.5 雙精度浮點數參數的傳遞 349
8.4 遞歸程式設計 351
8.4.1 用C語言的遞歸方法求累加和 351
8.4.2 用彙編語言的遞歸方法求累加和 352
8.4.3 遞歸案例 353
8.5 C程式調用彙編子程式 359
8.5.1 C程式調用彙編子程式的方式 359
8.5.2 將C程式中的整型參數傳入彙編程式 360
8.5.3 將C程式中的整型數組參數傳入彙編程式 363
8.5.4 將C程式中的字元數組參數傳入彙編程式 364
8.5.5 用C程式調用彙編函式重載 364
8.6 彙編程式調用C/C++函式 365
8.7 彙編程式引用C程式中的數組 368
8.8 C程式引用彙編程式中的數組 369
8.9 C程式與彙編程式混合編程俄羅斯方塊 371
習題8 377
第9章 調試器使用簡介 381
9.1 32位程式調試器Ollydbg 381
9.2 如何用Ollydbg逆向工程 382
9.3 用Ollydbg修改並保存 384
9.4 64位程式調試器x64dbg 385
9.5 32/64位程式調試器IDA 386
習題9 387
第10章 I/O系統 388
10.1 I/O系統概述 388
10.1.1 I/O系統的組成 388
10.1.2 I/O設備編址 388
10.2 I/O接口 389
10.2.1 I/O接口的基本功能 389
10.2.2 I/O接口的分類 389
10.2.3 匯流排結構 390
10.2.4 常用系統匯流排 391
10.3 I/O數據傳輸控制方式 393
10.3.1 程式直接控制方式 393
10.3.2 中斷方式 394
10.3.3 直接存儲器訪問方式 397
10.3.4 I/O通道方式 398
10.3.5 I/O處理機和外圍處理機 400
習題10 400
參考文獻 402
附錄A 403
附錄A.1 ASCII值為00H~1FH的控制字元 403
附錄A.2 ASCII值為20H~7FH的西文字元 403
附錄A.3 用C程式輸出GB 2312漢字 404
附錄A.4 用C程式輸出GB 2312特殊符號 404
附錄A.5 用C程式輸出Unicode漢字 405
附錄A.6 Unicode轉UTF-8 406
附錄A.7 將矢量字型解析為點陣圖 406

相關詞條

熱門詞條

聯絡我們