計算機組成原理實驗指導(dǎo)_第1頁
計算機組成原理實驗指導(dǎo)_第2頁
計算機組成原理實驗指導(dǎo)_第3頁
計算機組成原理實驗指導(dǎo)_第4頁
計算機組成原理實驗指導(dǎo)_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

《計算機組成原理》實驗指導(dǎo)

實驗一監(jiān)控程序與匯編語言程序設(shè)計實驗

教學(xué)機的監(jiān)控程序是,用教學(xué)機的匯編語言實現(xiàn)的,運行在教學(xué)機的硬件系統(tǒng)之上。它的

主要功能是支持把計算機終端或PC機仿真終端接入教學(xué)機系統(tǒng),使用這樣的設(shè)備執(zhí)行輸入

/輸出操作,運行教學(xué)機的有關(guān)程序,以更方便直觀的形式支持教學(xué)機上的各項實驗功能,

提供教學(xué)機匯編語言的可用子程序。

監(jiān)控程序提供類似PC機DOS系統(tǒng)下的Debug程序的功能,支持A、U、G、P、T、R、

D和E共8個監(jiān)控命令。

監(jiān)控命令的格式為:

單字母的命令名后跟回車,或命令名后跟一個地址參數(shù),或寄存器名(編號)參數(shù)。當(dāng)

有些命令運行時需要參數(shù),但命令名后又不跟參數(shù)時,監(jiān)控程序會從內(nèi)存指定單元取一個默

認的地址參數(shù)值,通常為該命令前一次運行后所接收地址。TEC—2機從終端接收地址、指

令,數(shù)值時,均用最多4位的16進制數(shù)輸入與顯示,并且不能(或說不必)用跟字符h加

以標(biāo)志。

⑴單條匯編命令A(yù)

格式:A[adr]

這里的[adr]表示此處的地址參數(shù)adr為任選項(但選擇范圍必須為0800H—0FFFH)。

無此參數(shù)時,系統(tǒng)將取默認值。該規(guī)則下同。

功能:完成單條指令的匯編操作,把產(chǎn)生出來的TEC—2機的執(zhí)行代碼放入對應(yīng)的內(nèi)存

單元中。命令名后的地址是頭一條匯編語句的執(zhí)行碼的內(nèi)存單元地址。每條語句匯編完成之

后,系統(tǒng)將相應(yīng)修改地址值,以便正確處理下條匯編語句。

在應(yīng)該輸入?yún)R編語句時,不給出匯編語句而直接回車,則結(jié)束A命令的運行過程。

若匯編中發(fā)現(xiàn)語法錯誤,用.指明出錯位置后請求重新給出正確語句。

要說明,這里的單條匯編功能不很完善,例如不支持語句標(biāo)號,也不能使用偽指令等。

遇到這些問題,要求使用者直接使用機器碼,并通過E命令將其送入相應(yīng)內(nèi)存單元。

⑵反匯編命令U

格式:U[adr]

功能:每次從指定的(或默認的)地址反匯編15條命令,并將結(jié)果顯示在終端屏幕上。

反匯編完成之后,已將該命令的默認地址修改好。接下來再鍵入不帶參數(shù)的U命令,保證

接著從上一次反匯編的最后一條語句之后繼續(xù)反匯編。

⑶執(zhí)行程序命令G

