预购商品
书目分类
特别推荐
譯者序 推薦序 前言 致謝 第一部分 計算機的組成結構 第1章 匯編語言的第一個程序 2 1.1 先決條件 2 1.2 在計算機上安裝MASM 3 1.3 在計算機上安裝文本編輯器 3 1.4 MASM程序的結構剖析 3 1.5 運行第一個MASM程序 4 1.6 運行第一個MASM和C 的混合程序 4 1.7 英特爾x86-64 CPU系列簡介 6 1.8 內存子系統 9 1.9 在MASM中聲明內存變量 10 1.9.1 將內存地址與變量關聯 11 1.9.2 將數據類型與變量關聯 12 1.10 在MASM中聲明(命名)常量 12 1.11 基本的機器指令 13 1.11.1 mov指令 13 1.11.2 指令操作數的類型檢查 14 1.11.3 add和sub指令 15 1.11.4 lea指令 15 1.11.5 call和ret指令以及MASM過程 16 1.12 調用C/C 過程 17 1.13 “Hello, world!”程序 18 1.14 在匯編語言中返回函數結果 19 1.15 自動化構建過程 24 1.16 微軟ABI注釋 25 1.16.1 變量大小 25 1.16.2 寄存器的用途 28 1.16.3 棧對齊 28 1.17 拓展閱讀資料 28 1.18 自測題 29 第2章 計算機數據表示和運算 31 2.1 數制系統 31 2.1.1 十進制數制系統的回顧 31 2.1.2 二進制數制系統 32 2.1.3 二進制約定 32 2.2 十六進制數制系統 33 2.3 關於數字與表示的注釋 34 2.4 數據組織 36 2.4.1 位 36 2.4.2 半字節 36 2.4.3 字節 37 2.4.4 字 38 2.4.5 雙字 39 2.4.6 四字和八字 39 2.5 位的邏輯運算 39 2.5.1 邏輯與運算 40 2.5.2 邏輯或運算 40 2.5.3 邏輯異或運算 40 2.5.4 邏輯非運算 41 2.6 二進制數和位串的邏輯運算 41 2.7 有符號數和無符號數 45 2.8 符號擴展和零擴展 49 2.9 符號縮減和飽和法 49 2.10 簡要回顧:控制轉移指令概述 50 2.10.1 jmp指令 50 2.10.2 條件跳轉指令 51 2.10.3 cmp指令和相應的條件跳轉 52 2.10.4 條件跳轉的同義詞 53 2.11 移位和循環移位 54 2.12 位字段和打包數據 57 2.13 IEEE浮點數格式 63 2.13.1 單精度格式 64 2.13.2 雙精度格式 65 2.13.3 擴展精度格式 65 2.13.4 規範化浮點值 65 2.13.5 非數值數據 66 2.13.6 MASM對浮點值的支持 66 2.14 BCD表示法 67 2.15 字符 67 2.15.1 ASCII字符編碼 68 2.15.2 MASM對ASCII字符的支持 69 2.16 Unicode字符集 70 2.16.1 Unicode碼位 70 2.16.2 Unicode碼平面 70 2.16.3 Unicode編碼 71 2.17 MASM對Unicode的支持 72 2.18 拓展閱讀資料 72 2.19 自測題 72 第3章 內存的訪問和組織 76 3.1 運行時的內存組織 76 3.1.1 “.code”段 77 3.1.2 “.data”段 77 3.1.3 “.const”段 78 3.1.4 “.data?”段 79 3.1.5 程序中聲明段的組織方式 79 3.1.6 內存訪問和4KB內存管理單元頁 80 3.2 MASM如何為變量分配內存 81 3.3 標簽聲明 82 3.4 小端模式和大端模式的數據組織方式 82 3.5 內存訪問 84 3.6 MASM對數據對齊的支持 85 3.7 x86-64的尋址模式 87 3.7.1 x86-64的寄存器尋址模式 88 3.7.2 x86-64的64位內存尋址模式 88 3.7.3 不支持大地址的應用程序 91 3.8 地址表達式 94 3.9 棧段以及push和pop指令 97 3.9.1 基本的push指令 97 3.9.2 基本的pop指令 98 3.9.3 使用push和pop指令保存寄存器的狀態 99 3.10 棧 99 3.11 其他push和pop指令 102 3.12 不通過彈出棧從棧中移除數據 102 3.13 不通過彈出棧訪問壓入棧的數據 103 3.14 微軟ABI注釋 104 3.15 拓展閱讀資料 104 3.16 自測題 104 第4章 常量、變量和數據類型 106 4.1 imul指令 106 4.2 inc和dec指令 107 4.3 MASM常量聲明 107 4.3.1 常量表達式 109 4.3.2 this和$運算符 111 4.3.3 常量表達式求值 112 4.4 MASM typedef語句 112 4.5 類型強制 113 4.6 指針數據類型 116 4.6.1 在匯編語言中使用指針 117 ……..
蘭德爾·海德 (Randall Hyde) 嵌入式軟件工程師,曾在醫療、核能、消費電子和娛樂行業工作。他在大學教授匯編語言編程超過10年,多年來為嵌入式和商業應用程序編寫了數十萬行彙編代碼。著有The Art of Assembly Language和Write Great Code系列書籍,均由No Starch出版社出版。
客服公告
热门活动
订阅电子报