發表於2024-11-01
書名: | 匯編語言程序設計[按需印刷]|28024 |
圖書定價: | 48元 |
圖書作者: | (美)Richard Blum |
齣版社: | 機械工業齣版社 |
齣版日期: | 2006/1/1 0:00:00 |
ISBN號: | 7111175328 |
開本: | 16開 |
頁數: | 409 |
版次: | 1-1 |
作者簡介 |
Richard Blum畢業於美國普度大學電氣工程專業,在美國一傢政府組織工作瞭15年以上。在此期間,他使用過各種編程語言(C、C++、Java和Microsoft VB.NET以及C#)編寫實用程序,因此他發現一個非常有價值的事實:通過研究編譯器生成的匯編語言代碼及使用匯編語言例程,可明顯提高高級語言程序的執行速度。本書正是他多年實踐與研究的成果。 |
內容簡介 |
每種高級語言程序在連接為可執行程序之前,都必須被編譯為匯編語言程序,因此對於高級語言程序設計者來說,瞭解編譯器如何生成匯編語言代碼十分有用。 本書分為三部分。第一部分講解匯編語言程序設計環境基礎,第二部分研究匯編語言程序設計,最後一部分講解高級匯編語言技術。本書的主要目的是嚮使用高級語言的程序員講解編譯器如何從C和C++程序創建匯編語言例程,以及編程人員應如何掌握生成的匯編語言代碼,調整匯編語言例程以提高應用程序的性能。 本書適閤有一定編程經驗的開發人員參考。 每種高級語言(比如C和C++)在連接為可執行程序之前都會被編譯器轉換成匯編語言。本書麵嚮使用高級語言的開發人員,講解如何查看和解釋編譯器生成的匯編語言代碼,瞭解它們是如何創建的,從而可以修改編譯器生成的代碼或創建自己的匯編語言例程。本書揭示如何使程序中的函數更快更高效的內幕,以及提高應用程序性能的方法。 本書主要內容:查看高級語言程序生成的匯編語言代碼的好處;如何為Linux奔騰處理器環境創建獨立的匯編語言程序;如何將高級函數和庫整閤到匯編語言程序中;如何將匯編語言例程整閤到C和C++應用程序中;如何在匯編語言程序中使用Linux係統調用;如何在應用程序中使用奔騰處理器的MMX和SSE功能。 |
目錄 |
前言 第一部分 匯編語言程序設計環境基礎 第1章 什麼是匯編語言 1.1 處理器指令 1.1.1 指令碼處理 1.1.2 指令碼格式 1.2 高級語言 1.2.1 高級語言的種類 1.2.2 高級語言的特性 1.3 匯編語言 1.3.1 操作碼助記符 1.3.2 定義數據 1.3.3 命令 1.4 小結 第2章 IA-32平颱 2.1 IA-32處理器的核心部分 2.1.1 控製單元 2.1.2 執行單元 2.1.3 寄存器 2.1.4 標誌 2.2 IA-32的高級特性 2.2.1 x87浮點單元 2.2.2 多媒體擴展 2.2.3 流化SIMD擴展 2.2.4 超綫程 2.3 IA-32處理器係列 2.3.1 Intel處理器 2.3.2 非Intel處理器 2.4 小結 第3章 相關的工具 3.1 開發工具 3.1.1 匯編器 3.1.2 連接器 3.1.3 調試器 3.1.4 編譯器 3.1.5 目標代碼反匯編器 3.1.6 簡檔器 3.2 GNU匯編器 3.2.1 安裝匯編器 3.2.2 使用匯編器 3.2.3 關於操作碼語法 3.3 GNU連接器 3.4 GNU編譯器 3.4.1 下載和安裝gcc 3.4.2 使用gcc 3.5 GNU調試器程序 3.5.1 下載和安裝gdb 3.5.2 使用gdb 3.6 KDE調試器 3.6.1 下載和安裝kdbg 3.6.2 使用kdbg 3.7 GNU objdump程序 3.7.1使用objdump 3.7.2 objdump範例 3.8 GNU簡檔器程序’ 3.8.1 使用簡檔器 3.8.2 簡檔範例 3.9 完整的匯編開發係統 3.9.1 Linux基礎 3.9.2 下載和運行MEPIS 3.9.3 新的開發係統 3.10 小結 第4章 匯編語言程序範例 4.1 程序的組成 4.1.1 定義段 4.1.2 定義起始點 4.2 創建簡單程序 4.2.1 CPUID指令 4.2.2 範例程序 4.2.3 構建可執行程序 4.2.4 運行可執行程序 4.2.5 使用編譯器進行匯編 4.3 調試程序 4.4 在匯編語言中使用C庫函數 4.4.1 使用printf 4.4.2 連接C庫函數 4.5 小結 第二部分 匯編語言程序設計基礎 第5章 傳送數據 5.1 定義數據元素 5.1.1 數據段 5.1.2 定義靜態符號 5.1.3 bss段 5.2 傳送數據元素 5.2.1 MOV指令格式 5.2.2 把立即數傳送到寄存器和內存 5.2.3 在寄存器之間傳送數據 5.2.4 在內存和寄存器之間傳送數據 5.3 條件傳送指令 5.3.1 CMOV指令 5.3.2 使用CMOV指令 5.4 交換數據 5.4.1 數據交換指令 5.4.2 使用數據交換指令 5.5 堆棧 5.5.1 堆棧如何工作 5.5.2 壓入和彈齣數據 5.5.3 壓入和彈齣所有寄存器 5.5.4 手動使用ESP和EBP寄存器 5.6 優化內存訪問 5.7 小結 第6章 控製執行流程 6.1 指令指針 6.2 無條件分支 6.2.1 跳轉 6.2.2 調用 6.2.3 中斷 6.3 條件分支 6.3.1 條件跳轉指令 6.3.2 比較指令 6.3.3 使用標誌位的範例 6.4 循環 6.4.1 循環指令 6.4.2 循環範例 6.4.3 防止LOOP災難 6.5 模仿高級條件分支 6.5.1 if語句 6.5.2 for循環 6.6 優化分支指令 6.6.1 分支預測 6.6.2 優化技巧 6.7 小結 第7章 使用數字 7.1 數字數據類型 7.2 整數 7.2.1 標準整數長度 7.2.2 無符號整數 7.2.3 帶符號整數 7.2.4 使用帶符號整數 7.2.5 擴展整數 7.2.6 在GNU匯編器中定義整數 7.3 SIMD整數 7.3.1 MMX整數 7.3.2 傳送MMX整數 7.3.3 SSE整數 7.3.4 傳送SSE整數 7.4 二進製編碼的十進製 7.4.1 BCD是什麼 7.4.2 FPUBCD值 7.4.3 傳送BCD值 7.5 浮點數 7.5.1 浮點數是什麼 7.5.2 標準浮點數據類型 7.5.3 IA-32浮點值 7.5.4 在GNU匯編器中定義浮點值 7.5.5 傳送浮點值 7.5.6 使用預置的浮點值 7.5.7 SSE浮點數據類型 7.5.8 傳送SSE浮點值 7.6 轉換 7.6.1 轉換指令 7.6.2 轉換範例 7.7 小結 第8章 基本數學功能 8.1 整數運算 8.1.1 加法 8.1.2 減法 8.1.3 遞增和遞減 8.1.4 乘法 8.1.5 除法 8.2 移位指令 8.2.1 移位乘法 8.2.2 移位除法 8.2.3 循環移位 8.3 十進製運算 8.3.1 不打包BCD的運算 8.3.2 打包BCD的運算 8.4 邏輯操作 8.4.1 布爾邏輯 8.4.2 位測試 8.5 小結 第9章 高級數學功能 9.1 FPU環境 9.1.1 FPU寄存器堆棧 9.1.2 FPU狀態、控製和標記寄存器 9.1.3 使用FPU堆棧 9.2 基本浮點運算 9.3 高級浮點運算 9.3.1 浮點功能 9.3.2 部分餘數 9.3.3 三角函數 9.3.4 對數函數 9.4 浮點條件分支 9.4.1 FCOM指令係列 9.4.2 FCOMI指令係列 9.4.3 FCMOV指令係列 9.5 保存和恢復FPU狀態 9.5.1 保存和恢復FPU環境 9.5.2 保存和恢復FPU狀態 9.6 等待和非等待指令 9.7 優化浮點運算 9.8 小結 第10章 處理字符串 10.1 傳送字符串 10.1.1 MOVS指令 10.1.2 REP前綴 10.1.3 其他REP指令 10.2 存儲和加載字符串 10.2.1 LODS指令 10.2.2 STOS指令 10.2.3 構建自己的字符串函數 10.3 比較字符串 10.3.1 CMPS指令 10.3.2 CMPS和REP一起使用 10.3.3 字符串不等 10.4 掃描字符串 10.4.1 SCAS指令 10.4.2 搜索多個字符 10.4.3 計算字符串長度 10.5 小結 第11章 使用函數 11.1 定義函數 11.2 匯編函數 11.2.1 編寫函數 11.2.2 訪問函數 11.2.3 函數的放置 11.2.4 使用寄存器 11.2.5 使用全局數據 11.3 按照C樣式傳遞數據值 11.3.1 迴顧堆棧 11.3.2 在堆棧之中傳遞函數參數 11.3.3 函數開頭和結尾 11.3.4 定義局部函數數據 11.3.5 清空堆棧 11.3.6 範例 11.3.7 在操作之中監視堆棧 11.4 使用獨立的函數文件 11.4.1 創建獨立的函數文件 11.4.2 創建可執行文件 11.4.3 調試獨立的函數文件 11.5 使用命令行參數 11.5.1 程序剖析 11.5.2 分析堆棧 11.5.3 查看命令行參數 11.5.4 查看環境變量 11.5.5 使用命令行參數的範例 11.6 小結 第12章 使用Linux係統調用 12.1 Linux內核 12.1.1 內核組成 12.1.2 Linux內核版本 12.2 係統調用 12.2.1 查找係統調用 12.2.2 查找係統調用定義 12.2.3 常用係統調用 12.3 使用係統調用 12.4 復雜的係統調用返迴值 12.4.1 sysinfo係統調用 12.4.2 使用返迴結構 12.4.3 查看結果 12.5 跟蹤係統調用 12.5.1 strace程序 12.5.2 高級strace參數 12.5.3 監視程序係統調用 12.5.4 附加到正在運行的程序 12.6 係統調用和C庫 12.6.1 C庫 12.6.2 跟蹤C函數 12.6.3 係統調用和C庫的比較 12.7小結 第三部分 高級匯編語言技術 第13章 使用內聯匯編 13.1 什麼是內聯匯編 13.2 基本的內聯匯編代碼 13.2.1 asm格式 13.2.2 使用全局C變量 13.2.3 使用volatile修飾符 13.2.4 使用替換的關鍵字 13.3 擴展asm 13.3.1 擴展asm格式 13.3.2 指定輸入值和輸齣值 13.3.3 使用寄存器 13.3.4 使用占位符 13.3.5 引用占位符 13.3.6 替換的占位符 13.3.7 改動的寄存器列錶 13.3.8 使用內存位置 13.3.9 使用浮點值 13.3.10 處理跳轉 13.4 使用內聯匯編代碼 13.4.1 什麼是宏 13.4.2 C宏函數 13.4.3 創建內聯匯編宏函數 13.5 小結 笫14章 調用匯編庫 14.1 創建匯編函數 14.2 編譯C和匯編程序 14.2.1 編譯匯編源代碼文件 14.2.2 使用匯編目標代碼文件 14.2.3 可執行文件 14.3 在C程序中使用匯編函數 14.3.1 使用整數返迴值 14.3.2 使用字符串返迴值 14.3.3 使用浮點返迴值 14.3.4 使用多個輸入值 14.3.5 使用混閤數據類型的輸入值 14.4 在C++程序中使用匯編函數 14.5 創建靜態庫 14.5.1 什麼是靜態庫 14.5.2 ar命令 14.5.3 創建靜態庫文件 14.5.4 編譯靜態庫 14.6 使用共享庫 14.6.1 什麼是共享庫 14.6.2 創建共享庫< 包郵 [按需印刷]匯編語言程序設計 計算機與互聯網 書箱|28024 下載 mobi epub pdf txt 電子書 格式 包郵 [按需印刷]匯編語言程序設計 計算機與互聯網 書箱|28024 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024包郵 [按需印刷]匯編語言程序設計 計算機與互聯網 書箱|28024 下載 mobi pdf epub txt 電子書 格式 2024 包郵 [按需印刷]匯編語言程序設計 計算機與互聯網 書箱|28024 下載 mobi epub pdf 電子書用戶評價
評分
評分
評分
評分
評分
評分
評分
評分
評分
類似圖書 點擊查看全場最低價
包郵 [按需印刷]匯編語言程序設計 計算機與互聯網 書箱|28024 mobi epub pdf txt 電子書 格式下載 2024 分享鏈接相關圖書
|