格式:G[adrJ

功能:從指定的(或默認的)地址連續(xù)運行一個用戶程序。為了使程序執(zhí)行后能返回監(jiān)

控程序,要求每個程序的最后一條指令應(yīng)為RET指令。

(4)單指令執(zhí)行程序命令T和P

格式:P[adr]

Hadr|

功能:從指定地址(或PC中的當(dāng)前地址)開始單條執(zhí)行程序指令。通常情況下,每按

一次T或P將執(zhí)行一條指令。T和P命令的區(qū)別是,T總是執(zhí)行單條指令,但執(zhí)行P命令時,

則把每一個CALL語句連同被調(diào)用的子程序一次執(zhí)行完成。每次執(zhí)行后均顯示所有通用寄

存器及狀態(tài)寄存器的內(nèi)容,并反匯編出下一條將要執(zhí)行的指令。由于P和T命令是通過設(shè)

置斷點來實現(xiàn)的,而在ROM區(qū)不能設(shè)置斷點,故不能月它們來執(zhí)行固化在ROM區(qū)中的監(jiān)

控程序。

⑸顯示/修改寄存器內(nèi)容的命令R

格式:R[reg]

其中reg為寄存器名R0——R15或SP(R4),PC(R5),IP(R6),當(dāng)R命令不帶帶寄

存器名時,顯示全部寄存器(包括SP,PC和IP)及狀態(tài)寄存器的值,并反匯編當(dāng)前PC所

指的一條指令,其中狀態(tài)的顯示格式為:“F=8位二進制數(shù)”,其各位的值分別對應(yīng)于C、Z、

V、S,INTE、P2、Pl、P0的值,當(dāng)R命令帶有寄存器名時,先顯示出該寄存器的值,若

修改打入新值回車,否則只按回車即可。

(6)顯示存儲器內(nèi)容的命令D

格式:D[adr]

功能:從指定(或默認)地址開始顯示內(nèi)存120個存儲字的內(nèi)容。

顯示的格式:最左一列4位的16進制數(shù)是本行中第一個字的地址,接下來的8列是4

位的16進制的8個連續(xù)內(nèi)存字的內(nèi)容,最右一列是每個字節(jié)所對應(yīng)的ASCII字符。當(dāng)其值

不為可顯示字符的ASCII碼俏時,用一個字符標(biāo)記。

連續(xù)的D命令,保證所顯示內(nèi)容前后正確的連續(xù)關(guān)系,即每次執(zhí)行D命令,會將默認

的地址值加上120。TEC—2機通常采用字地址讀寫內(nèi)存。

(7)修改存儲器內(nèi)容命令E

格式:E[adr]

功能:從指定(或默認)地址逐字顯示每個內(nèi)存字的內(nèi)容,并等待用戶打入一個新的值

存回該內(nèi)存單元。若用戶未打入新值就打了空格鍵,則該內(nèi)存單元內(nèi)容保持不變。若在打入

新值后跟空格鍵,則內(nèi)存單元內(nèi)容寫成新值??崭矜I表明要連續(xù)修改一片內(nèi)存區(qū),故接下來

顯示下一個單元的內(nèi)容并等待修改。打回車鍵,則會結(jié)束E命令的執(zhí)行過程,若回車前打

入一個新值,相應(yīng)內(nèi)存單元的內(nèi)容也將被修改v

注:進入監(jiān)控程序的具體操作步驟:

1.準(zhǔn)備一臺串口工作良好的PC機;

2.將TH-union放在實驗臺上,打開實驗箱的蓋子,確定電源處于斷開狀態(tài);

3.將黑色的電源線一端接220V交流電源,另一端插在TH-union實驗箱的電源

插座里;

4.取出通訊線,將通訊線的9芯插頭接在TH-union實驗箱上的串口“COM1”

或“COM2”上,另一端接到PC機的串口上;

5.將TH-union實驗系統(tǒng)左下方的五個黑色的控制機器運行狀態(tài)的開關(guān)置丁正確

的位置,在找個實驗中開關(guān)應(yīng)置為00110(連續(xù)、內(nèi)存讀指令、組合邏輯、聯(lián)

機、16位),控制開關(guān)的功能在開關(guān)上、下方有標(biāo)識:開關(guān)撥向上方表示“1”,

撥向下方表示“0”,“X”表示任意,其他實驗相同;

6.打開電源,船形開關(guān)和5V電源指示燈亮。

7.在PC機上運行PCEC16.EXE文件,根據(jù)連接的PC機的串口設(shè)置所用PC機

的串口為“1”或“2”,其它的設(shè)置一般不用改動,直接回車即可。(具體步驟

附后)

8.按一下“RESET”按鍵,再按一下“START”按鍵,主機上顯示:

1EC-2000CR1MON11OR

Version1.0April2001

ComputerArchitecturLab.,TsinghuaUniversity

ProgrammedbyHeJia

實驗二運算器實驗

一、實驗原理:

運算器是計算機中執(zhí)行各種算術(shù)和邏輯運算操作的部件。運算器的基本操作包括加、減、

乘、除四則運算,與、或、非、異或等邏輯操作,以及移位、比較和傳送等操作。運算器的

組成除了必須的ALU單元外,寄存器和移位器也是必需。寄存器用于提供操作數(shù)和存放運

算結(jié)果,以節(jié)省訪存時間;移位器可實現(xiàn)數(shù)據(jù)的移位功能,以擴展ALU的運算功能和數(shù)據(jù)

傳送的靈活性。美國AMD公司生產(chǎn)的AM290I芯片是典型的運算器芯片。

1、AM2901的結(jié)構(gòu)與組成

AM290I芯片是一個4位的,位片結(jié)構(gòu)的、完整的運算器器件。AM2901由ALU、

輸入多路詵擇器、輸出詵擇門、寄存器組和移位器等器件組成,如圖1-1所示,作為

教學(xué)內(nèi)容的實例具有很好的典型性。

4。輸出Y

31-1AM290I芯片的內(nèi)部組成框圖

2、AM2901各組成部分及其功能

I)ALU為4位算術(shù)邏輯單元,有8種運算功能,由外部送入3位信號15,14,13

的編碼值來確定執(zhí)行哪種功能。

2)存器組

AM290I具有由16個4位寄存器組成的寄存器組,作為通用寄存器組使用。該寄

存器組有兩個4位地址譯碼器A和B,其中A譯碼器只具有讀出數(shù)據(jù)功能,而B譯

碼器具有讀出和寫入兩種功能。也就是說,該寄存器組具有兩個數(shù)據(jù)輸出端口,即A

口和B口,輸出的數(shù)據(jù)分別存入鎖存器A和B;一個數(shù)據(jù)輸入端口,即B口。

3)寄存器

4位,在乘除運算中可用來存放乘數(shù)或商,故稱做乘商寄存器。它本身具有移位功

能,即可接受其本身左移一位或右移一位的值,它還可以接收ALU的輸出值。

4)輸入多路選擇器

AM2901具有兩個輸入多路選擇器R和S,用于為ALU提供兩個操作數(shù)。其中,R

