注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計C/C++及其相關虛擬機的設計與實現:C/C++

虛擬機的設計與實現:C/C++

虛擬機的設計與實現:C/C++

定 價:¥76.00

作 者: 美.布朗登著楊濤等譯;楊濤譯
出版社: 機械工業(yè)出版社
叢編項: 開發(fā)人員專業(yè)技術叢書
標 簽: C++

ISBN: 9787111111115 出版時間: 2003-01-01 包裝: 膠版紙
開本: 16 頁數: 676 字數:  

內容簡介

  本書的作者曾經是一位物理學家,所以在計算機領域有著堅實、嚴謹的理論基礎,他從自己的實踐出發(fā),采用了數學中的SOP方法(命題—證明—示例),深入淺出地論述了本書的三大部分:概述、HEC虛擬機、HEC匯編語言,對虛擬機的設計目標、HEC虛擬機、HEC匯編器、HEC調試器、HEC中斷、HEC匯編語言的使用方法依次進行了描述,對HEC虛擬機在Windows和UNIX上的實現進行了比較。本書是第一本對虛擬機及其全套開發(fā)工具做出完整細致介紹的工具書。它能幫助系統(tǒng)工程師擺脫對計算機硬件制造商的依賴,也適用于學習計算機工作原理的學生,是虛擬機方面不可多得的一本好書。

作者簡介

  自從在1983年第一次接觸到DOS的調試工具開始,Bill Blunden就一直沉迷于系統(tǒng)軟件之中。他不滿足于僅僅知道事物的表面現象,而是一門心思地去探求它們的本質。憑著初生牛犢的勇氣,他開始嘗試編寫8259中斷控制器程序,結果是把他自己的電腦弄得一團糟。直到獲得計算物理(mathematical physics)學士學位和操作研究(operation research)碩士學位之后,Bill的才華才逐漸顯露出來。在美麗的Cleveland市的一家保險公司里擔任保險統(tǒng)計師期間,Bill平生第一次與一臺工作異常的IBM大型機進行了面對面的“搏斗”——那臺機器里有一個COBOL程序編寫得不正確。雖然“戰(zhàn)斗”十分“慘烈”,但Bill最終勝利了,而他的興趣也由此從鉆研數字轉移到了軟件研發(fā)方面。隨著時間的推移,Bill逐漸成為美國中西部地區(qū)一位知名的ERP專家——他用Java語言開發(fā)了一個CASE工具,進行了大量的技術研究,并與Control Data Corporation(控制數據公司,CDC)的許多專家進行了切磋。Bill有權隨意支配一臺配備有4塊處理器和2GB RAM的機器,這使他能夠在自己的象牙塔里開展各種研究。因為擁有如此之多的內存,所以曾經有一個時期,Bill習慣于關掉操作系統(tǒng)的內存分頁(paging)功能,讓程序直接運行在SDRAM上。但他小侄子的出生使Bill不得不從中西部遷居到西部的硅谷。Bill現居住在經常發(fā)生停電和地震的硅谷地區(qū),并逐漸從自己與COBOL當初的“戰(zhàn)斗”中恢復過來。

圖書目錄

