出版時間:2005-5 出版社:高等教育出版社 作者:劉易斯 頁數(shù):235 字?jǐn)?shù):340000 譯者:陳宗斌
Tag標(biāo)簽:無
前言
你的家中有多少臺計算機?大多數(shù)人可能會回答有兩臺或三臺。你家中有多少個微處理器?在你回答前仔細(xì)考慮一下(提示:不止兩三個!事實上,甚至?xí)?0多個或20多個?。?。今天,微處理器已嵌入到幾乎所有你能想到的以及許多你可能想不到的電器中。它們已變得非常普及——不僅在我們家中,而且在我們的工作場所、我們的汽車、飛機、停車燈、超市、手機中——總之,在我們生活的幾乎所有方面?! ∏度胧较到y(tǒng)為學(xué)生表達(dá)他們的創(chuàng)造力提供了一個令人興奮的機會,他們夢想設(shè)計出下一代新的小器具,迎合大眾的需要。作為教育工作者,我們的挑戰(zhàn)是抓住這個激動人心的機會,并弓!導(dǎo)年輕人的精神活力,以激勵他們掌握這個主題。目標(biāo) 本書的最終目標(biāo)是打下一個基礎(chǔ),為學(xué)生掌握多線程編程風(fēng)格和嵌入式軟件的高可靠性要求提供支持。在本教材中,我們建立了以下目標(biāo): 1.理解如何在機器級表示數(shù)據(jù),認(rèn)識到這些表示的后果和局限。 2.掌握嵌入式系統(tǒng)最常用的語言特有的特性,如位操縱和變量訪問?! ?.了解程序員如何看待處理器體系結(jié)構(gòu)以及如何在匯編級編程,有時是必要的或合適的?! ?.了解多種不同風(fēng)格的I/O編程,并且最終了解如何通過事件驅(qū)動方法把數(shù)據(jù)處理隔離到許多獨立的計算線程中?! ?.了解非搶先式和搶先式多線程編程、共享資源和臨界區(qū),以及如何使用調(diào)度來管理系統(tǒng)響應(yīng)時間?! ?.復(fù)習(xí)作用域、參數(shù)傳遞、遞歸和內(nèi)存分配這類主題,以強化基本的編程技能?! ?.了解與共享內(nèi)存對象有關(guān)的問題、內(nèi)存分配如何影響共享內(nèi)存以及可以使用哪些編程實踐來最小化共享內(nèi)存的發(fā)生。目標(biāo)讀者 本書打算用作計算機科學(xué)、計算機工程或電子王程專業(yè)課程二年級教材,用來代替計算機組織和匯編語言編程的傳統(tǒng)教材?! ”緯榻B了實踐中最常用的匯編方法——以實現(xiàn)小型、快速或?qū)S美坦┲鞒绦蛘{(diào)用,這些主程序是用諸如C之類的高級語言編寫的。因此,本書僅從“須知”的觀點出發(fā)來介紹處理器組織和匯編語言,而不是將其作為一個主要目標(biāo)來講解。這種方法為用本書講授嵌入式軟件環(huán)境中的匯編語言提供了時間保證。
內(nèi)容概要
本書是對高等院校本科二年級計算機組成原理與匯編語言程序設(shè)計的傳統(tǒng)教材的全新替代版。本書以實踐中最常運用的方式講解匯編語言——實現(xiàn)小型、快速或特殊目的的例程,這些例程由主程序(高級語言編寫,如C)調(diào)用。通過運用嵌入式軟件環(huán)境,本書介紹多線程程序設(shè)計、可搶占式系統(tǒng)與非可搶占式系統(tǒng)、共享資源和調(diào)度,從而為操作系統(tǒng)、實時系統(tǒng)、計算機網(wǎng)絡(luò)及基于多處理器的設(shè)計等后續(xù)課程提供了堅實的基礎(chǔ)。 本書適用于高等院校工科各專業(yè)本科嵌入式計算機系統(tǒng)程序設(shè)計、C語言程序設(shè)計及匯編語言程序設(shè)計類課程,也可供相關(guān)技術(shù)人員學(xué)習(xí)參考。
書籍目錄
序言第1章 導(dǎo)論 1.1 什么是嵌入式系統(tǒng) 1.2 嵌入式軟件設(shè)計目標(biāo)有何獨特之處 1.3 “實時”意味著什么 1.4 “多任務(wù)”意味著什么 1.5 嵌入式處理器的功能有多強 1.6 使用哪些編程語言 1.7 什么是“實時內(nèi)核” 1.8 如何構(gòu)建獨特的嵌入式應(yīng)用程序 1.9 典型的嵌入式程序有多大 1.10 本書中使用的軟件 習(xí)題第2章 數(shù)據(jù)表示 2.1 固定精度的二進制數(shù)字 2.1.1 按位記數(shù)制 2.1.2 二進制一十進制轉(zhuǎn)換 2.1.3 十進制一二進制轉(zhuǎn)換 2.1.4 計數(shù) 2.1.5 固定精度和翻轉(zhuǎn) 2.1.6 十六進制表示 2.2 整數(shù)的二進制表示 2.2.1 帶符號整數(shù) 2.2.2 同一個值的正的表示和負(fù)的表示 2.2.3 解釋2的補碼數(shù)的值 2.2.4 關(guān)于范圍和溢出的進一步說明 2.2.5 2的補碼和硬件復(fù)雜性 2.3 實數(shù)的二進制表示 2.3.1 定點表示 2.3.2 使用通用的16.16格式的定點表示 2.3.3 使用通用的32.32格式的定點表示 2.3.4 浮點表示 2.4 文本的ASCII表示 2.5 二進制編碼的十進制表示 習(xí)題第3章 充分利用C語言 3.1 整型數(shù)據(jù)類型 3.2 混合數(shù)據(jù)類型 3.3 有用的typedef和define 3.4 操縱內(nèi)存中的位 3.4.1 測試位 3.4.2 設(shè)置、清除和反轉(zhuǎn)位 3.4.3 提取位 3.4.4 插入位 3.5 操縱:I/O端口中的位 3.5.1 只寫I/O端口 3.5.2 通過讀/寫區(qū)分的端口 3.5.3 通過順序訪問區(qū)分的端口 3.5.4 通過寫入數(shù)據(jù)中的位區(qū)分的端口 3.6 訪問內(nèi)存映射的I/O設(shè)備 3.6.1 通過指針訪問數(shù)據(jù) 3.6.2 數(shù)組、指針和“取地址”運算符 3.7 結(jié)構(gòu) 3.7.1 打包的結(jié)構(gòu) 3.7.2 位域 3.8 變型訪問 3.8.1 強制轉(zhuǎn)換對象的地址 3.8.2 使用共用體 習(xí)題第4章 程序員眼中的計算機結(jié)構(gòu) 4.1 內(nèi)存 4.2 中央處理器 4.2.1 運算器 4.2.2 其他寄存器 4.2.3 控制器 4.3 輸入/輸出 4.4 Intel架構(gòu)介紹 4.4.1 指令格式 4.4.2 指令操作數(shù) 4.4.3 操作數(shù)限制 4.4.4 寄存器 4.4.5 棧 4.5 Intel實模式架構(gòu) 4.5.1 分段尋址 4.5.2 尋址模式 4.6 Intel保護模式架構(gòu) 4.6.1 段寄存器和全局描述符表 4.6.2 坦內(nèi)存模型 4.6.3 尋址模式 4.7 操作數(shù)與地址長度覆蓋前綴 4.8 Intel數(shù)據(jù)操縱指令 4.8.1 數(shù)據(jù)移動、棧和I/O指令 4.8.2 算術(shù)指令 4.8.3 按位指令 4.8.4 移位指令 習(xí)題第5章 c語言與匯編語言的融合第6章 輸入/輸出編程第7章 并發(fā)軟件第8章 調(diào)度第9章 內(nèi)存管理第10章 共享內(nèi)存第11章 系統(tǒng)初始化附錄A配書光盤上的內(nèi)容附錄BDJGPPC/C++編譯器附錄CNASM;I-編器附錄D編程項目附錄Elibepc庫附錄F引導(dǎo)加載程序附錄G詞匯表
章節(jié)摘錄
當(dāng)你想運行一個桌面應(yīng)用程序時,就會通過操作系統(tǒng)的一部分(稱為加載程序),把它的可執(zhí)行映像從磁盤上加載到內(nèi)存中。操作系統(tǒng)自身已經(jīng)在內(nèi)存中,它是在引導(dǎo)過程中加載到其中的”?! ∽烂嫦到y(tǒng)用于運行許多不同的應(yīng)用程序。因而,會使用讀/寫主內(nèi)存,以使完全不同的應(yīng)用程序能夠快速、容易地加載到內(nèi)存中,無論何時都可根據(jù)需要來替換先前的應(yīng)用程序。 與通用的桌面系統(tǒng)不同的是,嵌入式系統(tǒng)被設(shè)計成為服務(wù)于單一目的。如果嵌入式軟件已位于內(nèi)存中,通常沒有理由改變它。這使得使用價格低廉的只讀存儲器來永久性地存儲該程序成為可能。由于沒有必要把程序存儲到磁盤上,因此可以顯著削減軟件數(shù)量,而這些軟件可能是支持文件系統(tǒng)所必要的?! ∏度胧綉?yīng)用的軟件和實時內(nèi)核都作為單一的程序映像存儲在只讀存儲器中。由于不需要文件系統(tǒng),因而其內(nèi)核比常規(guī)的操作系統(tǒng)要小得多,并且能夠很容易地連接到作為另一種對象文件的程序中。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載