可選擇D數(shù)據(jù)線來的數(shù)據(jù)或A鎖存器的數(shù)據(jù);而S可從A鎖存器、B鎖存器、Q寄

存器3個來源選取數(shù)據(jù)。兩個操作數(shù)的組合由外部送來的3位控制信號12、II、10

的編碼確定.

5)移位器

4位,用于對ALU的輸出實現(xiàn)直送、左移或右移。

6)輸出選擇門

用于確定AM2901輸出數(shù)據(jù)Y的來源。輸出數(shù)據(jù)Y有兩個來源:一個是ALU的運

算結(jié)果F,另一個是直接來自All。輸出數(shù)據(jù)Y的選擇,以及ALU的運算結(jié)果F如

何傳送給B輸入口或Q寄存器,是由外部送來的3位控制信號18、17、16的編碼值

確定的。

3、為了控制AM2901運算器按我們的意圖完成預(yù)期的運算操作功能,就必須向其提供相

應(yīng)的控制信號,包括:用3組各3位的編碼,分別用于選擇ALU的運算功能,輸入

數(shù)據(jù),結(jié)果處置方案,具體規(guī)定如表1-1、表1-2、表1-3所示。

表1-1選擇8種運算表1-2選擇ALU的8種輸入數(shù)據(jù)組合

151413運算類型121110R來源S來源

000R+S000AQ

001S-R001AB

010R-S0100Q

011RVS0110B

100_RAS1000A

101"RASI01DA

110RVS110DQ

111RVS111D0

注:D表示外部數(shù)據(jù)

表1-3選擇運算器的8種結(jié)果的處置方案

181716寄存器組Q寄存器Y輸出

000F-QF

001F

010F-BA

011F-BF

100F/2?BQ/2?Qr

101F/2-BF

1102F-*B2Q-*QF

1112F-BF

二、實驗步驟

運算器部件的實驗,要在教學(xué)計算機主板上進行,既可以在脫機方式下完成,也可以在

聯(lián)機方式下完成。

脫機方式是指使運算器部件完全脫離與計算機主機其他部件正常的連接關(guān)系,在完全孤

立出來的運算器上進行的教學(xué)實驗。此時,只能通過數(shù)據(jù)開關(guān)提供參加運算的數(shù)據(jù),通過微

型開關(guān)提供操作運算器完成運算所必需的控制信號,通過信號指示燈觀察運算結(jié)果,操作筒

單,實驗結(jié)果清晰易理解。

聯(lián)機方式是指在運算器部件與計算機主機保持連接關(guān)系,教學(xué)計算機可以正常執(zhí)行指令

的情況下進行的以運算器為重點的教學(xué)實驗。此時,可以通過指令提供參加運算的數(shù)據(jù),通

過控制器提供操作運算器完成運算所必需的控制信號,通過信號指示燈或者通過運行監(jiān)控程

序觀察運算結(jié)果,操作略顯復(fù)雜。

1、脫機實驗

⑴打開實驗箱電源開關(guān)。

(2)將五個控制開關(guān)分別置為10000

注:五個控制開關(guān)從左至右分別是:

Step/CntnuHndlns/MEMIns^Comloq/Microp、LinkMachi/LeaveMachinex8Bit/16Bit

即:單步/連續(xù)、手動執(zhí)行/程序存儲、組合邏輯/微程序控制、聯(lián)機/脫機、8位八6位

1:代表上檔功能,0:代表下檔功能

(3)將AAAA送入R0

①微型開關(guān)分別置為QJJ.如jJJ.皿L000000000000

注:微型開關(guān)從左至右分別對應(yīng)的控制信號是:

18171615141312II10SSTA端口地址B端口地址SSHSCI

其中:SST為狀態(tài)寄存器接收,SSH為最底位進位,SCI為移位控制

②設(shè)置數(shù)據(jù)開關(guān)為AAAA(16進制)

③按START按鈕

(4)將5555送入R1

?微型開關(guān)分別置為o_LL典LLL皿1000000010000

②設(shè)置數(shù)據(jù)開關(guān)為5555(16進制)

③按START按鈕

(5)R0+R1-*RI

微型開關(guān)分別置為0_1_100000J.00J.000000010000

2、聯(lián)機實驗

⑴將通訊線一端接實驗箱上,另一端插頭后接PC機任意COM口"

注:這里PC機只是實驗箱的輸入輸出設(shè)備。

⑵將五個控制開關(guān)分別置為00010。

(3)打開計算機,運行PCEC程序,選擇所接COMU后按回車。按F10進入主菜單,

選擇0,分別按實驗箱上的RESET、START按鈕,進入監(jiān)控程序。

(4)屏幕出現(xiàn)提示符>,即可用A命令輸入程序

>A20(X)

MOVR0,AAAA

MOVRI,5555

ADDRI,R0

RET

(5)用T命令觀察運行結(jié)果。

三、實驗要求

1、認真寫出預(yù)習(xí)報告,包括實驗用的全部數(shù)據(jù),實驗操作步驟等。

2、實驗之后寫出實驗報告,包括實驗過程中遇到的問題,解決方法,實驗后的心得體會

及對該次實驗的建議與意見。

