《微型計算機原理及應用教程(第2版)》,本書主要介紹微型計算機組成的基礎知識、微型計算機的原理及結構特點、8088/8086MPU的指令系統、匯編語言程序設計、存儲器、輸入輸出系統、中斷以及微機接口技術與應用。
第1章
緒論
1.1 微型計算機概述
1.1.1 微型計算機的發展
1.1.2 微型計算機的特點
1.1.3 微型計算機的新技術
1.1.4 微型計算機的應用
1.2 微型計算機系統的組成
1.2.1 硬件系統
1.2.2 軟件系統
1.2.3 主要性能指標
1.3 機器數的概念
1.3.1 二進制數
1.3.2 十進制數
1.3.3 不同數制之間的轉換
1.3.4 有符號數在計算機中的表示方法
習 題
第2章
微型計算機原理及結構特點
2.1 微型計算機的組成原理
2.1.1 主存儲器
2.1.2 中央處理器
2.1.3 微型計算機的工作過程
2.1.4 微型計算機的工作過程舉例
2.2 8086 MPU的結構特點
2.2.1 流水線結構
2.2.2 編程結構
2.2.3 存儲分段結構-存儲器的管理
2.2.4 總線周期
2.2.5 8086引腳功能及其工作模式
2.2.6 外部設備
習 題
第3章
8086/8088 MPU的指令系統
3.1 指令與指令系統
3.1.1 指令的組成
3.1.2 指令的分類
3.1.3 指令系統
3.2 尋 址 方 式
3.2.1 立即數尋址方式
3.2.2 寄存器尋址方式
3.3.3 RAM尋址方式
3.3 8086指令系統
3.3.1 數據傳送指令
3.3.2 地址傳送指令
3.3.3 標志寄存器傳送指令
3.3.4 算術運算指令
3.3.5 邏輯運算指令
3.3.6 移位指令
3.3.7 控制轉移指令
3.3.8 字符串操作指令
3.3.9 處理器控制指令
3.4 中斷及中斷返回
習 題
第4章
匯編語言
4.1 匯編語言程序
4.1.1 匯編語言的基本概念
4.1.2 匯編語言源程序的格式
4.2 匯編語言的語句
4.2.1 指令語句
4.2.2 偽指令語句
4.2.3 宏指令語句
4.3 匯編語言程序的上機過程及調試
4.3.1 編輯源程序
4.3.2 匯編源程序
4.3.3 連接程序
4.3.4 運行程序
4.4 匯編語言程序設計
4.4.1 程序設計的基本方法
4.4.2 順序結構程序設計
4.4.3 分支結構程序設計
4.4.4 循環結構程序設計
4.4.5 子程序的調用
4.4.6 DOS功能調用與輸入/輸出
4.5 匯編編程舉例
習 題
第5章
存儲器
5.1 半導體存儲器
5.1.1 概述
5.1.2 半導體存儲器的分類
5.1.3 半導體存儲器的主要技術指標
5.2 隨機存儲器
5.2.1 RAM芯片的內部結構
5.2.2 RAM存儲元件
5.2.3 RAM操作的時序
5.2.4 集成RAM芯片介紹
5.3 只讀存儲器
5.3.1 ROM芯片的內部結構
5.3.2 集成ROM芯片介紹
5.4 存儲器的設計方法
5.4.1 存儲器芯片的選擇
5.4.2 存儲器容量的擴展
5.4.3 存儲器與CPU的連接
5.4.4 存儲器地址空間的分配方法
5.4.5 存儲器設計舉例
習 題
第6章
輸入/輸出系統
6.1 輸入/輸出系統概述
6.1.1 外部設備的分類和特征
6.1.2 I/O接口的構成及功能
6.2 I/O端口編址
6.2.1 I/O端口的編址方式
6.2.2 I/O端口地址分配
6.2.3 I/O端口地址譯碼
6.3 I/O端口數據傳送的控制方式
6.3.1 程序傳送控制方式
6.3.2 中斷傳送控制方式
6.3.3 DMA控制方式
習 題
第7章
中斷與DMA技術
7.1 中 斷 原 理
7.1.1 中斷的定義與作用
7.1.2 中斷源
7.1.3 中斷優先權與中斷嵌套
7.1.4 中斷過程
7.2 8086/8088 CPU中斷系統
7.2.1 8086/8088的中斷類型
7.2.2 8086/8088的中斷向量及中斷向量表
7.2.3 DOS 下中斷服務程序的編寫
7.3 可編程中斷控制器8259A
7.3.1 8259A的引腳及內部結構
7.3.2 8259A的工作方式
7.3.3 8259A的級聯
7.3.4 8259A的命令字
7.4 8259A的應用舉例
7.5 DMA控制器
7.5.1 DMA系統概述
7.5.2 8237內部結構及引腳
7.5.3 DMA控制器在系統中的使用
7.5.4 DMA控制器8237A的初始化編程
7.5.5 DMA控制器的應用舉例
習 題
第8章
Proteus仿真平臺的使用
8.1 初識Proteus
8.1.1 進入Proteus ISIS
8.1.2 工作界面
8.1.3 Proteus ISIS中的主要操作
8.1.4 Proteus ISIS電路原理圖輸入
8.2 在Proteus中創建新的元件
8.3 Proteus電路仿真
8.3.1 Proteus ISIS交互式仿真
8.3.2 Proteus ISIS基于圖表的仿真
8.4 Proteus ISIS 下8086的仿真
8.4.1 編輯電路原理圖
8.4.2 設置外部代碼編譯器
8.4.3 添加源代碼并選擇編譯器
習 題
第9章 微型計算機接口技術與應用
9.1 接 口 概 述
9.1.1 接口及相關概念
9.1.2 接口的I/O端口與系統的連接
9.2 并行I/O接口
9.2.1 并行接口的功能與特點
9.2.2 并行接口的分類
9.2.3 非編程并行接口
9.2.4 可編程并行接口芯片8255A概述
9.2.5 8255A的初始化編程
9.2.6 8255A的工作方式
9.2.7 8255A的應用舉例
9.3 串行通信接口
9.3.1 串行通信概述
9.3.2 串行傳送總線接口
9.3.3 可編程串行接口芯片8251A
9.3.4 8251A的編程
9.3.5 8251A的應用舉例
9.4 計數與定時技術
9.4.1 計數與定時概述
9.4.2 定時/計數器8253
9.4.3 8253的初始化及編程
9.4.4 工作方式及特點
9.4.5 8253的應用舉例
習 題
第10章
Proteus仿真實例
10.1 基本I/O應用
10.1.1 實驗要求
10.1.2 實驗目的
10.1.3 實驗電路
10.1.4 代碼設計
10.2 8255并行I/O擴展實驗
10.2.1 實驗要求
10.2.2 實驗目的
10.2.3 實驗電路
10.2.4 代碼設計
10.3 可編程定時/計數器8253實驗
10.3.1 實驗要求
10.3.2 實驗目的
10.3.3 實驗電路
10.3.4 代碼設計
10.4 可編程串行通信控制器8251A 實驗
10.4.1 實驗要求
10.4.2 實驗目的
10.4.3 實驗電路
10.4.4 代碼設計
10.5 D/A數模轉換實驗
10.5.1 實驗要求
10.5.2 實驗目的
10.5.3 實驗電路
10.5.4 代碼設計
10.6 A/D模數轉換實驗
10.6.1 實驗要求
10.6.2 實驗目的
10.6.3 實驗電路
10.6.4 代碼設計
附錄A 8086/8088匯編語言指令表
附錄B ASCII碼字符與編碼對照表及各種控制字符
附錄C DOS功能調用
參考文獻
《微型計算機原理及應用教程(第2版)》:
、俨僮鞔a(OPCode)字段。操作碼告訴機器本條指令的操作類型,即將完成什么操作,是加法操作還是減法操作,是轉移操作還是停機操作,所以一條指令的操作碼字段必須有。按其操作的性質,可將指令分成不同的類型,即傳送指令、算術運算指令、邏輯運算指令、控制指令和外部設備指令。
、诓僮鲾担刂纷侄危∣PD/ADDR)。該字段指明參加本次操作的操作數的地址,這部分是可選項,有的指令無此項,如停機指令HLT,只有操作碼字段,無操作數字段;有的指令有2個或3個操作數/地址。
(2)指令譯碼器(ID)。指令譯碼器就是分析指令的地方。一條指令可完成一種操作,要讓機器知道就必須通過指令譯碼器對操作碼字段進行譯碼分析。例如,指令ADD,操作碼經指令譯碼器后方知下面要進行加法運算,然后將存放兩個加數的寄存器相應門打開,讓操作數送往ALU進行加法運算,并把結果送入ACC。
。3)微操作控制線路。經過對指令分析后,根據分析結果發出相應的控制命令,完成指令的執行,微操作控制線路就是完成此任務的。
完成一種操作不是馬上就能完成的。例如,下一道植樹命令,具體完成植樹操作工作還要有若干步驟:第1步領取工具,第2步挖坑,第3步領樹苗,第4步栽樹,第5步澆水,第6步完成。我們把這些步驟稱為微操作,計算機完成一條指令操作也需要由許多微操作完成,微操作控制線路就是會發出各種各樣的微操作命令的地方,這些微操作命令是在時序發生器發出各種控制信號下產生的,如節拍信號(電位表示)、脈沖信號。利用這些信號去打開相關的控制門,推動操作數的流動等。
。4)時序發生器。時序是按時間順序發出的各種控制信號,時序是由時序發生器產生的。
指令周期是完成一條指令執行的時間,是取指令和執行指令兩個時間之和。在指令系統中有各種各樣的指令,指令執行時間不盡相同,所以指令周期也不相同。指令周期決定著計算機的運算速度。指令周期越短,計算機的運算速度就越快。
機器周期是完成一個基本操作所需要的時間。例如,訪問存儲器時,從送被訪問存儲單元地址開始到取出數據或寫入數據為止,這段時間稱為機器周期,取出指令稱為取指周期,取操作數稱為存儲器讀周期,寫入數據稱為存儲器寫周期。又如,訪問I/O接口有數據輸入周期、數據輸出周期等,這些都是基本周期,即機器周期。
一個指令周期含一到多個機器周期。例如,在加法中有兩個機器周期(設一個操作數在存儲器中),一個機器周期用來取指令,另一個機器周期完成加法;又如停機指令,只需要1個取指周期,沒有具體執行。
……