資料介紹
《計算機組成原理與匯編語言程序設計》復習指南俸遠禎? 徐潔?
為了幫助同學們復習,本文首先闡明本課程的教學目標與考核說明,這是總復習的指導思想。在重點與難點的剖析中,則首先突出需熟練掌握的部分,然后再討論一些需掌握、理解的概念和方法,其間插入一些典型題例。由于匯編語言程序設計有其自身的體系和特點,我們將它作為專門的一節(jié)討論。
一、 教學目標與考核要求
??? 本課程的教學目標是:在學完本課后能建立起整機概念,它可分為兩級:
(1) CPU級,它包含三個方面:CPU基本組成、指令流程、匯編語言級程序設計方法。
(2) 系統(tǒng)級,它包含兩個方面:如何通過系統(tǒng)總線與接口將CPU、主存、I/O設備(含外存)連接成整機,對輸入/輸出的三種基本控制機制。
??? 相應地,考核也將緊緊圍繞這一基本教學目標。一套規(guī)范的試卷應能體現(xiàn)出與整機概念相關的核心內容,如:CPU如何執(zhí)行程序(指令流程),如何組成一個半導體存儲器,總線與接口的基本組成,中斷方式的定義、特點、應用、過程,DMA方式的定義、特點、應用、過程,同步控制與異步控制,閱讀、分析程序段,用常用匯編語句編寫程序段(教材例題和錄像教學中使用的匯編語句基本上就屬于常用的)等。
??? 教材在每章開頭的“學習目標”中,分別用幾種層次表明考核要求:①熟練掌握,這是重之重、必考內容,可能占有較大比重。②掌握。③理解。屬于“了解”的內容一般不直接考核,即或涉及到一些,其比重也很小。
??? 試題類型大致分為:①單項選擇題②多項選擇題③改錯題(原題均有錯)。在這三種試題中都給出一些似是而非的提法或結論,要求考生能正確理解有關概念,能選擇或給出正確的結論。注意,對改錯題的改正并不是將原來的提法簡單地顛倒就行的,也不要偏離題意。④簡答題,要求正面回答、闡述。有時也要求對可比性概念進行比較分析,例如同步控制與異步控制、組合邏輯控制與微程序控制、中斷與DMA等。⑤分析題,如閱讀一段用匯編語言書寫的程序段,然后回答問題。⑥設計題,如擬定指令流程、設計半導體存儲器、編寫程序段等。設計題通常是重點所在,請大家務必注意,本文也將重點分析。
二、 需熟練掌握的內容
??? 教材在三處采用了“熟練掌握”的提法:CPU基本組成與指令流程,用存儲芯片構成某一容量的存儲器,中斷方式與DMA方式。這些知識點涉及到建立整機概念的核心問題:CPU如何執(zhí)行指令,計算機如何存儲信息,如何控制輸入/輸出。
1.CPU基本組成
??? 教材3.3.1節(jié)給出了一種簡化的CPU內部組成模型,它是擬定指令流程的基礎,大家應該記住它。在理解它的組成時需要抓住幾點:
(1) ALU部件,以及它的輸入與輸出方式。
(2) 用于運算的一組寄存器R0~R3及暫存器C、D、Z。
(3) 用于控制的一組寄存器:指令寄存器IR,程序計數(shù)器PC,程序狀態(tài)字寄存器PSW。
(4) 與訪存相關的一組寄存器:存儲器地址寄存器MAR,存儲器數(shù)據(jù)寄存器MDR,堆棧指針SP。
(5) 內部總線的連接方式,如何向它發(fā)送信息,它又如何輸出信息。
(6) CPU如何通過系統(tǒng)總線與主存、I/O設備相連接。
2.擬定指令流程
??? 指令流程體現(xiàn)了計算機工作原理中一個核心內容:CPU究竟怎樣執(zhí)行程序指令?大家務必要熟練掌握??己朔绞揭话闶墙o出一條特定的指令,以模型機CPU內部組成為背景,用寄存器傳送級語句描述其讀取與執(zhí)行流程。關鍵是要熟練掌握幾種基本尋址方式的實現(xiàn)過程,分清誰是源地址、誰是目的地址,操作碼是什么。
設計題:擬出指令MOV-(SP),x(R0)的讀取與執(zhí)行流程。
PC→MAR? 取指令地址
M→MDR→IR,PC+1→PC? 取指令
PC→MAR
M→MDR→D,PC+1→PC? 取形式地址
D+R0→Z 變址計算
Z→MAR 送有效地址
M→MDR→C 讀源操作數(shù)
SP-1→Z
Z→MAR、SP 修改棧頂?shù)刂?BR>C→MDR
MDR→M?? 壓棧
??? 本題的操作碼MOV是一條傳送指令,意味著從源地址讀取一個操作數(shù),送入目的地。按模型機指令格式,源尋址方式助記符x(R0)表明是采用變址方式,即:從緊跟現(xiàn)行指令的下一個存儲單元中讀取形式地址,送入暫存器D;變址寄存器R0的內容(變址量)與形式地址相加,獲得有效地址,暫存在Z中;再按該有效地址從主存中讀取源操作數(shù),送入暫存器C。目的地尋址方式助記符-(SP)表明采用堆棧尋址方式,將源操作數(shù)壓入堆棧;先修改堆棧指針SP,使它指向新棧頂(待存的空單元)。最后,將暫存于C中的源操作數(shù)經MDR送入主存(即壓入堆棧)。
??? 采用了兩種相對復雜一些的尋址方式,常用的尋址方式還有:寄存器尋址方式R、寄存器間址方式(R),自減型寄存器間址方式-(R),自增型寄存器間址(R)+,直接尋址方式DI等,大家務必要掌握。
3.存儲器設計
??? CPU加上主存,習慣上稱為主機。在構建某個計算機應用系統(tǒng)中,常需自行設計半導體存儲器,即用若干存儲芯片構造一定容量的存儲器。所以這是必須熟練掌握的核心內容。
設計題:用1K×4/片的存儲芯片構成一個4KB存儲器,地址總線A15~A0(低),數(shù)據(jù)總線D7~D0(低),R/W控制讀寫。請畫出芯片級邏輯框圖,注明各信號線,寫出片選邏輯式。
??? 教材已經完整地講解了設計方法與設計過程,本文在這里僅強調一些需要注意的地方。若本題的題分為10分,則評分標準往往是:芯片數(shù)量及其組合1分;芯片地址是哪幾位,3分;片選邏輯,4分;數(shù)據(jù)線1分;讀寫控制1分。在完成設計并畫出邏輯圖后,應當從上述幾方面檢查一下。存儲器邏輯的核心是尋址邏輯,因此芯片地址、片選邏輯這兩項在評分標準中占有主要份量。為此需要掌握存儲容量與相應地址位數(shù)之間的對應關系:1K容量需要10位地址,2K容量需要11位地址……。本題的地址分配關系如下:
不用片選芯片地址 A15? A14? A13? A12
片選地址 A11? A10
芯片地址 A9? A8? A7? A6? A5? A4? A3? A2? A1? A0
片選邏輯式:CS0=A11 A10?? CS1=A11 A10
??????????? CS2=A11 A10?? CS3=A11 A10
4.中斷方式
??? 為了將主機與I/O設備連接成一臺計算機系統(tǒng),需要通過系統(tǒng)總線與各種接口實現(xiàn)連接,還要能夠選擇實現(xiàn)三種基本的I/O控制機制之一。這是由CPU級發(fā)展到系統(tǒng)級整機概念的關鍵,其中有關中斷方式和DMA方式的概念最為重要,也相對復雜些,因此被列為必須熟練掌握的核心內容之一。
(1) 定義:當CPU接到某個隨機的中斷請求信號后,暫停執(zhí)行當前的程序,轉去執(zhí)行相應的中斷處理程序,為該隨機事態(tài)服務,服務完畢后自動返回并繼續(xù)執(zhí)行原程序。這一過程稱為中斷,采用這種方式控制I/O操作或處理隨機事件,稱為中斷方式。
(2) 特點:通過執(zhí)行程序處理,具有隨機性。
(3) 應用:抽象地說,中斷方式主要應用于管理中低速I/O操作、處理復雜的隨機事件。具體的應用實例如:故障處理、中低速I/O控制、通信、實時處理、人機對話等。
(4) 中斷過程:中斷請求信號的產生與傳送,屏蔽與判優(yōu),CPU響應(保存斷點、轉向中斷處理程序入口),中斷處理(執(zhí)行處理程序),返回。(細節(jié)見教材)
(5) 向量中斷:這是現(xiàn)代計算機廣泛采用的一種獲取中斷處理程序入口的方式。事先將系統(tǒng)各個中斷處理程序的入口地址作為中斷向量,組織成一個中斷向量表,存放在主存的特定區(qū)域中;當CPU響應中斷請求并發(fā)出批準信號后,提出該請求的中斷源(如某個中斷接口)向CPU送出自己的向量編碼(如中斷類型碼),CPU將它轉換成向量地址;據(jù)此訪問主存中的中斷向量表,從中讀取相應的中斷處理程序入口地址,從而轉去執(zhí)行處理程序。
5.DMA方式
??? 作為三種I/O控制機制之一,DMA方式是一種重要的數(shù)據(jù)傳送方式。
(1) 定義:DMA方式是直接依靠硬件實現(xiàn)主存與I/O設備之間數(shù)據(jù)直接傳送的一種方式,在傳送過程中不需CPU程序干預。
(2) 特點:直接依靠硬件實現(xiàn)數(shù)據(jù)傳送(不是依靠執(zhí)行程序),具有隨機性。
(3) 應用:抽象地說,DMA方式適用于高速的簡單數(shù)據(jù)批量傳送。具體的應用實例如:讀寫磁盤、光盤、磁帶等外存儲器時的數(shù)據(jù)傳送、網絡通信、動態(tài)刷新等。
(4) 典型過程:一次完整的調用過程包含三個階段:
A.DMA初始化。CPU執(zhí)行初始化程序:預置DMA控制器的工作方式,并向它送出傳送方向、
主存緩沖區(qū)首址、交換數(shù)據(jù)量等信息;向I/O設備接口送出讀寫命令、設備尋址信息,然后啟動設備工作。
B.DMA傳送。當需要傳送時,接口向DMA控制器提出DMA請求,然后DMA控制器向CPU申請總線控制權,獲得批準后由DMA控制器接管總線(送出總線地址和讀寫命令),接口和主存之間通過數(shù)據(jù)總線直接傳送。
C.結束處理。批量傳送結束后,接口向CPU提出中斷請求,CPU執(zhí)行中斷處理程序進行結束處理。
簡答題:何謂中斷方式?舉出兩種應用實例。
簡答題:比較并說明中斷方式與DMA方式的主要異同。
改錯題:DMA方式是直接依靠硬件實現(xiàn)主機與I/O設備之間的數(shù)據(jù)直傳。
注意,主機包括CPU與主存,而DMA方式正是要繞過CPU。
三、 需要掌握、理解的內容(部分)
??? 雖然我們先突出了最重要的一些內容,但為了建立整機概念還需要全面復習教材。限于篇幅,本文只能對其中的部分重點與難點進行剖析,并給出一些題例,起到示范作用。注意,不能將本文視為考試范圍,復習時一定要以考核大綱為準。
1.存儲程序工作方式:事先編寫程序,事先存儲程序,自動連續(xù)執(zhí)行程序。
2.計算機的特點?;诖鎯Τ绦蚬ぷ鞣绞胶蛿?shù)字化信息表示,計算機具有下述特點:能在
程序控制下自動連續(xù)地工作,運算速度快,運算精度高,具有很強的信息存儲能力,通用性強。
3.數(shù)制轉換
單選題:(195)10=(B)2
A.11001101???? B.100111
C.1001101????? D.110010101
4.碼制轉換
單選題:若X=-01100100,則X補=(D)
A.01100100???? B.11100100
C.10011011???? D.10011100
5.定、浮點數(shù)的表示范圍、分辨率、典型值。關鍵是掌握它們的典型值,由此可知其表示范圍和分辨率。
單選題:某定點整數(shù)16位,含1位符號位,補碼表示,則所能表示的絕對值最大負數(shù)的十進制真值為(A)
A.-215???? B.-216???? C.-(215-1)??? D.-(216-1)
6.I/O編址方法
??? CPU訪問I/O設備是通過接口中的寄存器進行的,目前廣泛采用的有兩種I/O編址方法:
(1) 單獨編址。為I/O接口中的有關寄存器分配I/O端口地址,一般由地址總線若干低位提供I/O端口地址,從而選擇某個接口寄存器進行讀/寫。
(2) 統(tǒng)一編址。將I/O接口中的有關寄存器與主存單元統(tǒng)一編址,一般將總線地址碼中高端(地址值大)的一段區(qū)域分配給I/O端口。
7.運算部件的構成@
??? 運算分為算術運算與邏輯運算,算術運算以加法器為核心。多位全加器加上進位鏈構成并行加法器,加法器加上輸入選擇邏輯成為多功能的算術邏輯運算部件ALU,ALU加上移位邏輯可實現(xiàn)乘除運算,而浮點運算可分解為定點整數(shù)的階碼運算和定點小數(shù)的尾數(shù)運算。在簡單的CPU中可能只有一個ALU和一個移位器,而復雜的CPU中可能包含多個、多種運算部件。
8.原碼運算與補碼運算
??? 簡答題:指出原碼運算與補碼運算的主要區(qū)別。
??? 原碼運算主要用于乘除法,取尾數(shù)(絕對值)運算,符號位單獨處理;其絕對值運算又稱為無符號數(shù)運算。補碼運算包括加減乘除,其主要特點是符號位作為數(shù)的一部分直接參與運算,又稱為帶符號數(shù)運算。
9.組合邏輯控制器
??? 它通過組合邏輯電路產生微命令,產生微命令的輸入信號有:指令代碼(操作碼、尋址方式碼等),時序信號(工作周期、時鐘周期、工作脈沖),程序狀態(tài)(PSW中的標志位),外部請求等。輸出為微命令(電位型、脈沖型)。優(yōu)點:速度快。缺點:設計較凌亂,不易修改擴充。應用于快速CPU中。
10.微程序控制器
??? 簡答題:簡述微程序控制方式的基本思想
(1) 產生微命令的方法:將所需的微命令以代碼形式編成若干條微指令,在制造CPU時將它們存入CPU內的一個控制存儲器(ROM型)。CPU執(zhí)行指令時,從控制存儲器中讀出微指令,即可獲得所需的微命令。
(2) 微程序與工作程序之間的對應關系:一條微指令包含的微命令控制實現(xiàn)一步(一個時鐘周期)機器操作;若干條微指令組成一小段微程序,解釋實現(xiàn)一條機器指令;控制存儲器中的微程序能解釋實現(xiàn)全部指令系統(tǒng)。
簡答題:簡述微程序控制方式的優(yōu)缺點
優(yōu)點:設計比較規(guī)整,易于修改擴充。
缺點:速度較組合邏輯控制器稍慢。
應用于對速度要求不是特別高的CPU中,例如Intel的80×86系列。
11.同步控制方式
??? 同步控制方式是這樣一種時序控制方式:各項操作都由統(tǒng)一的時序信號同步定時,它的主要特征是有固定的時鐘周期劃分。這意味著什么時間執(zhí)行什么操作是事先安排好的,一項基本操作占用一個時鐘周期(節(jié)拍),某個操作發(fā)生的時刻由相應的脈沖邊沿定時。
??? 在CPU內部及各設備內部一般都采用同步控制方式;在傳送距離較短、各設備速度差異不很大、傳送時間可大致預估的系統(tǒng)中,其系統(tǒng)總線也廣泛應用同步控制方式,稱為同步總線。
12.異步控制方式
??? 在異步控制方式中,數(shù)據(jù)傳送及各項操作之間的銜接采用應答方式實現(xiàn);所需時間視實際需要而定,能短則短,需長則長;其主要特征是沒有固定的時鐘周期劃分,由一組應答信號定時。在傳送距離較長、系統(tǒng)內各設備差異較大、傳送時間不易預先估計的系統(tǒng)中,其系統(tǒng)總線常采用異步控制方式,稱為異步總線。
13.總線及其分類
??? 總線是一組可由多個部件分時共享的傳送信息的公共線路。它可連接多個部件(共享),某一時刻只能有一個部件可通過總線發(fā)送數(shù)據(jù)(分時),但可將該數(shù)據(jù)傳送至一個或同時傳送至多個部件。
??? 按數(shù)據(jù)傳送格式,總線可分為串行總線與并行總線。按時序控制方式,總線可分為同步總線與異步總線,或再細分出一種同步擴展總線。按所處的位置和功能,可分為CPU內部總線、系統(tǒng)總線以及各種部件內部總線。按傳送信息類型,可分為地址總線、數(shù)據(jù)總線、控制總線。
14.系統(tǒng)總線的信號組成
??? 典型的系統(tǒng)總線大致包括下述類型的信號:電源與地,地址,數(shù)據(jù),同步定時信號或異步應答信號,數(shù)據(jù)傳送控制信號,中斷請求與批準信號,總線請求與批準,系統(tǒng)復位等。
15.I/O接口的定義與分類
??? I/O接口是位于系統(tǒng)總線與I/O設備之間的邏輯部件,它提供了主機與I/O設備之間進行信息傳送的界面和控制邏輯。
??? 按數(shù)據(jù)傳送格式,接口可分為串行接口與并行接口。注意,接口的一側面向系統(tǒng)總線,另一側面向I/O設備。對于并行接口,它與系統(tǒng)總線以及與I/O設備之間都是并行。而對于串行接口,它與系統(tǒng)總線之間仍為并行,與設備之間則是串行。因此在串行接口中需進行串-并轉換,比并行接口復雜。
??? 按時序控制方式分類,接口可分為同步接口與異步接口。
??? 按I/O控制機制分類,接口可分為直接程序控制方式接口、中斷接口、DMA接口。
16.中斷接口的基本組成及功能
(1) 端口地址譯碼電路與讀寫控制。它決定是否訪問本接口,選擇接口的哪個寄存器,讀出還是寫入。
(2) 命令字及狀態(tài)字寄存器。CPU采用輸出指令通過數(shù)據(jù)總線向接口寫入命令字,其代碼將產生某些具體的操作命令。CPU采用輸入指令通過數(shù)據(jù)總線從接口讀取狀態(tài)字,以判別接口及設備的工作狀態(tài)。
(3) 數(shù)據(jù)緩沖寄存器/存儲器。它轉發(fā)輸入、輸出數(shù)據(jù),實現(xiàn)緩沖使主機與I/O設備之間達到速度匹配,及可能需要的串并格式轉換。
(4) 與設備特性及中斷機制有關的控制邏輯。通常將其中的公共部分(各接口公用)集中在中斷控制器中,它包含:暫存中斷請求信號、屏蔽、判優(yōu)、中斷類型碼、向CPU提出請求及接受批準信號等。而某個設備的中斷信號產生電路,以及與該設備操作相關的控制邏輯,則位于該I/O接口中。
簡答題:簡述I/O接口的基本功能
(1) 地址譯碼,選取接口寄存器。
(2) 接收控制命令,提供工作狀態(tài)信息。
(3) 數(shù)據(jù)緩沖(速度匹配),格式轉換。
(4) 控制邏輯,如中斷、DMA控制邏輯,設備操作等。
17.三級存儲體系
??? 常見的三級存儲體系(從CPU往外)是:Cache、主存、外存。
??? 主存儲器用來存放需CPU運行的程序和數(shù)據(jù)。用半導體RAM構成,常包含少部分ROM??捎蒀PU直接編程訪問,采取隨機存取方式,即:可按某個隨機地址直接訪問任一單元(不需順序尋找),存取時間與地址無關。存儲容量較大,常用字節(jié)數(shù)表示,有時也用單元數(shù)×位數(shù)表示。速度較快,以存取周期表示。
??? Cache位于CPU與主存之間(有些Cache集在CPU芯片之中),用來存放當前運行的程序和數(shù)據(jù),它的內容是主存某些局部區(qū)域(頁)的復制品。它用快速的半導體RAM構成,采取隨機存取方式。存儲容量較小而速度最快。
??? 外存儲器用來存放暫不運行但需聯(lián)機存放的程序和數(shù)據(jù)。用磁盤、光盤、磁帶等構成,磁盤用于需頻繁訪問場合,光盤目前多用于提供系統(tǒng)軟件,而磁帶多用于較大系統(tǒng)的備份。CPU不能直接編址訪問外存,而是將它當作外圍設備調用。磁帶采取順序存取方式。磁盤與光盤采取直接存取(半順序)方式,先直接定位到某個局部區(qū)域,再在其中順序存取。外存容量可以很大,以字節(jié)數(shù)表示。由于外存的存取時間與數(shù)據(jù)所在位置有關,所以不能用統(tǒng)一的存取周期指標來表示。例如磁盤的速度指標可按其工作過程分成三個階段描述:①平均尋道時間②平均旋轉延遲(等待)時間③數(shù)據(jù)傳輸率。
18.靜態(tài)RAM
??? 靜態(tài)RAM依靠雙穩(wěn)態(tài)電路(內部交叉反饋)存儲信息,即一個雙穩(wěn)態(tài)電路單元存放一位二進制信息,一種穩(wěn)態(tài)為0,另一種穩(wěn)態(tài)為1。只要電源正常就能長期保存信息,不需動態(tài)刷新,所以稱為靜態(tài)存儲器。一旦斷電則信息將會丟失,屬于易失性(揮發(fā)性)存儲器。與動態(tài)RAM相比,靜態(tài)RAM的速度更快,功耗較大,集成度較低,常用于容量較小的存儲器中。
改錯題:靜態(tài)RAM的“靜態(tài)”二字含意是:在工作中它的內容靜止不變。
19.動態(tài)RAM
??? 動態(tài)RAM依靠電容暫存電荷來存儲信息,電容充電至高電平為1,放電至低電平為0。由于暫存電荷會逐漸泄漏,需要定期補充電荷來維持為1的存儲內容,這種方法稱為動態(tài)刷新。由于需要動態(tài)刷新,所以稱為動態(tài)存儲器。在電源正常并采取動態(tài)刷新的條件下,可以長期保存信息。一旦斷電則信息丟失,也屬于易失性存儲器。與靜態(tài)RAM相比,動態(tài)RAM功耗較小,集成度較高,但速度稍慢一些。常用來構成容量較大的存儲器。
20.動態(tài)刷新
??? 在動態(tài)存儲器中,定期對原存信息為1的電容補充電荷,稱為動態(tài)刷新。動態(tài)刷新的方法是:存儲器中各存儲芯片同時按行地讀出重寫。全部刷新一遍所允許的最大時間間隔稱為最大刷新周期,一般為2ms。動態(tài)刷新的安排方式有三種:集中刷新、分散刷新、異步刷新,目前廣泛采用后一種,或是利用DMA方式實現(xiàn),或是設置專門的刷新邏輯,或是將刷新邏輯集成在存儲芯片內部。
21.磁盤存儲器
??? 對磁盤存儲器,要求大家掌握的內容是:磁盤中的信息組織方法、在訪問磁盤時應給出的尋址信息、能結合磁盤調用闡述DMA方式(如二、5所述)。
??? 在軟件組織這一層次,信息是以文件的形式進行組織并存放于磁盤之中,用戶只需按文件名進行存取。在物理層次中,一個文件分成若干個數(shù)據(jù)塊,一個數(shù)據(jù)塊包含若干字節(jié),常見的作法是每個數(shù)據(jù)塊的字節(jié)數(shù)固定(例如512B),稱為定長數(shù)據(jù)塊。相應地,磁盤中的信息分布也分為幾個層次,以硬盤為例:一個硬盤驅動器中有一個盤組,包含若干盤片/記錄面;每個記錄面上分為若干磁道,呈同心圓狀;每個磁道按一定磁道格式劃分為若干扇區(qū),每個扇區(qū)可存放一個數(shù)據(jù)塊;在扇區(qū)內,數(shù)據(jù)按位串行記錄。
??? 相應地,從物理操作層次看,在調用磁盤時驅動程序需向適配卡送出如下一些尋址信息:臺號(驅動器號),圓柱號(磁道號),記錄面號(磁頭號),扇區(qū)號(數(shù)據(jù)塊號)。如果一個文件中的各數(shù)據(jù)塊是順序存放,則尋址信息中還給出一項:交換量。如果文件中的各數(shù)據(jù)塊不是順序存放而是隨機存放,則每次都應給出其扇區(qū)號。
??? 因此磁盤驅動器的工作過程分為幾個階段:①尋道。盤片等速旋轉,磁頭沿徑向移動以尋找(定位)信息存取位置所在磁道。②尋找扇區(qū)。尋道完成后,磁頭不動,盤片旋轉,等待扇區(qū)頭部經過磁頭。③連續(xù)讀/寫。當扇區(qū)頭到經過磁頭時開始連續(xù)讀出或寫入,此時盤片連續(xù)旋轉而磁頭不動,直到需轉入另一圓柱面的磁道時才重新移動磁頭。
22.鍵盤
??? 鍵盤上的鍵被連接成行列矩陣,每個鍵位于某行與某列的交點位置,即該鍵的一端連接到某根行線(i),而另一端連接到某根列線(j)。因此識別按鍵的基本方法是依序掃描,查找按鍵所處行列位置(i,j),稱為掃描碼,再查表將行列位置轉換為該按鍵的鍵碼(一般是ASCII碼)。廣泛使用的是軟件掃描,其中比較簡單、易于理解而又具有實用價值的是軟件逐行掃描法。
簡答題:簡述鍵盤的軟件逐行掃描法
答:如圖(本文略)所示,①當有鍵按下時,鍵盤產生中斷請求,CPU執(zhí)行鍵盤掃描子程序。②CPU通過數(shù)據(jù)線輸出代碼至各行線,從第0行開始,逐行為0,其余各行為1。將列線輸出送CPU進行判斷,判別其中是否有一位為0,哪一位為0。③假定掃描至第i行為0時發(fā)現(xiàn)第j列輸出為0,則按鍵位置為(i,j)。④查表,將行列碼(i,j)轉換為ASCII鍵碼。
23.CRT顯示器
??? 為了掌握顯示器的基本原理,關鍵是理解屏幕顯示與顯示緩存之間的一組對應關系(存儲容量、信息轉換、地址組織、同步控制)。從存儲器角度看,在主存中開辟有顯示輸出緩沖區(qū),在顯卡(適配器)上有相應的顯示緩存(VRAM)。利用屏幕回掃消隱時間,驅動程序將待顯示的信息(字符碼或位象代碼)從主存輸出到顯卡上的緩存。在屏幕正程掃描顯示期間,顯示緩存中的信息(或經信息轉換)送往屏幕顯示。從屏幕顯示角度,分為字符顯示、圖像顯示兩大類。對于字符顯示方式,從顯示緩存中讀出的是字符編碼,需經過字符發(fā)生器轉換為字符點陣代碼,按點陣成象原理在屏幕上形成字符圖形。如果是圖形方式,從顯示緩存中讀出的是位象編碼,例如按光柵掃描順序,每8位像點代碼為一個字節(jié)。
簡答題:若字符顯示規(guī)格為80列×25行,則顯示緩存的基本容量應不小于多少?
答:80×25=2000字節(jié)。
注意,為了獲得豐富的顯示效果,顯示信息中除字符編碼外還有彩色/灰度、顯示屬性等,因此實際的緩存容量要遠大于上述最小值。
簡答題:若圖形顯示規(guī)格為800×600,則顯示緩存的基本容量應不少于多少?
答:(800×600)÷8=60000字節(jié)。
簡答題:字符顯示規(guī)格為80列×25行,若要在第1行第3列顯示一個A,該字符編碼應存放在基本緩存第幾個單元?
答:(1×80)+3=83@
注意,行號與列號都是從0開始。地址組織與掃描順序相應,掃描順序自左向右、自上而下,地址碼自0開始增加。
四、 匯編語言程序設計
??? 學習匯編語言程序設計的目的,一是能讀懂程序,二是編寫程序段。相應地考核題型也就是這兩種,前者稱為分析題,后者納入設計題。按照學時比例,這部分約占總分的五分之一左右。第四章內容雖不是直接考核對象,但它們是完成程序設計題的基礎,大家應當按教材的學習目標進行復習。
??? 由于程序設計部分內容的特點,我們無法像前面那樣復述主要的概念與結論,只能逐個說明各部分的考核內容與要求,在最后給出示范考題供參考。
1.8086/8088的寄存器、存儲器和堆棧
??? 重點是:①理解標志寄存器各狀態(tài)標志位的含意。②掌握堆棧壓入指令PUSH和彈出指令POP的功能,特別是對堆棧指針SP的操作。
2尋址方式
??? 要求掌握六種常用的尋址方式:寄存器尋址方式、立即數(shù)尋址方式、直接尋址方式、寄存器間址方式、變址尋址和基址尋址方式、基址變址尋址方式。主要是通過閱讀程序和編寫程序來掌握這些尋址方式的應用,對存儲器中的操作數(shù)可使用不同的尋址方式進行存取,編程時應根據(jù)需要選擇合適的尋址方式。例如連續(xù)訪問一維數(shù)組中的各元素,可用寄存器間址或變址(基址)尋址方式。
3.8086/8088指令
??? 由于指令條數(shù)較多,不易記憶,造成復習困難。為了使同學們能掌握最常用的指令,為讀懂程序和編寫簡單程序段打下基礎,本文列出一些需熟練掌握的指令(注意,并不是其它指令就不重要了,它們在實際的程序中也要用到)。
(1) 傳送類:數(shù)據(jù)傳送指令MOV、交換指令XCHG、裝入有效地址指令。注意,這三條指令對狀態(tài)標志位無影響。
(2) 算術運算類:加法指令ADD、帶進位加法指令ADC、加1指令INC;減法指令SUB、帶借位減法指令SBB、減1指令DEC、求負數(shù)指令NEG、比較指令CMP;無符號數(shù)乘法指令MUL、無符號數(shù)除法指令DIV。
注意,要掌握加減運算指令對狀態(tài)標志位的影響。
(3) 位操作類:邏輯與指令AND、邏輯或指令OR、邏輯異或指令XOR、邏輯非指令NOT、測試指令TEST;算術左移SAL、算術右移SAR、邏輯左移SHL、邏輯右移SHR、循環(huán)左移ROL、循環(huán)右移ROR、帶進位循環(huán)左移RCL、帶進位循環(huán)右移RCR等。
注意,要掌握邏輯運算指令和測試指令對狀態(tài)標志位的影響。
(4) 標志位操作指令:清除進位標志CLC、進位標志置位STC。
對于上面這些最常用的指令,要掌握它們的格式、功能、以及在程序中的使用。
4.匯編語言中的常用運算符
(1) 算術運算符:+、-、〔? 〕(下標運算)
(2) 數(shù)值返回運算符:SEG、OFFSET、TYPE、SIZE、LENGTH。
(3) 屬性運算符:PTR
5.常用偽指令
(1)? 符號定義偽指令:等值偽指令EQU、等號偽指令“=”。
(2) 數(shù)據(jù)定義偽指令:DB、DW、DD
注意掌握如何使用數(shù)據(jù)定義偽指令來定義變量,以及為變量賦初值的表達式的幾種形式:數(shù)值表達式、?表達式、字符串表達式、帶DUP表達式。
(3) LABEL偽指令@
注意LABEL偽指令與指令或數(shù)據(jù)定義偽指令連用時的使用方法。
(4) 段結構偽指令
要求掌握:段定義偽指令SEGMENT/ENDS、段尋址偽指令ASSUME、END偽指令在程序中的使用;匯編語言源程序的分段結構和段寄存器的裝入。
(5) 過程定義偽指令PROC/ENDP
可結合子程序設計,掌握在同一代碼段中使用過程定義偽指令去定義子程序。
(6) 定位偽指令ORG:在數(shù)據(jù)段中的使用。
6.順序程序設計@
??? 要求能編制順序程序段完成四則運算多項式的計算及指定功能。
7.分支程序設計
??? 要求能使用轉移指令編制具有2~3個分支結構的程序段。
(1) 無條件轉移指令JMP:掌握段內直接尋址轉移。
(2) 條件轉移指令
掌握:簡單條件轉移指令JC、JNC、JE、JNE、JS、JNS,無符號數(shù)條件轉移指令JA、JAE、JB、JBE,帶符號數(shù)條件轉移指令JG、JGE、JL、JLE。
注意區(qū)分無符號數(shù)條件轉移指令與帶符號數(shù)條件轉移指令的使用場合。
8.循環(huán)程序設計
??? 要求能使用循環(huán)控制指令或轉移指令編制簡單的單重循環(huán)程序段,重點是LOOP循環(huán)控制指令的功能和使用。
9.子程序設計
??? 掌握子程序調用指令CALL、子程序返回指令RET的功能與使用,使用寄存器傳遞主、子程序參數(shù)的方法,能編制程序段實現(xiàn)段內的子程序調用與返回。
10.DOS功能子程序調用
??? 要求掌握四種DOS功能調用:帶顯示的鍵盤輸入(1號功能)、字符串輸入(OAH號功能)、單字符顯示(2號功能)、字符串顯示(9號功能)。
11.分析題舉例(閱讀程序段后給出答案,每小題5分)
(1) MOV? AL,0FH
??? MOV? BL,10H
??? CALL? SUB1
??? INC? AL
DEC? BL
SUB1? PROC
??? ADD? AL,BL
??? XCHG? AL,BL
??? RET
SUB1? ENDP
上述程序段運行后,(AL)=11H,(BL)=1EH。
(2) 設(DX)=1234H
??? MOV? CL,8
??? ROR? DX,CL
??? AND? DX,0FFH
??? CMP? DX,12H
上述程序段運行后,(Dx)=12H,ZF=1
12.設計題舉例(每小題5分)
(1) 編寫一程序段,計算x2+y-5多項式的值。
說明:多項式存于AX中,x、y是無符號數(shù)。
? 數(shù)據(jù)說明:x? DB? 0CH
???????????? y? DB? 06H
參考答案:
MOV? AL,x
MUL? x
ADD? AL,y
ADC? AH,0
SUB? AX,5
(2) 編寫一程序段,統(tǒng)計數(shù)據(jù)區(qū)BUF中0的個數(shù),并存入RES單元。數(shù)據(jù)段為:
DATA? SEGMENT
BUF? DB? 0,5,0,3,2
RES? DB? ?
DATA? ENDS
參考答案:MOV? CX,5
MOV? SI,OFFSET? BUF
MOV? BL,0
LOP:MOV? AL,〔SI〕
CMP? AL,0
JNE? NEXT
INC? BL
NEXT:INC? SI
LOOP? LOP
MOV? RES,BL
- MCS-51單片機匯編語言程序設計
- 51單片機匯編語言程序設計的學習課件資料概述 33次下載
- 匯編程序設計的教程課件免費下載 17次下載
- 計算機學習教程之指令系統(tǒng)與匯編語言程序設計課件免費下載 0次下載
- 微機原理--匯編語言程序設計 0次下載
- 匯編語言程序設計 0次下載
- 匯編語言程序設計 0次下載
- 匯編語言程序設計自學教程 40次下載
- 匯編語言程序設計,下載 0次下載
- 匯編語言程序設計PPT
- 微機原理與匯編語言程序設計課件
- 宏匯編語言程序設計(PDF) 0次下載
- 計算機組成原理與匯編語言程序設計 0次下載
- 匯編語言程序設計下載 0次下載
- 匯編語言程序設計pdf 0次下載
- 匯編語言基礎知識:基本概念 1788次閱讀
- 匯編語言結構與8086概述 2523次閱讀
- 匯編語言的變量與編碼是什么 1453次閱讀
- 淺談4位HRRG計算機定義的匯編語言 2698次閱讀
- 計算機的機器語言和匯編語言與高級語言的詳細資料介紹 5610次閱讀
- 單片機 | 基礎匯編語言編程實例 9876次閱讀
- 計算機編程語言的發(fā)展趨勢分析 5150次閱讀
- 單片機匯編語言常見錯誤知識點分析 6449次閱讀
- 高級語言和匯編語言_機器語言的區(qū)別 3w次閱讀
- C語言與匯編語言相互結合的嵌套匯編語言 3419次閱讀
- 跑馬燈實驗用匯編語言和C51語言做出的不同效果 3714次閱讀
- 單片機C語言程序設計:TIMER0與TIMER1控制條形LED 3846次閱讀
- c語言的應用領域有哪些 3.2w次閱讀
- 關于計算機組成原理與單片機原理 3725次閱讀
- 單片機編程之匯編語言基礎-常用指令和程序模式 1.5w次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1490次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 93次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7基于單片機和 SG3525的程控開關電源設計
- 0.23 MB | 3次下載 | 免費
- 8基于單片機的紅外風扇遙控
- 0.23 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多