實驗三內(nèi)存儲器部件實驗

實驗?zāi)康模?/p>

通過看懂教學(xué)計算機中已經(jīng)使用的幾個存儲器芯片的邏輯連接關(guān)系和用于完成存儲器

容量擴展的幾個存儲器芯片的布線安排,在教學(xué)計算機上設(shè)計、實現(xiàn)并調(diào)試出存儲器容量擴

展的實驗內(nèi)容。其最終要達到的目的是:

1.深入理解計算機內(nèi)存儲器的功能、組成知識;

2.深入地學(xué)懂靜態(tài)存儲器芯片的讀寫原理和用他們組成教學(xué)計算機存儲器系統(tǒng)的方

法(即字、位擴展技術(shù)),控制其運行的方式:

思考并對比靜態(tài)和動態(tài)存儲器芯片在特性和使月場合等方面的同異之處。

玄驗說明:

教學(xué)計算機存儲器系統(tǒng)由ROM和RAM兩個存儲區(qū)組成,分別由EPROM芯片(或

EEPROM芯片)和RAM芯片組成。TH-union教學(xué)計算機中還安排了另幾個存儲器器件插

座,可以插上相應(yīng)存儲器芯片以完成存儲器容量擴展的教學(xué)實驗,為此必須比較清楚地了解:

1.TH-union教學(xué)機的存儲器系統(tǒng)的總體組成及其連接關(guān)系;

2.TH-union教學(xué)機的有關(guān)存儲器芯片、I/O接口芯片的片選信號控制和讀寫命令的給

出和具體使用方法;

3.RAM和EPROM、EEPROM存儲器芯片在讀寫控制、寫入時間等方面的同異之處,

并正確建立連線關(guān)系和在程序中完成正確的讀寫過程;

4.如何在TH-union教學(xué)機中使用擴展的存儲器空間并檢查其運行的正確性.

實驗內(nèi)容:

I.要完成存儲器容量擴展的教學(xué)實驗,需為擴展存儲器選擇一個地址,并注意讀寫和

0E等控制信號的正確狀態(tài);

2.用監(jiān)控程序的D、E命令對存儲器進行讀寫,比較RAM(6116)、EEPROMQ8系歹I」

芯片)、EPROMQ7系列芯片)在讀寫上的異同;

3.用監(jiān)控程序的A命令編寫一段程序,對RAM(6116)進行讀寫,用D命令杳看結(jié)果

是否正確;

4.用監(jiān)控程序的A命令編寫一段程序,對擴展存儲器EEPROM(28系列芯片)進行讀

寫,用D命令查看結(jié)果是否正確;如不正確,分析原因,改寫程序,重新運行。

實驗要求:

I.實驗之前,應(yīng)認真預(yù)先準(zhǔn)備,寫出實驗步驟和具體設(shè)計內(nèi)容,否則實驗效率會特別

低,一次實驗時間根本無法完成實驗任務(wù),即使基本做對了,也很難說學(xué)懂了些什

么重要教學(xué)內(nèi)容;

2.實驗過程中,應(yīng)認真進行實驗操作,既不要因為粗心造成短路等事故而損壞設(shè)備,

又要仔細思考實驗有關(guān)內(nèi)容,提高學(xué)習(xí)的主動性和創(chuàng)造性,把自己想不太明白的問

題通過實驗理解清楚,爭取最好的實驗效果,刀求達到教學(xué)實驗的主要目的;

3.實驗之后,應(yīng)認真思考總結(jié),寫出實驗報告,包括實驗步驟和具體實驗結(jié)果,遇到

主要問題和分析與解決問題的思路。實驗報告中,還應(yīng)寫出自己的學(xué)習(xí)心得和切身

體會,也可以對教學(xué)實驗提出新的建議等。實驗報告要交給教師評閱并給出實驗成

績。

實驗步驟:

1.檢查FPGA下方的插針要按下列要求短接:標(biāo)有“/MWR”“RD”的插針左邊兩

個短接,標(biāo)有“/MRD”“GND”的插針右邊兩個短接,標(biāo)有ROMLCS和RAMLCS

的插針短接。

2.RAM(6116)支持即時讀寫,可直接用A、E命令向擴展的存儲器輸入程序或改變內(nèi)

存單元的值。RAM中的內(nèi)容在斷電后會消失,重新啟動實驗機后會發(fā)現(xiàn)內(nèi)存單元

的值發(fā)生了改變C

1)用E命令改變內(nèi)存單元的值并用D命令觀察結(jié)果。

<1>在命令行提示符狀態(tài)下輸入:

E2020

屏幕將顯示:2020內(nèi)存單元原值:

按如下形式鍵入:

2020原值:2222(空格)原值:3333(空格)原值:4444(空格)原

值:5555

<2>在命令行提示符狀態(tài)下輸入:

D2020

屏幕將顯示從2020內(nèi)存單元開始的情,其中2020H-2023H的信為:

2222333344445555

<3>斷電后重新啟動教學(xué)實驗機,用D命令觀察內(nèi)存單元2020-2023的值。

會發(fā)現(xiàn)原來置入到這幾個內(nèi)存單元的值已經(jīng)改變,用戶在使用RAM時,