前言
作者簡介
第一部分 概述
第1章 歷史與目標 
1.1 歷史回顧 
1.2 為什么要設計虛擬機 
1.3 貶值的財富 
1.4 微妙的平衡 
1.5 虛擬機反對派的觀點 
1.6 展望未來 
1.7 經驗和教訓 
1.8 參考資料 
第2章 基本執(zhí)行環(huán)境 
2.1 概述 
2.2 記號方法 
2.3 運行時系統(tǒng)與虛擬機 
2.4 內存管理 
2.4.1 機器級上的內存管理 
2.4.2 操作系統(tǒng)級上的內存管理 
2.4.3 應用程序級上的內存管理 
2.5 動態(tài)內存管理 
2.6 HEC虛擬機的內存管理 
2.7 機器設計 
2.8 HEC虛擬機的設計 
2.9 任務管理 
2.10 線程 
2.11 HEC虛擬機的任務管理 
2.12 輸入/輸出 
2.13 HEC虛擬機的輸入/輸出 
2.14 參考資料 
第二部分 HEC虛擬機
第3章 虛擬機的實現 
3.1 概述 
3.2 全局性元素 
3.2.1 common.c 
3.2.2 win32.c 
3.2.3 iset.c 
3.2.4 exenv.c 
3.2.5 error.c 
3.3 HEC虛擬機的命令行語法 
3.4 用來實現調試功能的代碼 
3.5 處理配置選項 
3.6 設置環(huán)境 
3.7 字節(jié)碼驗證 
3.8 指令的執(zhí)行 
3.8.1 load.c 
3.8.2 store.c 
3.8.3 pushpop.c 
3.8.4 move.c 
3.8.5 jump.c 
3.8.6 bitwise.c 
3.8.7 shift.c 
3.8.8 intmath.c 
3.8.9 fltmath.c 
3.8.10 dblmath.c 
3.8.11 interupt.c 
3.8.12 intwin32.c 
3.9 本章總結 
3.10 參考資料 
第4章 HEC調試器 
4.1 概述 
4.2 調試技術 
4.2.1 斷點 
4.2.2 單步執(zhí)行 
4.3 Intel平臺上的調試技術 
4.4 Intel平臺上的中斷 
4.4.1 實模式下的內存尋址 
4.4.2 實模式下的寄存器 
4.4.3 實模式下的中斷處理 
4.5 DOSdbg 
4.6 用來對付調試器的招數 
4.6.1 招數之一:破壞堆棧 
4.6.2 招數之二:增加線程 
4.6.3 招數之三:自修改程序 
4.6.4 招數之四:混合內存模型 
4.6.5 其他招數 
4.7 HEC文件格式 
4.7.1 文件頭部分 
4.7.2 符號表 
4.7.3 字符串表 
4.7.4 字節(jié)碼部分 
4.8 操作模式 
4.9 HEC調試器實現 
4.10 命令行的處理 
4.11 保存調試元數據 
4.12 處理調試命令 
4.12.1 ? - 幫助 
4.12.2 Q - 退出 
4.12.3 F - 可執(zhí)行文件信息 
4.12.4 D start stop -轉儲內存 
4.12.5 S start stop string - 搜索字符串 
4.12.6 L string - 符號查詢 
4.12.7 P - 函數顯示 
4.12.8 RX- 顯示寄存器內容(Ri、Rf、Rd) 
4.12.9 T - 單步執(zhí)行 
4.13 未來設想 
4.13.1 更快的算法 
4.13.2 O(n)記號 
4.13.3 動態(tài)補丁 
4.13.4 動態(tài)斷點 
4.13.5 會話日志 
4.13.6 程序頻率計數 
4.13.7 符號化調試器 
4.14 試用HEC虛擬機 
4.15 參考資料 
第三部分 HEC匯編語言
第5章 匯編器的實現 
5.1 概述 
5.2 數據結構簡述 
5.2.1 HSAM匯編器算法 
5.2.2 抽象數據類型 
5.2.3 抽象數據類型之一:向量 
5.2.4 可擴展數組 
5.2.5 抽象數據類型之二:數據樹 
5.2.6 二元搜索樹 
5.2.7 抽象數據類型之三:字典 
5.2.8 哈希表 
5.2.9 HASM數據結構小結 
5.3 命令行的使用方法 
5.4 HEC匯編器實現 
5.5 全局性元素 
5.6 命令行選項和命令行參數的處理 
5.7 第1遍—建立符號表 
5.7.1 概述 
5.7.2 LineScanner類 
5.7.3 LineTokenizer類 
5.7.4 Pass1類 
5.7.5 StringTable類 
5.7.6 SymbolTable類 
5.7.7 HashTable類 
5.8 第2遍—生成字節(jié)碼和程序清單 
5.9 創(chuàng)建編譯單位 
5.10 讀取程序清單文件 
5.11 試用HSAM匯編語言 
5.12 參考資料 
第6章 虛擬機的中斷 
6.1 概述 
6.2 INT 0—文件輸入/輸出 
6.3 INT 1—文件管理 
6.4 INT 2—進程管理 
6.5 INT 3—斷點 
6.6 INT 4—時間和日期調用 
6.7 INT 5—處理命令行參數 
6.8 INT 6—內存診斷 
6.9 INT 7—動態(tài)內存分配 
6.10 INT 8—數學函數 
6.11 INT 9—與宿主代碼的接口 
6.12 INT 10—進程間通信(IPC) 
6.12.1 IPC概述 
6.12.2 TCP/IP套接字 
6.12.3 TCP/IP地址 
6.12.4 實現 
6.13 參考資料 
第7章 HEC匯編語言 
7.1 構成匯編語言程序的元素 
7.1.1 指令 
7.1.2 偽指令 
7.1.3 注釋 
7.2 函數和標號的定義 
7.3 立即數據的加載和移動 
7.4 直接內存尋址模式 
7.5 數據的加載和保存 
7.6 算術運算 
7.7 二進制位操作 
7.8 數據轉換 
7.9 程序流控制 
7.9.1 跳轉 
7.9.2 選擇 
7.9.3 循環(huán) 
7.10 與堆棧有關的操作 
7.11 間接內存尋址模式 
7.12 全局變量存儲的定義 
7.13 構造函數調用記錄 
7.14 數據類型的映射 
7.15 程序元素的作用范圍 
7.16 指令與偽指令小結 
7.17 參考資料 
第8章 高級論題 
8.1 HEC虛擬機與高級語言:編譯器設計 
8.1.1 復雜性管理 
8.1.2 方法 
8.2 支持面向對象功能 
8.2.1 基本概念 
8.2.2 封裝 
8.2.3 繼承 
8.2.4 多態(tài) 
8.3 異常 
8.3.1 Java中的異常 
8.3.2 異常的實現方法 
8.3.3 異常的實現示例 
8.3.4 異常的濫用 
8.4 移植 
8.4.1 對Linux的觀感 
8.4.2 linux.c文件 
8.4.3 intlinux.c文件 
8.5 建立HEC運行時系統(tǒng) 
8.6 建造你自己的運行時系統(tǒng) 
8.6.1 模仿與創(chuàng)造 
8.6.2 項目管理—關鍵路徑 
8.6.3 運行時系統(tǒng)的關鍵路徑 
8.6.4 操作系統(tǒng)的關鍵路徑 
8.7 參考資料 
8.7.1 編譯器理論 
8.7.2 密碼學 
8.7.3 異常 
8.7.4 Java 
8.7.5 Linux 
附錄

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號