出版時間:2003-6 出版社:大連理工大學出版社 作者:雷印勝,秦然,賈萍 編著
內容概要
匯編語言是從事計算機系統(tǒng)開發(fā)必備的程序開發(fā)技術之一,它屬于低級語言,能夠直接操作計算機硬件,是其他語言不能取代的。 本書內容由基本篇、提高篇和自測篇三部分組成,第一部分講述了“其工作原理、內部結構、尋址方式和指令系統(tǒng),并用較大的篇幅介紹了簡單程序和復雜程序設計實例。第二部分為提高篇,以80386微處理器為講述對象,詳細介紹了它的基本工作原理、新增指令集和3種工作模式,并用多個應用例子介紹了基于于80386CPU的編程技巧。第三部分為檢驗學習效果,本書給出了兩套自測試卷及其參考答案。
書籍目錄
第1章 微型計算機系統(tǒng)概述 1.1 微型計算機系統(tǒng)簡介 1.1.1 微型計算機發(fā)展史 1.1.2 微型計算機應用領域 1.2 微型計算機系統(tǒng)基本組成 1.2.1 微型計算機軟硬件概念 1.2.2 微型計算機結構 1.2.3 CISC機和RISC機 1.3 習題與綜合練習第2章 微型計算機系統(tǒng)結構 2.1 8086/8088微處理器 2.1.1 CPU結構 2.1.2 寄存器結構 2.2 工作模式 2.2.1 最小工作模式 2.2.2 最大工作模式 2.3 工作過程 2.4 一個完整的源程序 2.5 習題與綜合練習第3章 8086/8088指令系統(tǒng) 3.1 尋址方式 3.1.1 操作數(shù)類型 3.1.2 尋址方式 3.2 指令系統(tǒng) 3.2.1 數(shù)據(jù)傳送指令 3.2.2 算術運算指令 3.2.3 邏輯運算指令 3.2.4 移位指令 3.2.5 轉移指令 3.2.6 字符串操作指令 3.2.7 處理器控制指令 3.2.8 輸入輸出指令 3.2.9 中斷指令 3.3 高級匯編語言技術 3.3.1 匯編語言語句類型“ 3.3.2 匯編語言偽指令 3.3.3 匯編語言程序設計 3.3.4 結構和記錄 3.3.5 條件匯編與宏操作偽指令 3.4 DOS系統(tǒng)功能調用及程序設計 3.4.1 概述 3.4.2 DOS功能調用分組 3.4.3 常用的DOS INT 21H功能調用 3.4.4 磁盤文件管理 3.5 BIOS功能調用 3.5.1 概述 3.5.2 常用BIOS功能調用 3.5.3 圖形顯示程序設計 3.6 習題與綜合練習第4章 基本程序設計 4.1 順序程序設計 4.1.1 存儲單元內容移位 4.1.2 乘法運算與乘10運算 4.1.3 屏蔽與組合 4.1.4 字節(jié)分離 4.1.5 單字節(jié)壓縮BCD數(shù)加法運算 4.1.6 兩字節(jié)的二進制數(shù)加法運算 4.1.7 取數(shù)的反碼和補碼 4.1.8 F方表 4.2 分支程序設計 4.2.1 單重分支結構程序 4.2.2 多重分支結構程序 4.3 循環(huán)程序設計 4.3.1 循環(huán)程序的結構 4.3.2 單重循環(huán)程序 4.3.3 多重循環(huán)程序 4.3.4 循環(huán)次數(shù)未知的循環(huán)程序 4.3.5 “位”控制循環(huán)程序 4.4 子程序設計 4.4.1 子程序與主程序 4.4.2 子程序段內調用和返回 4.4.3 子程序段間調用和返回 4.4.4 調用程序和子程序間的參數(shù)傳遞 4.4.5 寄存器內容的保護 4.4.6 子程序的嵌套使用 4.4.7 關于遞歸子程序、可重入子程序 4.5 具有模塊結構的程序設計 4.5.1 概述 4.5.2 模塊的組合方式 4.5.3 模塊間的通信 4.5.4 模塊化程序設計的注意點 4.5.5 模塊化程序設計舉例 4.6 習題與綜合練習第5章 復雜程序設計 5.1 定點數(shù)算術運算程序 5.1.1 定點數(shù)運算的概念 5.1.2 定點數(shù)加法運算 5.1.3 定點數(shù)減法運算 5.1.4 定點數(shù)乘法運算 5.1.5 定點數(shù)除法運算 5.2 浮點數(shù)算術運算程序 5.2.1 浮點數(shù)概念 5.2.2 浮點數(shù)的規(guī)格化 5.2.3 浮點數(shù)加減運算 5.2.4 浮點數(shù)乘除運算 5.3 代碼轉換 5.3.1 二進制數(shù)與ASCⅡ碼間的相互轉換 5.3.2 二進制數(shù)與BCD碼間的相互轉換 5.3.3 二進制數(shù)到七段顯示碼的轉換 5.4 字符數(shù)據(jù)處理 5.4.1 字符串比較 5.4.2 字符串檢索 5.4.3 字符刪除與插入 5.4.4 字符串統(tǒng)計 5.5 表處理 5.5.1 表的查詢 5.5.2 表的插入與刪除 5.6 檢索 5.6.1 順序檢索 5.6.2 折半檢索 5.6.3 散列值檢索 5.7 排序 5.7.1 交換排序 5.7.2 選擇排序 5.7.3 插入排序 5.8 習題與綜合練習第6章 匯編語言的一些特殊命令用法 6.1.EXE文件和.COM文件 6.2 程序段前綴 6.3 匯編程序(ASM,MASM) 6.3.1 匯編程序的類別 6.3.2 匯編過程 6.3.3 運行環(huán)境 6.3.4 操作過程 6.3.5 匯編操作舉例 6.4 連接程序(LINK) 6.4.1 連接程序的作用 6.4.2 連接過程 6.4.3 LINK的使用與操作 6.5 調試程序(DEBUG) 6.5.1 DEBUG的功能及其啟動 6.5.2 DEBUG各命令的用法 6.5.3 應用舉例 6.6 符號調試程序SYMDEB簡介 6.7 上機操作輔助程序介紹 6.7.1 顯示(或打印)單個字符 6.7.2 顯示字符串 6.7.3 鍵入單個字符 6.7.4 鍵入字符串 6.7.5 程序正常結束 6.8 匯編語言與高級語言的連接 6.8.1 TURBO C調用匯編子程序 6.8.2 TURBO C行間嵌入?yún)R編 16.9 習題與綜合練習第7章 80386程序設計基礎 7.1 實地址方式 7.2 80386寄存器 7.2.1 通用寄存器 7.2.2 段寄存器和段描述符寄存器 7.2.3 指令指針和標志寄存器 7.3 80386存儲器尋址 7.3.1 存儲器尋址基本概念 7.3.2 靈活的存儲器尋址方式 7.3.3 支持各種數(shù)據(jù)結構 7.4 80386指令集 7.4.1 數(shù)據(jù)傳送指令 7.4.2 算術運算指令 7.4.3 邏輯運算和移位指令 7.4.4 控制轉移指令 7.4.5 串操作指令 7.4.6 高級語言支持指令 7.4.7 條件字節(jié)設置指令 7.4.8 位操作指令 7.4.9 處理器控制指令 7.5 實地址方式下的程序設計 7.5.1 說明 7.5.2 實例 7.6 操作系統(tǒng)類指令 7.6.1 實地址方式和任何特權級下可執(zhí)行的指令 7.6.2 實地址方式及特權級0下可執(zhí)行的指令 7.6.3 只能在保護虛地址方式下執(zhí)行的指令 7.6.4 顯示關鍵寄存器內容的實例 7.6.5 被包含文件386SCD.ASM 7.6.6 特權指令 7.7 習題與綜合練習-第8章 保護虛地址方式下的80386及其編程 8.1 保護虛地址方式簡介 8.1.1 存儲管理機制 8.1.2 保護機制 8.2 分段管理機制 8.2.1 段定義和虛擬地址到線性地址轉換 8.2.2 存儲段描述符 8.2.3 全局和局部描述符表 8.2.4 段選擇子 8.2.5 段描述符高速緩沖寄存器 8.3 80386控制寄存器和系統(tǒng)地址寄存器 8.3.1 控制寄存器 8.3.2 系統(tǒng)地址寄存器 8.4 實地址方式與保護虛地址方式切換實例 8.4.1 演示實地址和保護虛地址切換的實例 8.4.2 演示32位代碼段和16位代碼段切換的實例 8.5 任務狀態(tài)段和控制門 8.5.1 系統(tǒng)段描述符 8.5.2 門描述符 8.5.3 任務狀態(tài)段 8.6 控制轉移 8.6.1 任務內無特權級變換的轉移 8.6.2 演示任務內無特權級變換轉移的實例 8.7 分頁管理機制 8.7.1 存儲器分頁管理機制 8.7.2 線性地址到物理地址的轉換 8.7.3 頁級保護和虛擬存儲器支持 8.7.4 頁異常 8.7.5 演示分頁機制的實例 8.8 輸入/輸出保護 8.8.1 輸入/輸出保護 8.8.2 重要標志保護 8.8.3 演示輸入/輸出保護的實例 8.9 80386的中斷和異常 8.9.180386的中斷和異常 8.9.2 異常類型 8.9.3 中斷和異常的轉移方法 8.9.4 演示中斷處理的實例 8.10 虛擬8086方式 8.10.1 V86方式 8.10.2 進入和離開V86方式 8.10.3 演示進入和離開V86方式的實例 8.10.4 V86方式下的敏感指令 8.11 習題與綜合練習自測試卷(一)自測試卷(二)
章節(jié)摘錄
插圖:8086/8088也可以按最大工作模式來配置系統(tǒng)。當MN/MX線接地,則系統(tǒng)就工作于最大工作模式了。這里我們先簡要說明什么是最大工作模式,它和最小工作模式有何區(qū)別。在上面討論的8086/8088最小方式系統(tǒng)中,8086/8088CPU的引腳直接提供所有必須的總線控制信號,這種方式適合于單處理器組成的小系統(tǒng)。在最小工作方式中,作為單處理器的8086/8088CPU通??刂浦到y(tǒng)總線,但也允許系統(tǒng)中的其他主控設備——DMA控制器占用系統(tǒng)總線。DMA控制器通過占用系統(tǒng)總線可實現(xiàn)外部設備和存儲器之間直接數(shù)據(jù)傳送。DMA控制器通過向8086/8088的HOLD引腳發(fā)送一個高電平信號向CPU提出占用系統(tǒng)總線的請求信號,通常在現(xiàn)行總線周期完成后,8086/8088CPU作出響應,使HLDA引腳變成高電平,通知DMA控制器可以使用系統(tǒng)總線。DMA控制器接收到HLDA引腳的高電平信號后,掌握系統(tǒng)控制權,進行外部設備與存儲器之間的直接數(shù)據(jù)傳送。當DMA控制器完成傳送任務時,撤銷發(fā)向HOLD引腳的總線請求信號,CPU重新獲得對系統(tǒng)的控制權。需著重指出的是,DMA控制器雖然通過挪用總線周期實現(xiàn)外部設備與存儲器之間的直接數(shù)據(jù)傳送,提高了整個系統(tǒng)的能力,但DMA控制器卻不能執(zhí)行命令,其能力是相當有限的。假如系統(tǒng)中有兩個或多個同時執(zhí)行指令的處理器,這樣的系統(tǒng)就稱為多處理器系統(tǒng)。增加的處理器可以是8086/8088處理器,也可以是數(shù)字數(shù)據(jù)處理器8087或I/O處理器8089。在設計多處理器系統(tǒng)時,除了解決對存儲器和I/O設備的控制、中斷管理、DMA傳送時總線控制權外,還必須解決多處理器對系統(tǒng)總線的爭用問題和處理器之間的通信問題。因為多個處理器通過公共系統(tǒng)總線共享存儲器和I/O設備,所以必須增加相應的邏輯電路,以確保每次只有一個處理器占用系統(tǒng)總線。為了使一個處理器能夠把任務分配給另一個處理器或者從另一個處理器取回執(zhí)行結果,必須提供一種明確的方法來解決兩個處理器之間的通信。多處理器系統(tǒng)可以有效地提高整個系統(tǒng)的性能。8086/8088的最大工作方式就是專門為實現(xiàn)多處理器系統(tǒng)而設計的。IBMPC系列機系統(tǒng)中的微處理器工作于最大工作方式,系統(tǒng)中配置了一個作為協(xié)處理器的數(shù)字數(shù)據(jù)處理器8087。以提高系統(tǒng)數(shù)據(jù)處理的能力。
編輯推薦
《匯編語言程序設計(第2版)(計算機類)》:新世紀高職高專軟件專業(yè)系列規(guī)劃教材
圖書封面
評論、評分、閱讀與下載