必須每次斷電重啟后都要重新輸入程序或修改內(nèi)存單元的值。

2)用A命令輸入一段程序,執(zhí)行并觀察結(jié)果。

<1>在命令行提示符狀態(tài)下輸入:

A2000

屏幕將顯示:2000:

按如下形式鍵入:

2000:MVRDRO,AAAA

2002:MVRDR1,5555

2004:ANDRO,RI

2005:RET

2006

<2>在命令行提示符狀態(tài)下輸入:

T2000

R0的值變?yōu)锳AAAH,其余寄存器的值不變。

T

R1的值變?yōu)?555H,其余寄存器的值不變。

T

R0的值變?yōu)?000H,其余寄存器的值不變。

<3>在命令行提示符狀態(tài)下輸入:

G20D0

運行輸入的程序。

<4>在命令行提示符狀態(tài)下輸入:

R

屏幕顯示:

RO=OODORl=5555R2=.......

RAM芯片可直接用A命令鍵入程序,但斷電會丟失,要再次調(diào)試該程序必須重新

輸入,對那些較長的程序或經(jīng)常用到的程序可通過交叉匯編,在上位機生成代碼文

件,每次加電啟動后不用重新輸入,只需通過PCE16將代碼文件傳送給下位機即

可。

3.將擴展的ROM芯片(27或28系列或28的替代產(chǎn)品58C65芯片)插入標(biāo)有

“EXTROMH”和“EXTROML”的自鎖緊插座,要注意芯片插入的方向,帶有半

圓形缺口的一方朝左插入。如果芯片插入方向不對,會導(dǎo)致芯片燒毀。然后鎖緊插

座。

4.將擴展芯片右邊的插針按下列方式短接:將EXTROML芯片右上方的標(biāo)有“WE”

和“ALL”的插針下面兩個短接,將它右邊標(biāo)有“TEC”"/CS”“FPGA”的三

個插針左邊兩個短接,標(biāo)有XTROMLCS的插針短接,標(biāo)有“TEC”“OE”“GND”

“FPGA”的四個插針中間的兩個豎著短接。

5.在第四步中將標(biāo)有“TEC”"/CS”“FPGA”的三個插針左邊兩個短接表示擴展

的ROM的內(nèi)存地址是從4000H開始,可用空間是4000H~5FFFH,用戶可在這個

范圍內(nèi)輸入程序或改變內(nèi)存單元的值。也可以將這個插針斷開,將標(biāo)有7cs的圓孔

針與標(biāo)有MEM/CS的一排圓孔針中的任意一個用導(dǎo)線相連;注意連接的地址范圍

是多少,用戶可用的地址空間是多少。

6.將標(biāo)有“DataBus15-8”和“DataBus7-0”的數(shù)據(jù)總線的指示燈下方的插針短接。

7.將標(biāo)有“AdressBus15-8”和“AdressBus7-0”的地址總線的指示燈下方的插針短

接。

下面以AT28c64B(或其他替代產(chǎn)品58c65芯片)為例,進行擴展EEPROM實驗。

8.AT28c64B的讀操作和一般的RAM一樣,而其寫操作,需要一定的時間,大約為

1毫秒。因此,需要編寫一延遲子程序,在對EEPROM進行寫操作時,調(diào)用該子

程序,以完成正詢的讀寫。

1)用E命令改變內(nèi)存單元的值并用D命令觀察結(jié)果。

<1>在命令行提示符狀態(tài)下輸入:

E5000

屏幕將顯示:5000內(nèi)存單元原值:

按如下形式鍵入:

5000原值:2424(按空格)原值:3636(按空格)原值:4848(按空格)

原值:5050

<2>在命令行提示符狀態(tài)下輸入:

D5000

屏幕將顯示5OOOH-5O7FH內(nèi)存單元的值,從5000開始的連續(xù)四個內(nèi)

存單元的值依次為2424363648485050.

<3>斷電后重新啟動,用D命令察看內(nèi)存單元5000?5003的值,會發(fā)現(xiàn)這兒

個單元的值沒有發(fā)生改變,說明EEPROM的內(nèi)容斷電后可保存.

2)AT28C64B存儲器不能直接用A命令輸入程序,單字節(jié)的指令可能會寫進

去,雙字節(jié)指令的低位會出錯(建議試一試),可將編寫好的程序用編程器寫

入片內(nèi)也可將程序放到RAM(6116)中、調(diào)用延時子程序,訪問AT28C64B中

的內(nèi)存地址.

下面給出的程序,在5OOOH~5OOFH單元中依次寫入數(shù)據(jù)0000H.0001H、…

000FH。

從2000H單元開始輸入主程序:

(2000)MVRDR0,0000

MVRDR2,0010;R2記錄循環(huán)次數(shù)

MVRDR3,5000;R3的內(nèi)容位16位內(nèi)存地址

