出版時(shí)間:2009年6月 出版社:電子工業(yè)出版社 作者:羅云彬 頁數(shù):733
Tag標(biāo)簽:無
內(nèi)容概要
《琢石成器:Windows環(huán)境下32位匯編語言程序設(shè)計(jì)》一書嘗試從編寫應(yīng)用程序的角度,從“Hello,World”這個(gè)簡單的例子開始到編寫多線程、注冊表和網(wǎng)絡(luò)通信等復(fù)雜的程序,通過70多個(gè)從簡單到復(fù)雜的例子,逐步深入Win32匯編編程的方方面面。 全書包括了基礎(chǔ)篇、初級(jí)篇、界面篇、系統(tǒng)篇、應(yīng)用篇這五篇,共18章內(nèi)容。
作者簡介
羅云彬,軟件工程師,現(xiàn)從事軟件項(xiàng)目管理、軟件工程實(shí)施、數(shù)據(jù)庫應(yīng)用等領(lǐng)域的工作,在Windows操作系統(tǒng)下的應(yīng)用軟件編程方面有豐富的經(jīng)驗(yàn),另外對Oracle數(shù)據(jù)庫的管理有深入的研究,是國內(nèi)為數(shù)不多的OCM證書獲得者之一。 匯編語言編程是作者的一大愛好,作者自1990年開始即使用匯編語言編寫程序,是Windows操作系統(tǒng)流行后國內(nèi)最早研究Win32匯編編程的程序員之一,在1998年創(chuàng)建了專門探討匯編編程的網(wǎng)站www.win32asm.com.cn,曾發(fā)表過大量關(guān)于匯編編程的文章和網(wǎng)上教程,經(jīng)典作品《Windows環(huán)境下32位匯編語言程序設(shè)計(jì)》連續(xù)8年暢銷。
書籍目錄
基礎(chǔ)篇 第1章 背景知識(shí) 1.1 Win32的軟硬件平臺(tái) 1.1.1 80x86系列處理器簡史 1.1.2 Windows的歷史 1.1.3 Win32平臺(tái)的背后 1.1.3 Wintel聯(lián)盟 1.2 Windows的特色 1.3 必須了解的基礎(chǔ)知識(shí) 1.3.1 80x86處理器的工作模式 1.3.2 Windows的內(nèi)存管理 1.3.3 Windows的特權(quán)保護(hù) 第2章 準(zhǔn)備編程環(huán)境 2.1 Win32可執(zhí)行文件的 2.1 開發(fā)過程 2.2 編譯器和鏈接器 2.2.1 MASM系列 2.2.2 TASM系列 2.2.3 其他編譯器 2.2.4 MASM,TASM還是 2.2.4 NASM 2.2.5 我們的選擇——MASM32 2.2.5 SDK軟件包 2.3 創(chuàng)建資源 2.3.1 資源編譯器的使用 2.3.2 所見即所得的資源編輯器 2.4 make工具的用法 2.4.1 make工具是什么 2.4.2 nmake的用法 2.4.3 描述文件的語法 2.5 獲取資料 2.5.1 Windows資料的來源 2.5.2 Intel處理器資料 2.6 構(gòu)建編程環(huán)境 2.6.1 IDE還是命令行 2.6.2 本書推薦的工作環(huán)境 2.6.3 嘗試編譯第一個(gè)程序 第3章 使用MASM 3.1 Win32匯編源程序的結(jié)構(gòu) 3.1.1 模式定義 3.1.2 段的定義 3.1.3 程序結(jié)束和程序入口 3.1.4 注釋和換行 3.2 調(diào)用API 3.2.1 API是什么 3.2.2 調(diào)用API 3.2.3 API參數(shù)中的等值定義 3.3 標(biāo)號(hào)、變量和數(shù)據(jù)結(jié)構(gòu) 3.3.1 標(biāo)號(hào) 3.3.2 全局變量 3.3.3 局部變量 3.3.4 數(shù)據(jù)結(jié)構(gòu) 3.3.5 變量的使用 3.4 使用子程序 3.4.1 子程序的定義 3.4.2 參數(shù)傳遞和堆棧平衡 3.5 高級(jí)語法 3.5.1 條件測試語句 3.5.2 分支語句 3.5.3 循環(huán)語句 3.6 代碼風(fēng)格 3.6.1 變量和函數(shù)的命名 3.6.2 代碼的書寫格式 3.6.3 代碼的組織初級(jí)篇 第4章 第一個(gè)窗口程序 4.1 開始了解窗口 4.1.1 窗口是什么 4.1.2 窗口界面 4.1.3 窗口程序是怎么工作的 4.2 分析窗口程序 4.2.1 模塊和句柄 4.2.2 創(chuàng)建窗口 4.2.3 消息循環(huán) 4.2.4 窗口過程 4.3 窗口間的通信 4.3.1 窗口間的消息互發(fā) 4.3.2 在窗口間傳遞數(shù)據(jù) 4.3.3 SendMessage和PostMessage函數(shù)的區(qū)別 第5章 使用資源 5.1 菜單和加速鍵 5.1.1 菜單和加速鍵的組成 5.1.2 菜單和加速鍵的資源定義 5.1.3 使用菜單和加速鍵 5.2 圖標(biāo)和光標(biāo) 5.2.1 圖標(biāo)和光標(biāo)的資源定義 5.2.2 使用圖標(biāo)和光標(biāo) 5.3 位圖 5.3.1 位圖簡介 5.3.2 在資源中定義位圖 5.4 對話框 5.4.1 對話框簡介 5.4.2 對話框的資源定義 5.4.3 使用對話框 5.4.4 在對話框中使用子窗口控件 5.5 字符串資源 5.6 版本信息資源 5.6.1 版本信息資源的定義 5.6.2 在程序中檢測版本信息 5.7 二進(jìn)制資源和自定義資源 5.7.1 使用二進(jìn)制資源 5.7.2 使用自定義資源 第6章 定時(shí)器和Windows時(shí)間 6.1 定時(shí)器 6.1.1 定時(shí)器簡介 6.1.2 定時(shí)器的使用方法 6.2 Windows時(shí)間 6.2.1 Windows時(shí)間的獲取和設(shè)置 6.2.2 計(jì)算時(shí)間間隔 第7章 圖形操作 7.1 GDI原理 7.1.1 GDI程序的結(jié)構(gòu) 7.1.2 設(shè)備環(huán)境 7.1.3 色彩和坐標(biāo) 7.2 繪制圖形 7.2.1 畫筆和畫刷 7.2.2 繪制像素點(diǎn) 7.2.3 繪制圖形 7.2.4 繪圖模式 7.3 創(chuàng)建和使用位圖 7.3.1 一個(gè)使用位圖的時(shí)鐘例子 7.3.2 創(chuàng)建和使用位圖 7.3.3 使用設(shè)備無關(guān)位圖 7.4 塊傳送操作 7.4.1 塊傳送方式 7.4.2 塊傳送函數(shù) 7.5 區(qū)域和路徑 7.5.1 使用區(qū)域 7.5.2 使用路徑界面篇 第8章 通用對話框 8.1 通用對話框簡介 8.2 使用通用對話框 8.2.1 “打開”文件和“保存”文件對話框 8.2.2 字體選擇對話框 8.2.3 “顏色選擇”對話框 8.2.4 “查找”和“替換”文本對話框 8.2.5 “頁面設(shè)置”對話框 8.2.6 “瀏覽目錄”對話框 第9章 通用控件 9.1 通用控件簡介 9.1.1 通用控件的分類 9.1.2 使用通用控件 9.2 使用狀態(tài)欄 9.2.1 創(chuàng)建狀態(tài)欄 9.2.2 狀態(tài)欄的控制消息 9.2.3 在狀態(tài)欄上顯示菜單提示信息 9.3 使用工具欄 9.3.1 創(chuàng)建工具欄 9.3.2 工具欄的控制消息 9.3.3 工具欄的通知消息 9.4 使用Richedit控件 9.4.1 創(chuàng)建Richedit控件 9.4.2 Richedit控件的控制消息 9.4.3 Richedit控件的通知消息 9.5 窗口的子類化 9.5.1 什么是窗口的子類化 9.5.2 窗口子類化的實(shí)現(xiàn) 9.6 控件的超類化 9.6.1 什么是控件的超類化 9.6.2 控件超類化的實(shí)現(xiàn)系統(tǒng)篇 第10章 內(nèi)存管理和文件操作 10.1 內(nèi)存管理 10.1.1 內(nèi)存管理基礎(chǔ) 10.1.2 內(nèi)存的當(dāng)前狀態(tài) 10.1.3 標(biāo)準(zhǔn)內(nèi)存管理函數(shù) 10.1.4 堆管理函數(shù) 10.1.5 虛擬內(nèi)存管理函數(shù) 10.1.6 其他內(nèi)存管理函數(shù) 10.2 文件操作 10.2.1 Windows的文件:I/O 10.2.2 創(chuàng)建和讀寫文件 10.2.3 查找文件 10.2.4 文件屬性 10.2.5 其他文件操作 10.3 驅(qū)動(dòng)器和目錄 10.3.1 邏輯驅(qū)動(dòng)器操作 10.3.2 目錄操作 10.4 內(nèi)存映射文件 10.4.1 內(nèi)存映射文件簡介 10.4.2 使用內(nèi)存映射文件 第11章 動(dòng)態(tài)鏈接庫和鉤子 11.1 動(dòng)態(tài)鏈接庫 11.1.1 動(dòng)態(tài)鏈接庫的概念 11.1.2 編寫動(dòng)態(tài)鏈接庫 11.1.3 使用動(dòng)態(tài)鏈接庫 11.1.4 動(dòng)態(tài)鏈接庫中的數(shù)據(jù)共享 11.1.5 在VC++中使用動(dòng)態(tài)鏈接庫 11.2 Windows鉤子 11.2.1 什么是Windows鉤子 11.2.2 遠(yuǎn)程鉤子的安裝和使用 11.2.3 日志記錄鉤子 第12章 多線程 12.1 進(jìn)程和線程 12.2 多線程編程 12.2.1 一個(gè)單線程的“問題程序” 12.2.2 多線程的解決方法 12.2.3 與線程有關(guān)的函數(shù) 12.3 使用事件對象控制線程 12.3.1 事件 12.3.2 等待事件 12.3.3 進(jìn)一步改進(jìn)計(jì)數(shù)程序 12.4 線程間的同步 12.4.1 產(chǎn)生同步問題的原因 12.4.2 各種用于線程間同步的對象 第13章 過程控制 13.1 環(huán)境變量和命令行參數(shù) 13.1.1 環(huán)境變量 13.1.2 命令行參數(shù) 13.2 執(zhí)行可執(zhí)行文件 13.2.1 方法一:Shell調(diào)用 13.2.2 方法二:創(chuàng)建進(jìn)程 13.3 進(jìn)程調(diào)試 13.3.1 獲取運(yùn)行中的進(jìn)程句柄 13.3.2 讀寫進(jìn)程的地址空間 13.3.3 調(diào)試API的使用 13.4 進(jìn)程的隱藏 13.4.1 在Windows 9x中隱藏進(jìn)程 13.4.2 Windows NT中的遠(yuǎn)程線程 第14章 異常處理 14.1 異常處理的用途 14.2 使用篩選器處理異?!啊 ?4.2.1 注冊回調(diào)函數(shù) 14.2.2 異常處理回調(diào)函數(shù) 14.3 使用SEH處理異?! ?4.3.1 注冊回調(diào)函數(shù) 14.3.2 異常處理回調(diào)函數(shù) 14.3.3 SEH鏈和異常的傳遞 14.3.4 展開操作(Unwinding)應(yīng)用篇 第15章 注冊表和INI文件 15.1 注冊表和INI文件簡介 15.2 INI文件的操作 15.2.1 INI文件的結(jié)構(gòu) 15.2.2 管理鍵值 15.2.3 管理小節(jié) 15.2.4 使用不同的INI文件 15.3 對注冊表的操作 15.3.1 注冊表的結(jié)構(gòu) 15.3.2 管理子鍵 15.3.3 管理鍵值 15.3.4 子鍵和鍵值的枚舉 15.3.5 注冊表應(yīng)用舉例 第16章 WinSock接口和網(wǎng)絡(luò)編程 16.1 Windows Socket接口簡介 16.2 windows Socket接口的使用 16.2.1 IP地址的轉(zhuǎn)換 16.2.2 套接字 16.2.3 網(wǎng)絡(luò)應(yīng)用程序的一般工作流程 16.2.4 監(jiān)聽、發(fā)起連接和接收連接 16.2.5 數(shù)據(jù)的收發(fā) 16.2.6 一個(gè)最簡單的TCP服務(wù)端程序 16.3 TCP應(yīng)用程序的設(shè)計(jì) 16.3.1 通信協(xié)議和工作線程的設(shè)計(jì) 16.3.2 TCP聊天室例子——服務(wù)器端 16.3.3 TCP聊天室例子——客戶端 16.3.4 以非阻塞方式工作的TCP聊天室客戶端 16.3.5 其他常用函數(shù) 第17章 PE文件 17.1 PE文件的結(jié)構(gòu) 17.1.1 概論 17.1.2 DOS文件頭和DOS塊 17.1.3 PE文件頭(NT文件頭) 17.1.4 節(jié)表和節(jié) 17.2 導(dǎo)入表 17.2.1 導(dǎo)入表簡介 17.2.2 導(dǎo)入表的結(jié)構(gòu) 17.2.3 查看PE文件導(dǎo)入表舉例 17.3 導(dǎo)出表 17.3.1 導(dǎo)出表的結(jié)構(gòu) 17.3.2 查看PE文件導(dǎo)出表舉例 17.4 資源 17.4.1 資源簡介 17.4.2 資源的組織方式 17.4.3 查看PE文件中的資源列表舉例 17.5 重定位表 17.5.1 重定位表的結(jié)構(gòu) 17.5.2 查看PE文件的重定位表舉例 17.6 應(yīng)用實(shí)例 17.6.1 動(dòng)態(tài)獲取API入口地址 17.6.2 在PE文件上添加執(zhí)行代碼 第18章 ODBC數(shù)據(jù)庫編程 18.1 基礎(chǔ)知識(shí) 18.1.1 數(shù)據(jù)庫接口的發(fā)展歷史 18.1.2 SQL語言 18.1.3 ODBC程序的流程 18.2 連接數(shù)據(jù)庫 18.2.1 連接和斷開數(shù)據(jù)庫 18.2.2 連接字符串 18.3 數(shù)據(jù)的管理 18.3.1 執(zhí)行SQL語句 18.3.2 執(zhí)行結(jié)果的處理 18.3.3 獲取結(jié)果集中的數(shù)據(jù) 18.3.4 事務(wù)處理 18.4 數(shù)據(jù)庫操作的例子 18.4.1 結(jié)果集處理模塊 18.4.2 例子的源代碼參考文獻(xiàn)
章節(jié)摘錄
基礎(chǔ)篇 第1章 背景知識(shí) 讓我們在輕松的背景知識(shí)介紹中開始Win32匯編之旅。本章將對Win32平臺(tái)的歷史和現(xiàn)狀做簡要介紹,同時(shí)對80386處理器,以及Windows操作系統(tǒng)中涉及Win32匯編的基礎(chǔ)知識(shí)部分做快速充電?! ?.1 Win32的軟硬件平臺(tái) 1.1.1 80x86系列處理器簡史 Win32可以在多種硬件平臺(tái)上運(yùn)行,但使用最廣泛的硬件平臺(tái)是基于Intel公司80x86系列處理器的微型計(jì)算機(jī)?! ∽?978年6月Intel公司推出它的第一個(gè)16位微處理器8086以來,計(jì)算機(jī)技術(shù)就開始進(jìn)入飛速發(fā)展的時(shí)期。8086芯片的主頻為4.43 MHz,集成的晶體管數(shù)大約為2.9萬個(gè),運(yùn)算器的位長為16位,采用了20條地址線,可以尋址的范圍為220個(gè)字節(jié)地址,即1 MB;1982年,該公司發(fā)布了80286處理器,芯片上集成了12萬個(gè)晶體管,主頻提高到了12 MHz?! ?985年Intel公司推出32位的80386處理器,芯片上集成的晶體管數(shù)為27.5萬個(gè),主頻提高到了33 MHz,地址線則擴(kuò)展到32條,直接尋址的能力達(dá)到4 GB。80386處理器在設(shè)計(jì)的時(shí)候考慮了多用戶及多任務(wù)的需要,在芯片中增加了保護(hù)模式、優(yōu)先級(jí)、任務(wù)切換和片內(nèi)的存儲(chǔ)單元管理等硬件單元。80386的出現(xiàn)使Windows和UNIX等多任務(wù)的操作系統(tǒng)可以在PC上運(yùn)行。直到現(xiàn)在,運(yùn)行于80x86處理器之上的多任務(wù)操作系統(tǒng)都是以80386的運(yùn)行模式為基礎(chǔ)的。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載