(2006)STRR[R31,R0;將R()寄存器的內(nèi)容放到R3給出的內(nèi)存單元中

CALA2200;調(diào)用程序地址為2200的延時子程序

INCR0;R0加1

INCR3;R3加1

DECR2;R2減I

JRNZ2006;R2不為0跳轉(zhuǎn)到2006H

RET

從2200H單元開始輸入延時子程序:

(2200)PUSHR3

MVRDR3,FFFF

(2203)DECR3

JRNZ2203

POPR3

RET

運行主程序,在命令提示符下輸入:G2000

程序執(zhí)行結(jié)束后,在命令提示符下輸入:D500()

可看到從5000H開始的內(nèi)存單元的俏變?yōu)?/p>

5(X)():000()()001000200030004()0050006()007

5008:00080009000A000B000C000D000E000F。

思考:1)為何能用E命令直接寫AT28C64B的存儲單元,而A命令則有

時不正確?

2)修改延時子程序,將其延時改短,可將延時子程序中R3的內(nèi)

容賦成00FF或0FFF等,再看運行結(jié)果。

注意:實驗完成后,取下擴展芯片,斷開地址和數(shù)據(jù)總線的短路子,將

FPGA下方的標(biāo)有“/MWR”“RD”的插針改成右邊兩個短接。

四、實驗要求

1、認真預(yù)習(xí)實驗,熟悉主存儲器的讀寫特性及對內(nèi)存有關(guān)信號的推斷。

2、實驗后獨立填寫實驗報告。

實驗四微程序控制器部件實驗

控制器部件是計算機的五大功能部件之一,其作用是向整機每個部件(包括控制器本身)

提供協(xié)同運行的需要的控制信號.因而,控制器在計算機組成原理過程中是非常重要的內(nèi)容,

但學(xué)生在學(xué)習(xí)過程中,對其工作原理卻常常感到難以理解.教師在講述這一部分內(nèi)容時也常

常覺得難以敘述清楚,通過本實驗,輕而易舉的解決了這一問題。

一、實驗原理

控制器的設(shè)計實現(xiàn)有兩種方式:一種是微程序,另一種是組合邏輯線路,微程序控制器的工

作原理,是用一條微指令的控制命令字段來提供一條機器指令的一個執(zhí)行步驟所需要的控制

信號,用這條微指令的下地址字段,指明下一條微指令在控制器存儲器中的地址,以便從控制

器存儲器中讀出下條微指令.換句話說,每條微指令交應(yīng)條機器指令的個執(zhí)行步驟。

1、微指令格式

微指令由下地址字段及控制字段組成.TH—UNION教學(xué)機的微指令格式如下:

其中高八位為下地址字段.其余各位為控制字段.

1)址形成邏輯

TH-UNION教學(xué)機利用器件形成下一條微指令在控制器存儲器的地址.

下地址的形成由下地址字段及控制字段中的CI3-SCC控制.當(dāng)為順序執(zhí)行時,下地址字

段不起作用.下地址為當(dāng)前微指令地址加1;當(dāng)為轉(zhuǎn)移指令913—0=0011)時,由控制信號SCC

提供轉(zhuǎn)移條件,由卜地址字段提供轉(zhuǎn)移地址.

2)控制字段

控制字段用以向各部件發(fā)送控制信號,使各部件能協(xié)調(diào)工作。

控制字段中各控制信號有如下幾類:

①對運算器部件為了完成數(shù)據(jù)運算和傳送功能,微指令向其提供了24位的控制信號,

包括:4位的A、BII地址,用于選擇讀寫的通用積存器3組3位的控制碼18—16、

15-13.12-16,在于選擇結(jié)果處置方案、運算功能、數(shù)據(jù)來源。

3組共7位控制信號控制配合的兩片GAL20V8

3位SST,用于控制記憶的狀態(tài)標(biāo)志位

2位SCI,用于控制產(chǎn)生運算器低位的進位輸入信號

2位SSH,用于控制產(chǎn)生運算器最高,最地位(和積存器)移位輸入信號

②對內(nèi)存儲器I/O和接口部件,控制器主要向它們禿供讀寫操作用到的全部控制信號,

共3位,即MRW

③對CPU內(nèi)部總線數(shù)據(jù)來源的控制,主要通過3位編碼標(biāo)記為DCD,來選擇把哪一

組數(shù)據(jù)發(fā)送到內(nèi)部總線(1B)上。

④對幾個特定的積存器接受輸入的控制,也通過了編碼C標(biāo)記為D(2),用來選擇允

許哪個積存器接受送個它的一組數(shù)據(jù)。

2、實驗步驟

1)接通教學(xué)機電源

2)將教學(xué)機左下方的5個控制開關(guān)置為11010(單步、手動、置指令、微指令、聯(lián)機、

16位)

3)按一下“RESET”按鍵

4)通過16的數(shù)據(jù)開關(guān)置指令機器碼

如置為0000000000000001(表示指令A(yù)DDROR1)

5)按RESET鍵,指示燈亮(只要選擇微程序,該燈在指令執(zhí)行過程中一直亮),其它燈

全滅。

6)按RESET鍵,通過觀察指示燈,得到該指令對應(yīng)的第一條微指令。

0000000011100030010000010011000101010101000000010H10000此指令的

功能為:0->PC、DI#=O

7)按RESET鍵,通過觀察指示燈,得到該指令對應(yīng)的第二條微指令:

00000000111000000100001100100000010101010000000100110110功能:

POAR、PC+1->PC

8)按RESET鍵,通過觀察指示燈,得到該指令對應(yīng)的第三條微指令:

0000()00()111000000001()00()000100000101()1010000000100110110功能:

MEM->IRo

7)和8)兩步驟合起來即為通常所說的取指,它是將要執(zhí)行的機器指令從內(nèi)存取出送

到指令寄存器中。

9)按RESET鍵,通過觀察指示燈,得到該指令對應(yīng)的第四條微指令:

(XXX)010000100(X)0010000000001000001010101000()(X)()l00110110功能:

執(zhí)行非操作功能,相當(dāng)于指令譯碼,由下地址字段給出執(zhí)行ADD指令的微指令的轉(zhuǎn)

移地址00000100。

10)按RESET鍵,通過觀察指示燈,得到該指令對應(yīng)的第五條微指令:

0011000000110000010000011011100000000001D001000000000000功能:

執(zhí)行R0+RI->R0

四、實驗要求

1、認真寫出預(yù)習(xí)報告與實驗報告,未寫出預(yù)習(xí)報告者,不得開始實驗。

2、實驗報告中要認真總結(jié)分析實驗中的各種現(xiàn)象,特別要把單微指令方式下的調(diào)試過

程寫清楚。

實驗五串行接口輸入輸出實驗

實驗?zāi)康模?/p>

學(xué)習(xí)串行口的正確設(shè)置與使用。

實驗說明:

1.TH-union配置了兩個串行接口C0M1和COM2,其中COM1口是系統(tǒng)默認的串行

口,加電復(fù)位后,監(jiān)控程序?qū)ζ溥M行初始化,并通過該口與PC機或終端相連;而

COM2O,留給用戶擴展用。

2.查閱有關(guān)書籍,了解串行通信接口芯片8251的工作原理;了解8251復(fù)位、初始化、

數(shù)據(jù)傳輸?shù)倪^程c提醒注意的是,每次對8251復(fù)位后(即按1次“RESET”按鍵),

都需要對其進行初始化,然后再進行正常的數(shù)據(jù)傳輸:復(fù)位后,只能對其進行1次

初始化,多次初始化將導(dǎo)致串口工作不正常。

3.在使用COM2口時,需要將兩片8251芯片之間的插針用短路子短接(出廠時已短

接),這樣才能為COM2正常工作提供所需的控制信號和數(shù)據(jù);另外,還需要為其

分配數(shù)據(jù)口地址和控制地址。本教學(xué)機,已將COM2口的C/(D非)與地址總線

的最低位ABO相連,而其片選信號未連,只引出1個插孔,實驗時,應(yīng)將該插孔與

標(biāo)有“I/O/CS”的7個插孔中的1個相連。

實驗內(nèi)容:

I.為擴展I/O口選擇一個地址,即將與COM2口相連的8251的/CS與標(biāo)有I/O/CS的

一排插孔中的一個相連。

2.將COM2口與終端或另一臺運行有PCECI6的PC機的串口相連。

3.用監(jiān)控程序的A命令,編寫一段小程序,先初始化COM2口,在向COM2口發(fā)送

一些字符,也可從COM2口接收一些字符,或?qū)崿F(xiàn)兩個串口的通信。

實驗要求:

1.應(yīng)了解監(jiān)控程序的A命令只支持基本指令,擴展指令應(yīng)用E命令將指令代偃寫入

到相應(yīng)的存儲單元中。

實驗步驟:

I.為擴展I/O口選擇一個地址,將與COM2口相連的8251的/CS與標(biāo)有I/O/CS的插

孔中地址為A0?AF的一個相連;注意,將兩月8251芯片之間的插針短接(出廠時

以按默認方式短接)。

2.將教學(xué)機COMI口與一臺PC機相連,在PC機上啟動PCEC16.EXE。

3.斷開C0M1與PC機的串口線,將其連接到另一臺PC機或同一臺PC機的另一個

串口,同樣啟動PCECI6.EXE。

4.用另一根串口線將COM2口和第一臺PC機或同一臺PC機的另一個串口相連。

5.在與COM1相連的PCEC上輸入程序,這時主PCEC可以輸入輸出,和COM2連

接的時從PCEC只作輸出。

6.用A、E命令編程進行COM2口的操作。(標(biāo)有"的語句要用E命令直接寫入指令編

碼)

1)程序1:COM2口初始化

在命令行提示符狀態(tài)下輸入:

A2000

從20(X)H單元開始輸入下面的程序:

2000:MVRDRO,004E;給R0賦值004E

2(X)2:OUTAl;將R0的值輸出到COM2口的8251中的寄存器中

2003:MVRDR0,0037;給R0賦值0037

2005:OUTAl;將R0的值輸出到COM2口的8251中的寄存器中

2(X)6:RET

在命令行提示符狀態(tài)下輸入G2000運行初始化程序,完成對COM2口的初始

化。每次按“RESET”按鍵后,在對?COM2進行讀寫操作之前,都應(yīng)運行該

程序。需要注意的是,按一次“RESET”按鍵后,只能對COM2口進行一次

初始化操作c

2)程序2:從COM2口輸入數(shù)據(jù),然后再與COM1口相連的PC機上顯示出數(shù)據(jù)。

在命令行提示符狀態(tài)下輸入:

A2040

從2040H單元開始輸入下面的程序:

2040:INAl;判鍵盤上是否按了一個鍵

2041:SHRR0:即串行口是否有了輸入的字符

2042:SHRR0

2043:JRNC2040;沒有輸入則循環(huán)測試

2044:INA0;從COM2口讀入字符到R0

2045:OUT80;將該字符從COM1口輸出

2046:RET

2047:

運行該程序,在命令行提示符狀態(tài)下輸入:

G2040

光標(biāo)閃爍等待輸入,從弓COM2口相連的PC機鍵盤輸入字符,則在與COM1

口相連的PC機的屏幕上回顯。

3)程序3:從COM1口接收數(shù)據(jù),發(fā)送到與COM2口相連的PC機上回顯。

在命令行提示符狀態(tài)下輸入:

A2060

從2060H單元開始輸入下面的程序:

(2060)IN81;判鍵盤上是否按了一個鍵

2061:SHRR0;即串行口是否有了輸入的字符

2062:SHRRO

2063:JRNC2060;沒有,則循環(huán)等待

2064:IN80;接收字符

2065:OUTAO將從鍵盤輸入的字符輸出到另一串I」

2066:RET

2067:

運行該程序,在命令行提示符狀態(tài)下輸入:

G2060

光標(biāo)閃爍等待用戶輸入,從鍵盤輸入6,可在另一PC機的屏幕上回顯出6。

擴展實驗也可按另外一種方式完成,操作步驟如下:

I.為力,展I/O口選擇一個地址:將與COM2LI相連的82M的/C5與標(biāo)有I/O/CS

的插孔中地址為A0?AF的一個相連;注意,將兩片8251芯片之間的插針短接

(出廠時以按默認方式短接)。

2.將一臺教學(xué)機COM1口與一臺PC機相連,在PC機上啟動PCEC16.EXE。

3.將另一臺教學(xué)機COM1口與另一臺PC機相連,同樣啟動PCEC16.EXE。

4.用一根串口線將第一臺的教學(xué)機的COM2口和另一臺教學(xué)機的COM2口相連。

5.在兩臺PC機對應(yīng)的PCEC上分別輸入以下程序:

從2000H單元開始輸入下面的程序:

2000:MVRDR0,004E;給R0賦值004E

2(X)2:OUTAl;將R0的值輸出到COM2口的8251中的寄存器中

2003:MVRDRO,0037;給R0賦值0037

2(X)5:OUTAl;將R0的值輸出到COM2口的8251中的寄存器中

2006:IN81;檢查本機鍵盤上是否按了一個鍵

2(X)7:SHRRO;即串行口是否有了輸入的字符

2008:SHRRO

2009:JRNC200D:沒有,則轉(zhuǎn)去檢查擴展接口的健盤有沒有輸入

200A:IN80;若本機鍵盤有輸入則接收該字符

200B:OUT80;將鍵盤輸入的字符在本機輸出

200C:OUTA0;將從鍵盤輸入的字符輸出經(jīng)擴展串口送到另一臺教學(xué)機輸出

200D:IN91:檢杳擴展串口相連的另一臺教學(xué)機對應(yīng)的PC鍵盤上是否按鍵

2(X)E:SHRR0;即串行口是否有了輸入的字符

200F:SHRR0

2010:JRNC2006:沒有,則轉(zhuǎn)去判本機鍵盤是否有輸入

2011:INAO;若有,則接收

2012:OUT80;在本機輸出

2013:JR2000

2014:RET

該程序完成兩臺教學(xué)計算機的第二個串行接口擴展操作并完成該串口初始化,

啟動兩臺教學(xué)機,都運行這個程序,則兩個鍵盤的愉入同時顯示在兩個屏幕上,

實現(xiàn)的是雙機的雙向通訊功能。

每臺教學(xué)機都只能檢查與操作自己的串行口,管不了另外那臺教學(xué)機。

實驗六多級嵌套的中斷實驗

1、實驗原理

1.1中斷電路

TH-union教學(xué)機中斷電路的總體組成,如下圖所示:

74LS14874LS27374LS85

圖中1RQO—IRQ2是3個中斷請求源信號,分別對應(yīng)實驗箱上的三個中斷請求按鈕,實

驗時,按卜某個按鈕表不發(fā)出相應(yīng)的中斷請求信號。這三級中斷的優(yōu)先次序從低到高為

IRQ0到IRQ2。

1.2中斷處理在教學(xué)機中的具體實現(xiàn)

教學(xué)機的中斷線路主要包括2片GAL、3個無鎖按鍵、2片74LS374和若干插針。下

面分別對這幾部分進行簡要介紹。

(1)3個無鎖按鍵,提供中斷請求的源信號

教學(xué)機支持3級中斷發(fā),這3個無鎖按鍵作為3個中斷源,從右到左依次為一、二、三

級中斷,對應(yīng)的中斷優(yōu)先級編碼Pl、P0依次為01、10、11,優(yōu)先級也依次升高。這3個無

鎖按鍵的引腳作為INTSGAL和INTPGAL的輸入。

(2)INTSGAL,接受并記憶通過無鎖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論