計(jì)算機(jī)組成原理實(shí)驗(yàn)_第1頁(yè)
計(jì)算機(jī)組成原理實(shí)驗(yàn)_第2頁(yè)
計(jì)算機(jī)組成原理實(shí)驗(yàn)_第3頁(yè)
計(jì)算機(jī)組成原理實(shí)驗(yàn)_第4頁(yè)
計(jì)算機(jī)組成原理實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩70頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

TEC-XP+計(jì)算機(jī)組成原理與系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)系統(tǒng)教師實(shí)驗(yàn)指導(dǎo)書(shū)

清華大學(xué)科教儀器廠

清華大學(xué)計(jì)算機(jī)系

2007年4月

I

目錄

第一章TEC-XP+計(jì)算機(jī)組成原理與系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)系統(tǒng)概述---------1

1.1TEC-XP+教學(xué)計(jì)算機(jī)系統(tǒng)概述

----------------------------------------------------1

1.1TEOXP+教學(xué)計(jì)算機(jī)系統(tǒng)系列和總體組成概述----------------------------1

1.2TEC-XP+教學(xué)計(jì)算機(jī)的指令系統(tǒng)設(shè)計(jì)------------------------------------2

1.3TEC-XP+教學(xué)計(jì)算機(jī)的結(jié)構(gòu)和組成設(shè)計(jì)--3

1.4教學(xué)計(jì)算機(jī)的硬件實(shí)現(xiàn)技術(shù)---------------------------------------------3

1.5軟件模擬實(shí)現(xiàn)的教學(xué)計(jì)算機(jī)系統(tǒng)一一5

1.6教學(xué)計(jì)算機(jī)在教學(xué)過(guò)程中的作用-----------------------------------------6

1.7基本實(shí)驗(yàn)項(xiàng)目設(shè)置

---------------------------------------------------------------------------------7

1.8其他實(shí)驗(yàn)項(xiàng)目

-----8

第二章實(shí)驗(yàn)指導(dǎo)--------------------------------------------------------10

2.1基礎(chǔ)匯編語(yǔ)言程序設(shè)計(jì)

--------------------------------------------------------10

2.2脫機(jī)運(yùn)算器實(shí)驗(yàn)

------------------------------------------------------------------22

2.3組合邏輯控制器部件教學(xué)實(shí)驗(yàn)-------------24

2.4存儲(chǔ)器部件教學(xué)實(shí)驗(yàn)

35

2.5I/O口擴(kuò)展實(shí)驗(yàn)

39

2.6中斷實(shí)驗(yàn)

42

2.7微程序控制器部件教學(xué)實(shí)驗(yàn)-------------------------------------------------49

2.7.1技術(shù)資料匯總

------------------------------------------------------------------49

2.7.2微程序控制器實(shí)驗(yàn)

-----------------------------------------------------------56

2.8BASIC語(yǔ)言程序設(shè)計(jì)

----------------------------------------------------------67

2.9FPGA芯片實(shí)現(xiàn)非流水線的CPU系統(tǒng)-----------------------------------71

1

第一章TEC-XP+計(jì)算機(jī)組成原理與系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)系統(tǒng)概述

1.TEC-XP+教學(xué)計(jì)算機(jī)系統(tǒng)概述

1.1TEC-XP+教學(xué)計(jì)算機(jī)系統(tǒng)系列和總體組成概述

TEC-XP+是由清華大學(xué)計(jì)算機(jī)系和清華大學(xué)科教儀器廠聯(lián)合研制并通過(guò)了教育部主持的成

果鑒定的適用于計(jì)算機(jī)組成原理與系統(tǒng)結(jié)構(gòu)的實(shí)驗(yàn)系統(tǒng),主要用于計(jì)算機(jī)組成原理和計(jì)算機(jī)

系統(tǒng)結(jié)構(gòu)等課程的硬件教學(xué)實(shí)驗(yàn),同時(shí)還支持監(jiān)控程序、匯編語(yǔ)言程序設(shè)計(jì)、BASIC高級(jí)語(yǔ)

言程序設(shè)計(jì)等軟件方面的教學(xué)實(shí)驗(yàn)。它的功能設(shè)計(jì)和實(shí)現(xiàn)技術(shù),都緊緊地圍繞著對(duì)課程教學(xué)

內(nèi)容的覆蓋程度和所能完成的教學(xué)實(shí)驗(yàn)項(xiàng)目的質(zhì)量與水平來(lái)進(jìn)行安排。其突出特點(diǎn)有二,一

是硬、軟件基本配置比較完整,能覆蓋相關(guān)課程主要教學(xué)內(nèi)容,支持的教學(xué)實(shí)驗(yàn)項(xiàng)目多且水

平高,文字與圖紙資料相對(duì)齊全。二是既有用不同集成度的半導(dǎo)體器件實(shí)現(xiàn)的真實(shí)“硬件”

計(jì)算機(jī)系統(tǒng),同時(shí)還有在PC計(jì)算機(jī)上用軟件實(shí)現(xiàn)的功能完全相同的教學(xué)計(jì)算機(jī)的“軟件”

模擬系統(tǒng),其組成和實(shí)現(xiàn)的功能如下圖所示。

軟件:解釋BASIC語(yǔ)言匯編語(yǔ)言支持

監(jiān)控程序

硬件:運(yùn)算器,控制器(多種實(shí)現(xiàn):(微程序或硬布線控制器,中小規(guī)模器件或FPGA器件

實(shí)現(xiàn))主存儲(chǔ)器,總線,接口輸入設(shè)備,輸出設(shè)備硬件與電路:邏輯器件和設(shè)備

圖1.1硬件實(shí)現(xiàn)的實(shí)際計(jì)算機(jī)系統(tǒng)圖L2軟件實(shí)現(xiàn)的模擬計(jì)算機(jī)系統(tǒng)

從圖1.1可以看到,該計(jì)算機(jī)硬件系統(tǒng)組成中,功能部件是完整齊備的,運(yùn)算器、控制器、

存儲(chǔ)器、計(jì)算機(jī)總線、輸入輸出接口等配備齊全,還可以接通PC機(jī)仿真終端執(zhí)行輸入輸出

操作,同時(shí)實(shí)現(xiàn)了微程序方案的和硬布線方案的2種控制器。從CPU的具體設(shè)計(jì)和實(shí)現(xiàn)技術(shù)

區(qū)分,既支持用中小集成度芯片實(shí)現(xiàn)CPU的方案,也支持選用高集成度的FPGA門(mén)陣列器件

實(shí)現(xiàn)CPU的方案,體現(xiàn)了CPU系統(tǒng)設(shè)計(jì)的最新水平。從計(jì)算機(jī)組成原理課程教學(xué)實(shí)驗(yàn)的角度

看,該計(jì)算機(jī)軟件系統(tǒng)組成也是完整的,支持簡(jiǎn)單的高級(jí)語(yǔ)言BASIC(包括浮點(diǎn)運(yùn)算指令和

基本函數(shù)運(yùn)算功能),匯編語(yǔ)言(支持基本偽指令功能)和二進(jìn)制的機(jī)器語(yǔ)言,配有自己的

監(jiān)控程序,以及PC機(jī)仿真終端程序等。毫無(wú)疑問(wèn),全部軟件的源程序代碼是寶貴的教學(xué)參

考資料。

從圖L2可以看到,軟件實(shí)現(xiàn)的計(jì)算機(jī)指令級(jí)模擬系統(tǒng),可以使實(shí)驗(yàn)人員脫離實(shí)際的教學(xué)計(jì)

算機(jī)系統(tǒng),在PC機(jī)上執(zhí)行教學(xué)計(jì)算機(jī)軟件系統(tǒng)的全部功能;微程序和硬連線這一級(jí)別的模

擬軟件,可以通過(guò)PC機(jī)屏幕查看在教學(xué)計(jì)算機(jī)內(nèi)部數(shù)據(jù)、指令的流動(dòng)過(guò)程,并顯示每一步

的運(yùn)行結(jié)果,為設(shè)計(jì)、調(diào)試教學(xué)機(jī)新的軟件或硬件功能提供重要的輔助作用。

軟件:解釋BASIC語(yǔ)言匯編語(yǔ)言支持

監(jiān)控程序(指令)級(jí)模擬教學(xué)機(jī)模擬:運(yùn)算器、控制器模擬(微程序級(jí)或硬布線控制器級(jí)模

擬)主存儲(chǔ)器模擬,總線、接口模擬輸入設(shè)備/輸出設(shè)備模擬

運(yùn)行環(huán)境:PC機(jī),Windows系統(tǒng)

2

值得提的還研制了控制器(微程序或硬連線方案)輔助設(shè)計(jì)軟件,同學(xué)可以在PC機(jī)上使

用該軟件直接設(shè)計(jì)該計(jì)算機(jī)的控制器,包括定義指令格式和編碼,劃分指令執(zhí)行步驟和每一

步的操作功能,確定控制器需要提供的全部控制信號(hào)等全部過(guò)程,最后會(huì)自動(dòng)生成能裝入教

學(xué)計(jì)算機(jī)硬件系統(tǒng)中實(shí)際應(yīng)用的最終結(jié)果文件。接下來(lái)還可以選用微程序級(jí)的模擬軟件系

統(tǒng),或者硬布線控制器級(jí)的模擬軟件系統(tǒng),對(duì)經(jīng)過(guò)輔助設(shè)計(jì)軟件得到的設(shè)計(jì)結(jié)果進(jìn)行模擬運(yùn)

行,計(jì)算機(jī)屏幕上會(huì)詳細(xì)顯示每一步的運(yùn)行結(jié)果,做到盡早地發(fā)現(xiàn)問(wèn)題。由于在執(zhí)行上述的

控制器設(shè)計(jì)和模擬運(yùn)行的整個(gè)過(guò)程中,都是在PC機(jī)上完成的,脫離實(shí)際的教學(xué)機(jī)系統(tǒng),工

作更方便,效率更高,對(duì)節(jié)省學(xué)時(shí)、幫助同學(xué)加深對(duì)控制器組成、設(shè)計(jì)等方面的理解深度也

有益處。

1.2TEC-XP+教學(xué)計(jì)算機(jī)的指令系統(tǒng)設(shè)計(jì)

合理地確定一臺(tái)計(jì)算機(jī)的指令系統(tǒng),無(wú)論對(duì)計(jì)算機(jī)廠家還是對(duì)最終用戶來(lái)說(shuō)都是十分重要的

事情,它密切關(guān)系到計(jì)算機(jī)設(shè)計(jì)與實(shí)現(xiàn)的復(fù)雜程度和生產(chǎn)成本,計(jì)算機(jī)使用的難易程度和運(yùn)

行效率。對(duì)主要用于教學(xué)和教學(xué)實(shí)驗(yàn)?zāi)康牡挠?jì)算機(jī),特別是對(duì)于一臺(tái)16位字長(zhǎng)的教學(xué)計(jì)算

機(jī)來(lái)說(shuō),確定其指令系統(tǒng),更多地應(yīng)關(guān)注它在教學(xué)過(guò)程中的作用和使用方法,至少應(yīng)解決好

以下幾個(gè)問(wèn)題。

(1)指令格式和功能的典型性,即選擇DLX指令集結(jié)構(gòu),適當(dāng)靠攏RISC機(jī)的指令格式,做

到盡可能小的指令集,簡(jiǎn)化的尋址方式。這樣做不僅使教學(xué)計(jì)算機(jī)的結(jié)構(gòu)簡(jiǎn)化,實(shí)現(xiàn)簡(jiǎn)單,

易于實(shí)現(xiàn)指令流水。做到指令格式和功能有良好的典型性,同學(xué)更容易接受,講課時(shí)更容易

完整地講解清楚

這套指令系統(tǒng)和控制器設(shè)計(jì),也有利于教學(xué)內(nèi)容的整體安排。

(2)指令系統(tǒng)要有一定的完備程度,給出的指令格式適當(dāng)規(guī)范,指令分類(lèi)合理,指令執(zhí)行

步驟容易理解,符合人們通常的編程使用習(xí)慣??傊休^好的易學(xué)易用性。確保選用這套

指令系統(tǒng),能方便地設(shè)計(jì)教學(xué)計(jì)算機(jī)的配套軟件。

(3)更高的可擴(kuò)充性,即為學(xué)生添加各種新的指令留下比較充足的余地,為此可以把完整

的系統(tǒng)中指令劃分為必備的(約30條)基本指令(設(shè)計(jì)者已經(jīng)實(shí)現(xiàn))和待擴(kuò)展的(約20條)

保留指令(留給學(xué)生設(shè)計(jì)實(shí)現(xiàn))2大類(lèi);在擴(kuò)展新的指令時(shí),實(shí)現(xiàn)手段要適當(dāng)簡(jiǎn)單-,但要有

比較多的設(shè)計(jì)內(nèi)容和選擇余地,以便更好地培養(yǎng)學(xué)生的創(chuàng)新意識(shí)和開(kāi)創(chuàng)能力,有利于深化教

學(xué)內(nèi)容。

(4)符合教學(xué)計(jì)算機(jī)的特定要求。對(duì)16位字長(zhǎng)的計(jì)算機(jī),指令的操作碼部分可以選擇為固

定長(zhǎng)度;再結(jié)合我們所選用的運(yùn)算器器件Am2901芯片內(nèi)含16個(gè)通用寄存器的特點(diǎn),寄存器

尋址方式需要使用4位的形式地址。如果需要,還可以指定16個(gè)累加器中的幾個(gè)為專(zhuān)用的

寄存器,以便最大程度地簡(jiǎn)化教學(xué)機(jī)硬件組成,簡(jiǎn)化指令執(zhí)行流程設(shè)計(jì)。

遵照上述思路,最終確定了教學(xué)計(jì)算機(jī)的指令系統(tǒng)的具體組成和指令格式。指令格式如圖1.3

所示。從圖中可以看到,指令中包括單字指令和雙字指令,第一個(gè)指令字的高8位是指令操

作碼字段,低8位和雙字指令的第二個(gè)指令字是操作數(shù)地址字段,分別有3種用法。

8位4位4位

DRSR

操作碼

10端口地址/相對(duì)偏移量

立即數(shù)/直接內(nèi)存地址/變址偏移量

圖1.3教學(xué)機(jī)的指令格式

3

8位指令操作碼(記作“曲15~令8”),各位的含義如下:

IR15,IR14用于區(qū)分指令組:0X表示A組,10表示B組,11表示C、D組;

IR13用于區(qū)分基本指令和擴(kuò)展指令:0表示基本指令,1表示擴(kuò)展指令;

IR12用于簡(jiǎn)化控制器的實(shí)現(xiàn),暫定該位的值為0;

IR1PIR8用于區(qū)分同一指令組中的不同指令(最多16條);

IRH還用于區(qū)分C、D組指令(每組最多8條):0表示C組,1表示D組。

第個(gè)指令字中的操作數(shù)地址字段可以給出:4位的通用寄存器編號(hào)(DR代表目的寄存器,

SR

代表源寄存器),8位的10端口地址,8位的相對(duì)變址偏移量。第二個(gè)指令字用于給出16位

的立

即數(shù),16位的直接內(nèi)存地址,或者16位的變址偏移量。

1.3TEC-XP+教學(xué)計(jì)算機(jī)的結(jié)構(gòu)和組成設(shè)計(jì)

作為教學(xué)科教學(xué)實(shí)驗(yàn)使用的計(jì)算機(jī),其結(jié)構(gòu)和組成設(shè)計(jì)要比較好地體現(xiàn)出盡可能多的主要教

學(xué)

內(nèi)容,包括功能部件劃分清晰,設(shè)計(jì)合理,它們之間連接關(guān)系適當(dāng)規(guī)范等。

在選用中小規(guī)模集成度器件實(shí)現(xiàn)的CPU系統(tǒng)中,運(yùn)算器部件設(shè)計(jì)選用了位片結(jié)構(gòu)的4位長(zhǎng)度

運(yùn)算器芯片,內(nèi)含功能比較合理的ALU,雙端口控制讀出、單端口控制寫(xiě)入的16個(gè)累加器,

和完

成乘除法運(yùn)算的乘商寄存器等功能部件,從功能和組成兩個(gè)方面都比較好地體現(xiàn)了運(yùn)算器部

件的教

學(xué)內(nèi)容。

在控制器部件設(shè)計(jì)中,同時(shí)實(shí)現(xiàn)了微程序的和硬布線的兩種控制器,通過(guò)一個(gè)開(kāi)關(guān)簡(jiǎn)單地完

兩種控制器之間的切換。講課過(guò)程中,以一種控制器方案為主,對(duì)控制器的組成與設(shè)計(jì)技術(shù)

講明講

透,再用少量學(xué)時(shí)順便介紹另外一種控制器方案,有利于比較兩種控制器的異同之處和各自

的優(yōu)缺

點(diǎn),可以取得事半功倍的教學(xué)效果。

設(shè)計(jì)指令執(zhí)行步驟時(shí),對(duì)選用中小規(guī)模集成電路實(shí)現(xiàn)的控制器,為了突出基本原理和減少器

數(shù)量,指令被設(shè)計(jì)為串行執(zhí)行,即下一條指令必須在當(dāng)前指令完全結(jié)束后才能開(kāi)始;在選用

高集成

度的現(xiàn)場(chǎng)可編程器件FPGA實(shí)現(xiàn)的CPU系統(tǒng)中,繼承了原來(lái)的指令系統(tǒng),既支持指令的串行

執(zhí)行,

也可以選用指令流水線技術(shù)實(shí)現(xiàn)指令的并行執(zhí)行,以支持真實(shí)的指令流水線的教學(xué)實(shí)驗(yàn)功

能。

在教學(xué)計(jì)算機(jī)存儲(chǔ)器部件設(shè)計(jì)中,出于簡(jiǎn)化和容易實(shí)現(xiàn)的目的,選用靜態(tài)存儲(chǔ)器芯片實(shí)現(xiàn)內(nèi)

儲(chǔ)器系統(tǒng),包括了唯讀存儲(chǔ)區(qū)(ROM,存放監(jiān)控程序等)和隨讀寫(xiě)存儲(chǔ)區(qū)(RAM)兩部分,也

可以實(shí)

現(xiàn)指令和數(shù)據(jù)分開(kāi)的兩個(gè)存儲(chǔ)體(只用于FPGA實(shí)現(xiàn)的帶指令流水線的CPU系統(tǒng))。適當(dāng)改

進(jìn)后,

可以支持存儲(chǔ)器的多體交叉編址技術(shù)。

在教學(xué)計(jì)算機(jī)總線部件設(shè)計(jì)中,實(shí)現(xiàn)了單總線結(jié)構(gòu),數(shù)據(jù)總線、地址總線和控制總線比較簡(jiǎn)

單,保證教學(xué)機(jī)的正常運(yùn)行并體現(xiàn)出總線設(shè)計(jì)的基本原理。

關(guān)于計(jì)算機(jī)中的接口線路,教學(xué)計(jì)算機(jī)提供了2路串行接口(INTEL8251),可以接入PC機(jī)

作為教學(xué)計(jì)算機(jī)的仿真終端完成輸入輸出操作。

關(guān)于中斷處理,支持3級(jí)的中斷并允許中斷嵌套,可以完成常規(guī)的中斷處理能力,對(duì)中斷優(yōu)

級(jí)編碼與排隊(duì),中斷響應(yīng)和現(xiàn)場(chǎng)切換等處理上特色很強(qiáng)。

1.4教學(xué)計(jì)算機(jī)的硬件實(shí)現(xiàn)技術(shù)

作為教學(xué)H的的計(jì)算機(jī)系統(tǒng),在具體的硬件實(shí)現(xiàn)方面與一般的商用計(jì)算機(jī)有著某些明顯不同

處,具體表現(xiàn)在如下3個(gè)方面。

4

首先是“處處可見(jiàn)”的要求,不僅全部部件和全部器件要做成全暴露方式,還包括計(jì)算機(jī)運(yùn)

過(guò)程中各種數(shù)據(jù)和控制信號(hào)的狀態(tài)及其時(shí)空關(guān)系也容易觀察,這對(duì)于學(xué)生完成教學(xué)實(shí)驗(yàn),掌

握計(jì)算

機(jī)組成與設(shè)計(jì)技術(shù)是必不可少的。因此,教學(xué)機(jī)的線路板上設(shè)置了大量的開(kāi)關(guān)和指示燈,適

當(dāng)?shù)奶?/p>

接線插針、插孔等。隨之帶來(lái)的一個(gè)突出矛盾是設(shè)備的可靠性和更高的抗破壞性,換句話說(shuō),

要能

夠盡量降低學(xué)生實(shí)驗(yàn)過(guò)程時(shí)常會(huì)發(fā)生的錯(cuò)誤對(duì)教學(xué)機(jī)的損壞程度,還要容易維修,這是教學(xué)

計(jì)算機(jī)

設(shè)計(jì)與實(shí)現(xiàn)過(guò)程中的難點(diǎn)之」

其次,在教學(xué)計(jì)算機(jī)實(shí)現(xiàn)中,要給出盡可能高的可擴(kuò)展性,即可以方便地修改已有設(shè)計(jì),或

增加新的功能。限制太多,留的選擇余地太少,會(huì)嚴(yán)重影響教學(xué)實(shí)驗(yàn)的水平和質(zhì)量;保留的

選擇余

地過(guò)多,不僅難以實(shí)現(xiàn),還會(huì)增大教學(xué)實(shí)驗(yàn)難度,反過(guò)來(lái)也難以保證教學(xué)實(shí)驗(yàn)的質(zhì)量。如何

在這二

者之間進(jìn)行取舍,無(wú)疑是留給設(shè)計(jì)者的又一個(gè)難題。作為主導(dǎo)思想,我們還是更強(qiáng)調(diào)選擇余

地留得

適當(dāng)多一點(diǎn),通過(guò)加強(qiáng)實(shí)驗(yàn)指導(dǎo),實(shí)驗(yàn)說(shuō)明寫(xiě)的詳細(xì)一些,使得學(xué)生可以開(kāi)展一些有創(chuàng)意的

教學(xué)實(shí)

驗(yàn)內(nèi)容,全力增強(qiáng)學(xué)生的創(chuàng)新意識(shí)和自主學(xué)習(xí)的能力。

最后?點(diǎn)是通過(guò)教學(xué)計(jì)算機(jī)系統(tǒng)能夠體現(xiàn)出多大的知識(shí)面,即涵蓋多大范圍的主要教學(xué)內(nèi)

容。

為了兼顧不同院校的教學(xué)安排,針對(duì)計(jì)算機(jī)組成原理和計(jì)算機(jī)體系結(jié)構(gòu)兩門(mén)課程的實(shí)驗(yàn)需

求,我們

把教學(xué)計(jì)算機(jī)系統(tǒng)做成了一個(gè)系列產(chǎn)品。

從計(jì)算機(jī)字長(zhǎng)劃分,可以實(shí)現(xiàn)8位字長(zhǎng)的計(jì)算機(jī),也可以實(shí)現(xiàn)16位字長(zhǎng)的計(jì)算機(jī),難能可

的是它們是在同一個(gè)印制電路板上實(shí)現(xiàn)的,換言之,只要教師具備相應(yīng)的知識(shí)利技術(shù)能力,

在16

位的教學(xué)計(jì)算機(jī)上,經(jīng)過(guò)重新設(shè)計(jì)并組裝成8位字長(zhǎng)的計(jì)算機(jī)是可行的,當(dāng)然這已經(jīng)是完全

不同指

令系統(tǒng)、不同硬軟件組成的兩套計(jì)算機(jī),可以用在計(jì)算機(jī)組成原理課程的教學(xué)過(guò)程中,用于

課程設(shè)

計(jì),甚至于作為學(xué)生的畢業(yè)設(shè)計(jì)題目也是可行的。

從選用的器件劃分,支持用中小規(guī)模集成電路實(shí)現(xiàn)的CPU系統(tǒng),在體現(xiàn)計(jì)算機(jī)組成的原理性

識(shí)的同時(shí),在很多場(chǎng)合都要涉及到數(shù)字邏輯電路和邏輯設(shè)計(jì)的具體知識(shí),更接近計(jì)算機(jī)實(shí)現(xiàn)

的線路

邏輯的底層,體現(xiàn)了比較傳統(tǒng)的教學(xué)內(nèi)容和實(shí)驗(yàn)安排。還支持用大規(guī)模集成電路FPGA芯片

實(shí)現(xiàn)的

單個(gè)芯片的CPU系統(tǒng),選用VHDL語(yǔ)言描述計(jì)算機(jī)處理器的功能組成,此時(shí)則較少涉及計(jì)算

機(jī)具體

實(shí)現(xiàn)的線路邏輯,更有利于突出計(jì)算機(jī)的功能設(shè)計(jì)與實(shí)現(xiàn),并且為實(shí)現(xiàn)指令流水提供了最好

的條

件,體現(xiàn)出比較新的教學(xué)內(nèi)容和更高層次的實(shí)驗(yàn)安排。

從計(jì)算機(jī)系統(tǒng)的完整性劃分,目前國(guó)內(nèi)多數(shù)的計(jì)算機(jī)組成原理課程的教學(xué)實(shí)驗(yàn)是在硬件裸機(jī)

置上完成的,實(shí)驗(yàn)裝置上沒(méi)有配備合理的軟件系統(tǒng),計(jì)算機(jī)組成原理被作為一門(mén)“純正的”

硬件課

程來(lái)看待,這是很過(guò)時(shí)的做法,與國(guó)外先進(jìn)的教學(xué)安排相差甚遠(yuǎn)。我們則堅(jiān)持把一臺(tái)硬軟件

配置比

較完整的計(jì)算機(jī)系統(tǒng)用于教學(xué)實(shí)驗(yàn),匯編語(yǔ)言程序設(shè)計(jì)、簡(jiǎn)單的操作系統(tǒng)雛形(監(jiān)控程序),

不同

層次的軟件模擬等應(yīng)該在計(jì)算機(jī)組成原理課程中有適當(dāng)?shù)牡匚弧?/p>

從計(jì)算機(jī)硬件系統(tǒng)的設(shè)計(jì)手段劃分,在教學(xué)計(jì)算機(jī)設(shè)計(jì)與實(shí)現(xiàn)中,有非常老式的、基本上完

手工設(shè)計(jì)的例子,也有更現(xiàn)代化的通過(guò)VHDL語(yǔ)言描述、并用FPGA芯片實(shí)現(xiàn)的例子。使同學(xué)

們有機(jī)

會(huì)在二者之間進(jìn)行某些對(duì)比,看到技術(shù)進(jìn)步給IT產(chǎn)業(yè)帶來(lái)的深遠(yuǎn)影響。

除此之外,我們還設(shè)計(jì)了計(jì)算機(jī)控制器(含微程序控制器和硬連線控制器)輔助設(shè)計(jì)軟件,

軟件將以導(dǎo)航方式指明控制器的設(shè)計(jì)流程,引導(dǎo)學(xué)生逐項(xiàng)完成必要的設(shè)計(jì),包括定義指令系

統(tǒng),劃

分指令執(zhí)行步驟和每一步實(shí)現(xiàn)的功能,選擇有關(guān)控制信號(hào)等,并把原來(lái)完全手工設(shè)計(jì)過(guò)程中

那些機(jī)

械重復(fù)的微指令編碼、微指令地址安排,以及書(shū)寫(xiě)硬連線控制器每一個(gè)控制信號(hào)的邏輯表達(dá)

式等煩

人的勞動(dòng)交由計(jì)算機(jī)自動(dòng)完成,極大地提高了教學(xué)實(shí)驗(yàn)的工作效率和設(shè)計(jì)質(zhì)量。接下來(lái)可以

通過(guò)運(yùn)

行模擬軟件系統(tǒng),檢查輔助設(shè)計(jì)的結(jié)果,盡快地幫助找出設(shè)計(jì)中的錯(cuò)誤。正確的設(shè)計(jì)結(jié)果可

以被直

接裝入到實(shí)際的硬件系統(tǒng)中,通過(guò)運(yùn)行最終設(shè)計(jì)的硬件教學(xué)計(jì)算機(jī)系統(tǒng),查看實(shí)際運(yùn)行效果。

設(shè)計(jì)

5

過(guò)程和操作運(yùn)行步驟密切相關(guān),環(huán)環(huán)緊扣,使學(xué)生在探索中學(xué)習(xí),濃厚的興趣,油然而生的

成就感

將激勵(lì)他們不斷前進(jìn)。

1.5軟件模擬實(shí)現(xiàn)的教學(xué)計(jì)算機(jī)系統(tǒng)

把已經(jīng)用硬件實(shí)現(xiàn)的教學(xué)計(jì)算機(jī)系統(tǒng)的全部功能,通過(guò)軟件模擬的辦法在PC機(jī)上再次展現(xiàn)

來(lái),是我們做出的重大努力之一。通過(guò)網(wǎng)上查詢和與已經(jīng)出國(guó)人員的直接交流,了解到國(guó)外

有一些

著名大學(xué)在計(jì)算機(jī)組成原理課程教學(xué)過(guò)程中的安排,多選用軟件模擬的方式完成逐項(xiàng)教學(xué)實(shí)

驗(yàn)。其

優(yōu)點(diǎn)是使用方便,變動(dòng)設(shè)計(jì)的靈活性強(qiáng),可以比較容易地對(duì)比不同設(shè)計(jì)方案對(duì)計(jì)算機(jī)執(zhí)行性

能影響

的程度。不使用專(zhuān)用硬件設(shè)備完成教學(xué)實(shí)驗(yàn),實(shí)驗(yàn)成本也會(huì)比較低,不要求專(zhuān)職的人員管理

硬件教

學(xué)實(shí)驗(yàn)室,授課與輔導(dǎo)教師更容易與同學(xué)交互。缺憾也是明顯的,學(xué)生學(xué)習(xí)硬件課程的整個(gè)

過(guò)程,

不接觸(擁有)自己可以設(shè)計(jì)與修改的硬件設(shè)備,更多的精力集中到計(jì)算機(jī)的功能設(shè)計(jì)部分,

難以

對(duì)線路與邏輯設(shè)計(jì)部分,計(jì)算機(jī)硬件實(shí)現(xiàn)中的工程性、技術(shù)性問(wèn)題有切身體會(huì)。如何權(quán)衡硬

件的教

學(xué)計(jì)算機(jī)系統(tǒng)和軟件模擬的教學(xué)計(jì)算機(jī)系統(tǒng)在課程教學(xué)中的作用,可能是仁者見(jiàn)仁,智者見(jiàn)

智,恐

怕時(shí)也難有定論。對(duì)此,我們采取的措施是同時(shí)實(shí)現(xiàn)出這樣兩部分內(nèi)容,并且同時(shí)使用在

教學(xué)過(guò)

程中,使它們發(fā)揮各自不同的作用,通過(guò)教學(xué)實(shí)踐來(lái)探索更好的解決問(wèn)題的途徑。為了更便

于比

較,做到更好的資源復(fù)用,在設(shè)計(jì)與實(shí)現(xiàn)軟件模擬的教學(xué)計(jì)算機(jī)系統(tǒng)的過(guò)程中,采取了兩項(xiàng)

措施:

(1)堅(jiān)持與硬件實(shí)現(xiàn)的教學(xué)計(jì)算機(jī)系統(tǒng)有盡可能高的?致性。為此,模擬軟件使用的信息,

例如監(jiān)控程序的執(zhí)行碼,微程序控制器的微程序的二進(jìn)制編碼文件等,與硬件教學(xué)機(jī)系統(tǒng)中

使用的

完全相同,這樣輔助設(shè)計(jì)產(chǎn)生的設(shè)計(jì)結(jié)果,既可以直接用于模擬,也可以直接用于寫(xiě)到硬件

教學(xué)機(jī)

的部件中,確保二者之間有最好的一致性。

(2)在模擬軟件的設(shè)計(jì)中,比較準(zhǔn)確地按照硬件系統(tǒng)的主要功能部件實(shí)現(xiàn)模擬,確保硬件

實(shí)

現(xiàn)的與軟件模擬現(xiàn)實(shí)的系統(tǒng)有良好的對(duì)照關(guān)系,有望在教學(xué)過(guò)程中可以得到更好的教學(xué)效

果。

實(shí)現(xiàn)的模擬系統(tǒng),模擬重點(diǎn)分配到2個(gè)層次上。

一個(gè)層次是指令級(jí)模擬,模擬的最小單位是一條機(jī)器指令,根據(jù)得到的指令的具體內(nèi)容計(jì)算

這條指令的執(zhí)行結(jié)果。這個(gè)模擬軟件的運(yùn)行對(duì)象是機(jī)器指令組成的程序,運(yùn)行結(jié)果將顯示在

計(jì)算機(jī)

的屏幕上。當(dāng)被運(yùn)行的程序?qū)ο笫潜O(jiān)控程序時(shí),實(shí)際上就是在模擬監(jiān)控程序的執(zhí)行過(guò)程,可

以執(zhí)行

每一個(gè)監(jiān)控命令,與在真實(shí)教學(xué)計(jì)算機(jī)上運(yùn)行監(jiān)控程序的效果是一樣的,此時(shí)也可以說(shuō)是在

執(zhí)行教

學(xué)計(jì)算機(jī)系統(tǒng)一級(jí)的模擬,可以建立并運(yùn)行用戶的匯編程序,也可以建立并運(yùn)行用戶的BASIC

的程序等。

另一個(gè)層次是微體系結(jié)構(gòu)級(jí)模擬,模擬的最小單位是i條指令的?個(gè)執(zhí)行步驟,對(duì)微程序控

器而言是一條微指令,對(duì)硬連線控制器而言是指令的一個(gè)節(jié)拍。這個(gè)模擬軟件的運(yùn)行對(duì)象也

是機(jī)器

指令組成的程序,運(yùn)行結(jié)果將顯示在計(jì)算機(jī)的屏幕上,但它有2種不同的運(yùn)行方式:連續(xù)運(yùn)

行和單

步運(yùn)行。在連續(xù)運(yùn)行方式下,在計(jì)算機(jī)屏幕上見(jiàn)到的運(yùn)行效果和前一個(gè)層次上的運(yùn)行效果是

一樣

的,只是運(yùn)行速度要慢得多,因?yàn)橐M計(jì)算每一條指令的每一個(gè)執(zhí)行步驟的結(jié)果,經(jīng)過(guò)幾

個(gè)模擬

步驟才能得到一條指令的運(yùn)行結(jié)果,承擔(dān)模擬的PC計(jì)算機(jī)的計(jì)算量要增大很多。在單步運(yùn)

行方式

下,在計(jì)算機(jī)屏幕上將顯示指令的這個(gè)執(zhí)行步驟的有關(guān)運(yùn)行結(jié)果,包括指令寄存器的內(nèi)容,

指令所

處的執(zhí)行步驟,地址總線、數(shù)據(jù)總線、各個(gè)累加器的內(nèi)容,運(yùn)算器的輸出結(jié)果和標(biāo)志位的結(jié)

果,狀

態(tài)寄存器的內(nèi)容,控制器全部控制信號(hào)的當(dāng)前狀態(tài)等完整的信息,主要用于查看、理解、分

析計(jì)算

機(jī)內(nèi)指令執(zhí)行的詳實(shí)過(guò)程,這對(duì)檢查同學(xué)新增加的控制器功能(擴(kuò)展的新指令的執(zhí)行過(guò)程)

的正確

性是很有幫助的。

6

開(kāi)發(fā)模擬軟件需要注意選擇運(yùn)行平臺(tái)。考慮到已經(jīng)把Windows系統(tǒng)作為仿真終端的運(yùn)行環(huán)

境,

全部軟件系統(tǒng)也都統(tǒng)?到這?平臺(tái)之上。

1.6教學(xué)計(jì)算機(jī)在教學(xué)過(guò)程中的作用

TEC-XP+教學(xué)計(jì)算機(jī)系統(tǒng)的組成和設(shè)計(jì)技術(shù),作為教學(xué)內(nèi)容的實(shí)例有很強(qiáng)的典型性,修改或

擴(kuò)

展已有功能可以比較好地滿足教學(xué)實(shí)驗(yàn)的要求:硬件實(shí)現(xiàn)的計(jì)算機(jī)系統(tǒng)可以用于現(xiàn)場(chǎng)的真實(shí)

硬件系

統(tǒng)的教學(xué)實(shí)驗(yàn),軟件模擬實(shí)現(xiàn)的計(jì)算機(jī)系統(tǒng),可以在脫離實(shí)際教學(xué)計(jì)算機(jī)系統(tǒng)的條件下,在

PC機(jī)

上通過(guò)模擬的辦法完成原本必須在教學(xué)機(jī)上進(jìn)行的教學(xué)實(shí)驗(yàn)。

計(jì)算機(jī)組成原理是計(jì)算機(jī)系本科生最重要的專(zhuān)業(yè)基礎(chǔ)課程之一,必修,課程在整個(gè)教學(xué)安排

占有重要的地位。計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)課程也是計(jì)算機(jī)系本科生重要的專(zhuān)業(yè)課程之一,但系統(tǒng)結(jié)

構(gòu)課程

的教學(xué)實(shí)驗(yàn)卻不容易落實(shí),目前比較多地集中到通過(guò)軟件模擬來(lái)評(píng)測(cè)不同設(shè)計(jì)方案對(duì)系統(tǒng)性

能的影

響。應(yīng)該清醒地看到,國(guó)內(nèi)對(duì)于計(jì)算機(jī)硬件為主的課程的定位尚不夠準(zhǔn)確,教學(xué)過(guò)程中也還

存在一

些模糊認(rèn)識(shí),或由于條件上的限制采取了一些不夠進(jìn)取的辦法,這一切嚴(yán)重地影響教學(xué)質(zhì)量,

長(zhǎng)遠(yuǎn)

看,對(duì)我國(guó)信息產(chǎn)業(yè)的發(fā)展是不利的。

對(duì)硬件為主的課程定位不夠準(zhǔn)確,主要表現(xiàn)在種“欺軟怕硬”的心理,認(rèn)為計(jì)算機(jī)硬件(尤

其是計(jì)算機(jī)組成原理課程)難教更難學(xué),于是采取適當(dāng)躲避的態(tài)度對(duì)待之,極端一點(diǎn)的,直

接說(shuō)計(jì)

算機(jī)組成原理課程沒(méi)有用。顯而易見(jiàn),如果計(jì)算機(jī)專(zhuān)業(yè)的本科生,連計(jì)算機(jī)組成原理這樣一

些專(zhuān)業(yè)

基礎(chǔ)知識(shí)都不具備,如何更好地學(xué)習(xí)后續(xù)的專(zhuān)業(yè)課程,又如何能發(fā)展成為計(jì)算機(jī)的專(zhuān)業(yè)人士

呢?更

不要說(shuō)是高級(jí)專(zhuān)門(mén)人才。

對(duì)課程的模糊認(rèn)識(shí)之一,認(rèn)為計(jì)算機(jī)組成原理是純硬件課,把它和計(jì)算機(jī)軟件系統(tǒng)決然分開(kāi),

而不是把它作為完整計(jì)算機(jī)系統(tǒng)的組成部分之一來(lái)合理安排教學(xué)內(nèi)容,這是國(guó)外30多年前

就已舍

棄的陳舊做法。模糊認(rèn)識(shí)之二,認(rèn)為計(jì)算機(jī)基礎(chǔ)硬件不再重要,以為主要應(yīng)該講解高檔計(jì)算

機(jī)中最

新出現(xiàn)的技術(shù)和最新進(jìn)展,殊不知這些最新出現(xiàn)的技術(shù)和最新進(jìn)展都是在基本原理上發(fā)展而

來(lái)的,

輕視專(zhuān)業(yè)基礎(chǔ)知識(shí),最終架設(shè)的知識(shí)結(jié)構(gòu)只能是空中樓閣,更不符合大學(xué)通才教育的要求。

條件上的限制,主要表現(xiàn)在缺乏必要的、能比較好地滿足教學(xué)實(shí)驗(yàn)要求的教學(xué)實(shí)驗(yàn)設(shè)備,使

學(xué)過(guò)程更多地建立在課堂授課的方式下,缺乏必要的教學(xué)實(shí)踐支持,這對(duì)于技術(shù)性和工程性

很強(qiáng)的

課程來(lái)說(shuō)幾乎成為災(zāi)難性的問(wèn)題。引申一步看,還包括部分任課教師所具有的知識(shí)結(jié)構(gòu)基本

上也只

限于書(shū)本知識(shí),缺乏設(shè)計(jì)和實(shí)現(xiàn)一臺(tái)真實(shí)一點(diǎn)的計(jì)算機(jī)基本硬、軟件系統(tǒng)的經(jīng)歷,一時(shí)還難

以完全

適應(yīng)教學(xué)的實(shí)際需要。

我們的觀點(diǎn)是,解決上述問(wèn)題的出路之一,在于建設(shè)被廣泛接受和認(rèn)可的、高質(zhì)量的教學(xué)資

源,包括體現(xiàn)最新水準(zhǔn)的高質(zhì)量的教材,形象生動(dòng)的教學(xué)課件(教學(xué)教案),研制并合理配

備能覆

蓋主要教學(xué)內(nèi)容、具有良好教學(xué)實(shí)驗(yàn)功能的教學(xué)實(shí)驗(yàn)設(shè)備和軟件模擬系統(tǒng)。

在清華大學(xué)計(jì)算機(jī)系,“計(jì)算機(jī)組成原理”課程教學(xué)改革的思路是,從課堂教師講授為主、

學(xué)

生被動(dòng)地聽(tīng)課和完成驗(yàn)證性的教學(xué)實(shí)驗(yàn)為輔的傳統(tǒng)“知識(shí)傳授型”的教法,改變成為在精簡(jiǎn)

課堂授

課內(nèi)容的基礎(chǔ)上,以完成一項(xiàng)計(jì)算機(jī)完整的硬、軟件系統(tǒng)的工程設(shè)計(jì)與實(shí)現(xiàn)的課題研究為重

要支撐

手段的“學(xué)生主動(dòng)探索式”新的教學(xué)途徑,盡量做到:

從學(xué)生聽(tīng)課為主的被動(dòng)接收知識(shí)的學(xué)習(xí)方式,變成為結(jié)合課題研究與工程設(shè)計(jì)來(lái)主動(dòng)學(xué)習(xí)的

大變革,給學(xué)生更多自由支配的時(shí)間,充分發(fā)揮學(xué)生自主學(xué)習(xí)的積極性;

7

從傳授知識(shí)為主變?yōu)閭魇谥R(shí)與培養(yǎng)能力并重的人才培養(yǎng)模式。清華大學(xué)關(guān)注開(kāi)創(chuàng)意識(shí)和創(chuàng)

能力的培養(yǎng),注重學(xué)生全面素質(zhì)的提高。特別是考慮到計(jì)算機(jī)組成原理課程教學(xué)內(nèi)容的工程

性、技

術(shù)性、實(shí)踐性特別強(qiáng)的特點(diǎn),把工程設(shè)計(jì)項(xiàng)目引進(jìn)教學(xué)全過(guò)程很有必要。

教學(xué)計(jì)算機(jī)系統(tǒng)在清華大學(xué)計(jì)算機(jī)系的教學(xué)改革中顯示出強(qiáng)大的生命力,在為期一個(gè)學(xué)期的

計(jì)

算機(jī)組成原理課程的教學(xué)過(guò)程中,要求每3名同學(xué)為一組,合作完成一臺(tái)與教學(xué)實(shí)例有明顯

差異

的、硬軟件配置基本完整的全新計(jì)算機(jī)系統(tǒng),包括運(yùn)算器、存儲(chǔ)器、微程序的控制器、硬布

線的控

制器等部件設(shè)計(jì)與實(shí)現(xiàn),也包括適當(dāng)修改監(jiān)控程序和匯編器軟件等軟件設(shè)計(jì)任務(wù),這是一項(xiàng)

很有挑

戰(zhàn)性的任務(wù)。針對(duì)清華大學(xué)創(chuàng)辦“世界一流”和“研究型”大學(xué)的目標(biāo),這種努力是值得的。

目前

清華大學(xué)計(jì)算機(jī)系的“計(jì)算機(jī)組成原理”課程已經(jīng)被評(píng)為北京市精品課和國(guó)家級(jí)精品課,并

榮獲北

京市優(yōu)秀教學(xué)成果一等獎(jiǎng),教材被評(píng)為北京市精品教材。在全國(guó),已有幾百余所大學(xué)把我們

略早期

研制的中小規(guī)模器件實(shí)現(xiàn)的硬件教學(xué)計(jì)算機(jī)系統(tǒng)用于他們的授課過(guò)程和教學(xué)實(shí)驗(yàn),反響還相

當(dāng)不

錯(cuò)。我們也知道,在清華大學(xué)計(jì)算機(jī)系的開(kāi)展的教學(xué)改革方案,不能簡(jiǎn)單地在全國(guó)各院校直

接照

搬,對(duì)大部分的教師來(lái)說(shuō),他們可能更傾向于我們前一些年一直采用的比較傳統(tǒng)的做法,就

是通過(guò)

在教學(xué)計(jì)算機(jī)上做一些驗(yàn)證性為主的實(shí)驗(yàn),或者適當(dāng)擴(kuò)展教學(xué)計(jì)算機(jī)已有功能的教學(xué)實(shí)驗(yàn)。

即使這

樣,也在原來(lái)的基礎(chǔ)上前進(jìn)了一大步。在這一改革方案中,首先受益的是年輕教師,只要他

們肯花

出適當(dāng)?shù)呐?,就可以填補(bǔ)上所欠缺的設(shè)計(jì)與實(shí)現(xiàn)完整計(jì)算機(jī)的基本硬、軟件系統(tǒng)的經(jīng)歷,

提高自

己的業(yè)務(wù)素質(zhì)和教學(xué)水平。接下來(lái)學(xué)生將全面受益,課程內(nèi)容中既有適量的書(shū)本知識(shí),教師

也會(huì)結(jié)

合教學(xué)機(jī)設(shè)計(jì)增加實(shí)例內(nèi)容,課后學(xué)生又可以在教學(xué)機(jī)上完成自己的設(shè)計(jì)和調(diào)試任務(wù),力爭(zhēng)

做到學(xué)

習(xí)知識(shí)與增長(zhǎng)能力的雙豐收。

此外,對(duì)技術(shù)含量更高,對(duì)教學(xué)影響可能更大一些最新的研制成果,包括控制器輔助設(shè)計(jì)系

統(tǒng),全部的軟件模擬系統(tǒng),用FPGA芯片實(shí)現(xiàn)的CPU系統(tǒng)(與原有教學(xué)計(jì)算機(jī)系統(tǒng)指令兼容,

并增

加了比較真實(shí)的指令流水線),高級(jí)語(yǔ)言支持和浮點(diǎn)運(yùn)算指令支持等,由于推出時(shí)間較晚,

了解的

人還不多,有必要把這些內(nèi)容盡早地引入教學(xué)過(guò)程,推動(dòng)課程的教學(xué)改革的深入發(fā)展,培養(yǎng)

出更多

具有創(chuàng)新能力的高素質(zhì)的專(zhuān)業(yè)人才。

1.7基本實(shí)驗(yàn)項(xiàng)目設(shè)置

在本節(jié)提到的實(shí)驗(yàn)項(xiàng)目,多數(shù)是在TH-union系統(tǒng)中選用中小規(guī)模集成度器件實(shí)現(xiàn)的教學(xué)計(jì)

機(jī)上可以開(kāi)設(shè)的實(shí)驗(yàn),把選用FPGA芯片實(shí)現(xiàn)的CPU構(gòu)建的教學(xué)機(jī)系統(tǒng)中支持的教學(xué)實(shí)驗(yàn)項(xiàng)

目放

在第3章介紹。

基本實(shí)驗(yàn)是指學(xué)習(xí)計(jì)算機(jī)組成原理通??傄瓿傻膶?shí)驗(yàn)項(xiàng)目,解決的是學(xué)習(xí)基本原理和培養(yǎng)

本能力的問(wèn)題。

1.基礎(chǔ)匯編程序設(shè)計(jì)學(xué)習(xí)

使用系統(tǒng)已實(shí)現(xiàn)的29條指令和監(jiān)控程序、交叉匯編程序軟件,設(shè)計(jì)與調(diào)試由教師布置的或

己設(shè)想的各種匯編程序。如有可能,可以參照系統(tǒng)提供的交叉匯編程序的源碼,學(xué)習(xí)系統(tǒng)匯

編程序

(Assembler)的實(shí)現(xiàn)原理與設(shè)計(jì)技術(shù)。

2.運(yùn)算器部件實(shí)驗(yàn)

可以在運(yùn)算器完全脫開(kāi)主機(jī)控制的方式下,用主板上的微型開(kāi)關(guān)直接控制運(yùn)算器的方式來(lái)使

運(yùn)算器并觀察運(yùn)算結(jié)果;也可以在實(shí)驗(yàn)計(jì)算機(jī)正常運(yùn)行方式下,用控制器給出實(shí)驗(yàn)者所設(shè)計(jì)

的對(duì)運(yùn)

算器的控制信號(hào)來(lái)使用運(yùn)算器并觀察運(yùn)算結(jié)果(此時(shí)并不需要懂得控制器的運(yùn)行原理)。

8

可以觀察并量測(cè)運(yùn)算器在串行進(jìn)位方式下的進(jìn)位信號(hào)的波形和延遲時(shí)間,也可以測(cè)出該運(yùn)算

所允許的最高工作頻率。

3.主存儲(chǔ)器部件的實(shí)驗(yàn)

可以進(jìn)行存儲(chǔ)器工作波形的觀察與量測(cè),可進(jìn)行靜態(tài)存儲(chǔ)器的容量擴(kuò)展實(shí)驗(yàn),通過(guò)監(jiān)控命令

自己設(shè)計(jì)的小程序向存儲(chǔ)器寫(xiě)入數(shù)據(jù)并檢查讀寫(xiě)的正確性。

4.控制器部件實(shí)驗(yàn)

可以做微程序方案或硬布線方案的控制器實(shí)驗(yàn)。首先是通過(guò)聽(tīng)課和操作實(shí)驗(yàn)機(jī),學(xué)懂已實(shí)現(xiàn)

控制器的設(shè)計(jì)原理與實(shí)現(xiàn)技術(shù),以單指令方式、單步驟執(zhí)行方式觀察指令的運(yùn)行結(jié)果和信息

在計(jì)算

機(jī)內(nèi)產(chǎn)生和傳送的時(shí)間、空間關(guān)系,這是更重要的實(shí)驗(yàn)內(nèi)容;然后才是設(shè)計(jì)與實(shí)現(xiàn)多條自己

定義的

新指令,并把新老指令放在同一程序中運(yùn)行,檢查結(jié)果的正確性。在微程序方案下實(shí)現(xiàn)新指

令更容

易,不用改動(dòng)任何硬件,按規(guī)定辦法把有關(guān)新指令用到的微程序裝入控制存儲(chǔ)器即可。在硬

連線控

制器方案中,則要把新指令用到的控制邏輯與原有的基本指令的控制邏輯合并?起,經(jīng)過(guò)編

譯之后

再重新下載到可編程的MACH器件中,略顯得復(fù)雜一點(diǎn),可能要多次地改正錯(cuò)誤才能得到最

終的

正確結(jié)果。

5.串行口輸入/輸出實(shí)驗(yàn)

由于本機(jī)上已給出了兩路串行接口,其中的一路的接線完全連接好,系統(tǒng)也已經(jīng)執(zhí)行了對(duì)接

芯片的初始化,可以直接用于輸入輸出操作:另外的?路的接線并未全部連通,要求實(shí)驗(yàn)人

員看懂

圖紙并完成必要的連線操作和串行口的初始化操作后,方能用程序控制方式完成該串行接口

的正常

輸入/輸出操作,例如用兩臺(tái)實(shí)驗(yàn)機(jī)的這?路串行口完成雙機(jī)雙向通信等實(shí)驗(yàn)。作為更高要

求,還

可以增加少量硬件線路,實(shí)現(xiàn)在中斷方式下完成輸入/輸出操作(需在講過(guò)中斷之后進(jìn)行)。

還可以觀

察與量測(cè)串行數(shù)據(jù)的波形,起始位、停止位、串行數(shù)據(jù)采樣時(shí)間的配合關(guān)系等。

6.并行口與并行口打印機(jī)驅(qū)動(dòng)的實(shí)驗(yàn)

可以在教學(xué)機(jī)的主板匕設(shè)計(jì)并搭建諸如Intel8255并行接口與配套邏輯電路,并用程序控

制方

式和中斷方式驅(qū)動(dòng)并行口打印機(jī)完成打印操作。在無(wú)打印機(jī)的情況下,可用并行口在程序控

制方式

下或中斷方式下實(shí)現(xiàn)兩臺(tái)實(shí)驗(yàn)機(jī)的雙機(jī)單向或雙機(jī)雙向通信,或在同一臺(tái)實(shí)驗(yàn)機(jī)上實(shí)現(xiàn)內(nèi)存

內(nèi)容”

搬移”等實(shí)驗(yàn)。這涉及硬件與軟件兩個(gè)方面知識(shí)的綜合應(yīng)用。

7.中斷及DMA實(shí)驗(yàn)

串行口、并行口輸入/輸出操作中,都可以有中斷方式下的輸入輸出方式,這需要適當(dāng)?shù)匦?/p>

監(jiān)控程序。這里也可以專(zhuān)門(mén)做多級(jí)中斷、優(yōu)先級(jí)排隊(duì)及中斷嵌套的實(shí)驗(yàn)。此時(shí)可用按鈕等作

為中斷

請(qǐng)求信號(hào)來(lái)源,拋開(kāi)相應(yīng)設(shè)備入/出以強(qiáng)化中斷處理本身的份量。

DMA的工作方式,最簡(jiǎn)單的實(shí)驗(yàn)是在程序正常運(yùn)行的同時(shí),用DMA方式同時(shí)完成內(nèi)存內(nèi)容

的''搬移"操作,結(jié)果的正確性便于檢查。這個(gè)實(shí)驗(yàn)需用到擴(kuò)展的通用接口芯片的插座,完成

必要的

連線,設(shè)計(jì)實(shí)驗(yàn)小程序軟件等。

8.整機(jī)故障定位與排除實(shí)驗(yàn)

實(shí)驗(yàn)機(jī)上有?些跳線夾,是用來(lái)人為設(shè)置機(jī)器故障的。教師可以通過(guò)移走或兒個(gè)跳線,或

匕有故障的器件,要求學(xué)生發(fā)現(xiàn)故障,查清故障原因并設(shè)法排除。該實(shí)驗(yàn)有一定難度,但也

是綜合

應(yīng)用所學(xué)全部知識(shí)、完成能力訓(xùn)練的非常有效的手段,對(duì)提高分析問(wèn)題與解決問(wèn)題的能力會(huì)

有很大

幫助。此時(shí)需要確保設(shè)置的故障不會(huì)損壞教學(xué)計(jì)算機(jī)系統(tǒng)的硬件。

1.8其他實(shí)驗(yàn)項(xiàng)目

9

是指那些不一定是學(xué)習(xí)計(jì)算機(jī)組成原理課程必做的實(shí)驗(yàn),或難度更大的實(shí)驗(yàn)項(xiàng)目。

1.故障診斷軟件的設(shè)計(jì)與實(shí)現(xiàn)

這可以在機(jī)器指令級(jí)或微體系結(jié)構(gòu)級(jí)進(jìn)行。機(jī)器指令級(jí)的診斷程序用以疹斷指令與監(jiān)控程序

運(yùn)

行的正確性,是機(jī)器出廠前例行實(shí)驗(yàn)的一部分,也是實(shí)驗(yàn)指導(dǎo)教師把實(shí)驗(yàn)機(jī)交付學(xué)生使用之

前判斷

機(jī)器好壞的簡(jiǎn)便手段。可以讓學(xué)生試著設(shè)計(jì)。

微體系結(jié)構(gòu)級(jí)的診斷,設(shè)計(jì)得好的話,可用來(lái)實(shí)現(xiàn)實(shí)驗(yàn)機(jī)的故障診斷,非常有用,對(duì)于透徹

握實(shí)驗(yàn)機(jī)的組成與運(yùn)行機(jī)制幫助巨大,但在教學(xué)機(jī)中實(shí)現(xiàn)起來(lái)有相當(dāng)?shù)碾y度。

2.用一臺(tái)正確運(yùn)行的實(shí)驗(yàn)機(jī)輔助調(diào)試另一臺(tái)實(shí)驗(yàn)機(jī)

在本實(shí)驗(yàn)機(jī)的實(shí)現(xiàn)過(guò)程中,已考慮到這類(lèi)實(shí)驗(yàn)的需求。可以把同時(shí)鐘同時(shí)提供給兩臺(tái)實(shí)驗(yàn)

機(jī),使其完全同步運(yùn)行,并比較檢查兩臺(tái)實(shí)驗(yàn)機(jī)內(nèi)部主要信號(hào)、運(yùn)行狀態(tài)及結(jié)果的一致性,

并依此

結(jié)果判斷是否繼續(xù)給出后續(xù)時(shí)鐘,則很容易找到待調(diào)試計(jì)算機(jī)的出錯(cuò)位置。與此類(lèi)似的是雙

機(jī)同步

運(yùn)行,是檢查機(jī)器可靠性的一條捷徑。

3.實(shí)驗(yàn)機(jī)的監(jiān)控程序、交叉匯編程序的修改與擴(kuò)充功能的實(shí)驗(yàn)。

4.擴(kuò)充輸入/輸出接口、設(shè)備與驅(qū)動(dòng)程序的實(shí)驗(yàn)。

5.設(shè)計(jì)與實(shí)現(xiàn)一套全新指令系統(tǒng)的CPU。指令格式可以突破現(xiàn)在規(guī)定,尋址方式也可變化,

以16位字長(zhǎng)的一字或多字指令為宜。微指令格式可變,但字長(zhǎng)在56位以下最方便。運(yùn)算器

也可適

當(dāng)變動(dòng),用Am2901實(shí)現(xiàn)其他型號(hào)的運(yùn)算器功能,或用可編程器件設(shè)計(jì)一個(gè)新的運(yùn)算器均可

行。例

如,在這個(gè)硬件主板上設(shè)計(jì)并實(shí)現(xiàn)一個(gè)全新的8位字長(zhǎng)的計(jì)算機(jī)系統(tǒng),指令格式、尋址方式、

監(jiān)控

程序等全部軟件有關(guān)的內(nèi)容完全重新設(shè)計(jì),運(yùn)算器、控制器、存儲(chǔ)器、總線和接口等硬件也

完全重

新設(shè)計(jì),這是完全可行的,工作量是大一些,但可學(xué)內(nèi)容更豐富。對(duì)大部分院校來(lái)說(shuō),這作

為學(xué)習(xí)

過(guò)計(jì)算機(jī)組成原理課程之后的一個(gè)大的課程設(shè)計(jì)、甚至于是畢業(yè)設(shè)計(jì)的題目可能更合適一

些。

6.軟盤(pán)驅(qū)動(dòng)器的接口與驅(qū)動(dòng)線路實(shí)驗(yàn)

設(shè)計(jì)與實(shí)現(xiàn)軟盤(pán)驅(qū)動(dòng)器的接口與驅(qū)動(dòng)線路,是綜合應(yīng)用有關(guān)軟件與硬件知識(shí)的途經(jīng)之一,可

在教學(xué)實(shí)驗(yàn)計(jì)算機(jī)現(xiàn)有功能的基礎(chǔ)匕增加新的設(shè)備和操作功能,在更大程度上拓展其實(shí)驗(yàn)

性能。

7.使用現(xiàn)場(chǎng)可編程器件(GAL20V8和MACH)完成組合邏輯的或者時(shí)序邏輯的線路實(shí)驗(yàn),對(duì)

于在學(xué)習(xí)本課程之前尚未學(xué)習(xí)過(guò)數(shù)字電路與邏輯設(shè)計(jì)課程的學(xué)生是必要的。

8.通過(guò)使用第2路串行接口和修改監(jiān)控程序,實(shí)現(xiàn)2個(gè)用戶同時(shí)操作同一臺(tái)教學(xué)計(jì)算機(jī)的

多用

戶系統(tǒng)的功能。

以上提出的只是教學(xué)計(jì)算機(jī)系統(tǒng)可以支持(能夠?qū)崿F(xiàn))的、可以開(kāi)設(shè)的實(shí)驗(yàn)項(xiàng)目的思路與可

性,至于更具體地安排哪一些教學(xué)實(shí)驗(yàn)項(xiàng)目,實(shí)驗(yàn)的具體目標(biāo)、內(nèi)容、要求等將在下一節(jié)中

分別詳

細(xì)說(shuō)明,最終還是應(yīng)該依據(jù)各個(gè)單位的教學(xué)安排和總體目標(biāo)由任課教師來(lái)具體選擇落實(shí)。

為減輕教師的備課負(fù)擔(dān),特給出計(jì)算機(jī)組成原理若干基本實(shí)驗(yàn)的操作步驟,以供教師參考,

書(shū)給出的實(shí)驗(yàn)操作步驟不一定是最佳方案,教師可自行設(shè)計(jì)更好的實(shí)驗(yàn)和操作。由于篇幅的

限制,

對(duì)于那些需要教師根據(jù)實(shí)際情況安排的實(shí)驗(yàn)沒(méi)有給出參考步驟,教師可將部分難度較大需

較長(zhǎng)時(shí)

間完成的實(shí)驗(yàn)用作計(jì)算機(jī)組成原理課的課程設(shè)計(jì)題目或作為學(xué)生畢業(yè)設(shè)計(jì)的課題。由于編者

水平所

限,錯(cuò)誤和疏漏之處在所難免,熱忱歡迎廣大教師和同行提出寶貴意見(jiàn)和建議。

10

第二章實(shí)驗(yàn)指導(dǎo)

2.1基礎(chǔ)匯編語(yǔ)言程序設(shè)計(jì)

實(shí)驗(yàn)?zāi)康模?/p>

1.學(xué)習(xí)和了解TEC-XP+教學(xué)實(shí)驗(yàn)系統(tǒng)監(jiān)捽命令的用法;

2.學(xué)習(xí)和了解TEOXP+教學(xué)實(shí)驗(yàn)系統(tǒng)的指令系統(tǒng):

3.學(xué)習(xí)簡(jiǎn)單的TEC-XP+教學(xué)實(shí)驗(yàn)系統(tǒng)匯編程序設(shè)計(jì);

實(shí)驗(yàn)內(nèi)容:

1.學(xué)習(xí)聯(lián)機(jī)使用TEC-XP+教學(xué)實(shí)驗(yàn)系統(tǒng)和仿真終端軟件PCEC.

2.使用監(jiān)控程序的R命令顯示/修改寄存器內(nèi)容、D命令顯示存儲(chǔ)器內(nèi)容、E命令修改存儲(chǔ)

內(nèi)容;

3.使用A命令寫(xiě)一小段匯編程序,U命令反匯編剛輸入的程序,用G命令連續(xù)運(yùn)行該程序,

用T、P命令單步運(yùn)行并觀察程序單步執(zhí)行情況;

實(shí)驗(yàn)要求

在使用該教學(xué)機(jī)之前,應(yīng)先熟悉教學(xué)機(jī)的各個(gè)組成部分,及其使用方法。

實(shí)驗(yàn)步驟

實(shí)驗(yàn)具體操作步驟:

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

2.將TEC-XP+放在實(shí)驗(yàn)臺(tái)上,打開(kāi)實(shí)驗(yàn)箱的蓋子,確定電源處于斷開(kāi)狀態(tài);

3.將黑色的電源線一端接220V交流電源,另一端插在TEC-XP+實(shí)驗(yàn)箱的電源插座里;

4.取出通訊線,將通訊線的9芯插頭接在TEC-XP+實(shí)驗(yàn)箱上的串口“COM1”或“COM2”

上,另一端接到PC機(jī)的串口上;

5.將TEC-XP+實(shí)驗(yàn)系統(tǒng)左下方的六個(gè)黑色的控制機(jī)器運(yùn)行狀態(tài)的開(kāi)關(guān)置于正確的位置,

在這個(gè)實(shí)驗(yàn)中開(kāi)關(guān)應(yīng)置為001100(連續(xù)、內(nèi)存讀指令、組合邏輯、聯(lián)機(jī)、16位、

MACH),控制開(kāi)關(guān)的功能在開(kāi)關(guān)上、下方有標(biāo)識(shí);開(kāi)關(guān)撥向上方表示“1”,撥向下

方表示“0”,“X”表示任意,其它實(shí)驗(yàn)相同;

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

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

“1”或“2”,其它的設(shè)置一般不用改動(dòng),直接回車(chē)即可。(具體步驟附后)

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

TEC-2000CRTMONITOR

Version1.0April2001

ComputerArchitecturLab.,TsinghuaUniversity

ProgrammedbyHeJia

>

11

二、實(shí)驗(yàn)注意事項(xiàng):

1.連接電源線和通訊線前TEC-XP+實(shí)驗(yàn)系統(tǒng)的電源開(kāi)關(guān)一定要處于斷開(kāi)狀態(tài),否則可

能會(huì)對(duì)TEOXP+實(shí)驗(yàn)系統(tǒng)上的芯片和PC機(jī)的串口造成損害:

2.六個(gè)黑色控制開(kāi)關(guān)的功能示意圖如下:

單步手動(dòng)置指令組合邏輯聯(lián)機(jī)8位FPGA

上面

下面

連續(xù)從內(nèi)存讀指令微程序脫機(jī)16位MACH

3.幾種常用的工作方式(開(kāi)關(guān)撥到上方表示為1,撥到下方為0;)

工作方式六個(gè)撥動(dòng)開(kāi)關(guān)

連續(xù)運(yùn)行程序、組合邏輯控制器、聯(lián)機(jī)、16位機(jī)、MACH001100

連續(xù)運(yùn)行程序、微程序控制器、聯(lián)機(jī)、16位機(jī)、MACH000100

單步、手動(dòng)置指令、組合邏輯控制器、聯(lián)機(jī)、16位機(jī)、MACH111100

單步、手動(dòng)置指令、微程序控制器、聯(lián)機(jī)、16位機(jī)、MACH110100

16位機(jī)、脫機(jī)運(yùn)算器實(shí)驗(yàn)、MACH1XX000

連續(xù)運(yùn)行程序、聯(lián)機(jī)、16位機(jī)、FPGA00X101

三、仿真終端軟件的操作步驟:

1.在PC機(jī)上建一個(gè)文件夾TEC-XP+;

2.取出配套的用戶盤(pán),將應(yīng)用程序PCEC16拷貝到用戶機(jī)器硬盤(pán)上該文件夾里;

3.雙擊PCEC16圖標(biāo),出現(xiàn)如圖所示的界面:

4。系統(tǒng)默認(rèn)選擇串口1,用戶可根據(jù)實(shí)際情況選擇串口1或是串口2(這里的串口指的是和

TEC-XP+教學(xué)實(shí)驗(yàn)系統(tǒng)相連的PC機(jī)的串口),按回車(chē)后出現(xiàn)如圖界面:

12

5.圖中是系統(tǒng)設(shè)定的一些傳輸參數(shù),建議用戶不要改動(dòng),直接回車(chē)。按一下“RESET”按鈕

放開(kāi)

后再按一下“START”按鈕,出現(xiàn)界面如圖所示:

6.此時(shí)表明TEC-XP+機(jī)器聯(lián)機(jī)通訊正常。

四.軟件操作注意事項(xiàng):

1.用戶在選擇串口時(shí),選定的是PC機(jī)的串口1或串口2,而不是TEC-XP+實(shí)驗(yàn)系統(tǒng)上的串

口。即選定的是用戶實(shí)驗(yàn)時(shí)通訊線接的PC機(jī)的端口;

2.如果在運(yùn)行到第五步時(shí)沒(méi)有出現(xiàn)應(yīng)該出現(xiàn)的界面,用戶需要檢查是不是打開(kāi)了兩個(gè)軟件

面,若是,關(guān)掉其中一個(gè)再試;

3.有時(shí)若TEC-XP+實(shí)驗(yàn)系統(tǒng)不通訊,也可以重新啟動(dòng)軟件或是重新啟動(dòng)PC再試:

4.在打開(kāi)該應(yīng)用軟件時(shí),其它的同樣會(huì)用到該串口的應(yīng)用軟件要先關(guān)掉。

五.聯(lián)機(jī)通訊失敗自檢:

13

如果上述的硬件和軟件的操作都正確,聯(lián)機(jī)卻依舊失敗,用戶可以進(jìn)行如下測(cè)試:

1.測(cè)試PC機(jī)的串口是否能正常工作,或是換一臺(tái)PC或換同一臺(tái)PC的另個(gè)串口再

試,在換串口時(shí)要將TEC-XP+實(shí)驗(yàn)系統(tǒng)斷電,換完后重新啟動(dòng)實(shí)驗(yàn)系統(tǒng)和軟件;

2.檢查機(jī)器上的元器件插接是否正確(建議用戶對(duì)照能夠正常通訊的實(shí)驗(yàn)系統(tǒng)進(jìn)行詳細(xì)

檢查),有沒(méi)有被學(xué)生動(dòng)過(guò),尤其是擴(kuò)展內(nèi)存和擴(kuò)展I/O接口時(shí),芯片方向是否插

對(duì).,片選信號(hào)有沒(méi)有連接;

3.檢查相應(yīng)的短路子是否連接正確;

4.建議教師預(yù)留一臺(tái)運(yùn)行正常的TEC-XP+實(shí)驗(yàn)系統(tǒng)備用,機(jī)器出問(wèn)題后可以對(duì)照檢查。

六.實(shí)驗(yàn)示例:

1.用R命令查看寄存器內(nèi)容或修改寄存器的內(nèi)容

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

R/;顯示寄存器的內(nèi)容

注:寄存器的內(nèi)容在運(yùn)行程序或執(zhí)行命令后會(huì)發(fā)生變化。

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

RR0Z;修改寄存器R0的內(nèi)容,被修改的寄存器與所賦值之間可以無(wú)空格,也可有

一個(gè)或數(shù)個(gè)空格

主機(jī)顯示:

寄存器原值:_

在該提示符下輸入新的值0036

再用R命令顯示寄存器內(nèi)容,則R0的內(nèi)容變?yōu)?036。

2.用D命令顯示存儲(chǔ)器內(nèi)容

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

D2000/

會(huì)顯示從2000H地址開(kāi)始的連續(xù)128個(gè)字的內(nèi)容;

連續(xù)使用不帶參數(shù)的D命令,起始地址會(huì)自動(dòng)加128(即80H)。

3.用E命令修改存儲(chǔ)器內(nèi)容

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

E2000Z

屏幕顯示:

2000地址單元的原有內(nèi)容:光標(biāo)閃爍等待輸入

輸入0000

依次改變地址單元2001~2005的內(nèi)容為:11112222333344445555

注意:用E命令連續(xù)修改內(nèi)存單元的值時(shí),每修改完一個(gè),按一下空格鍵,系統(tǒng)會(huì)自

動(dòng)給出下一個(gè)內(nèi)存單元的值,等待修改;按回車(chē)鍵則退出E命令。

4.用D命令顯示這幾個(gè)單元的內(nèi)容

D2000Z

可以看到這六個(gè)地址單元的內(nèi)容變?yōu)?00011112222333344445555。

5.用A命令鍵入?段匯編源程序,主要是向累加器送入數(shù)據(jù)和進(jìn)行運(yùn)算,執(zhí)行程序并觀察

運(yùn)行結(jié)果。

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

14

A2000/;表示該程序從2000H(內(nèi)存RAM區(qū)的起始地址)地址開(kāi)始

屏幕將顯示:

2000:

輸入如下形式的程序:

2000:MVRDRO,AAAA;MVRD與R0之間有且只有一個(gè)空格,其他指令相同

2002:MVRDR1,5555

2004:ADDRO,RI

2005:ANDRO,RI

2006:RET;程序的最后一個(gè)語(yǔ)句,必須為RET指令

2007:(直接敲回車(chē)鍵,結(jié)束A命令輸入程序的操作過(guò)程)

若輸入有誤,系統(tǒng)會(huì)給出提示并顯示出錯(cuò)地址,用戶只需在該地址重新輸入正確的指

令即可。

2)用U命令反匯編剛輸入的程序

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

U2000/

在相應(yīng)的地址會(huì)得到輸入的指令及其操作碼

注:連續(xù)使用不帶參數(shù)的U命令時(shí),將從上次反匯編的最后?條語(yǔ)句之后接著繼續(xù)

反匯編。

3)用G命令運(yùn)行前面鍵入的源程序

G2000/

程序運(yùn)行結(jié)束后,可以看到程序的運(yùn)行結(jié)果,屏幕顯示各寄存器的值,其中R0和R1的值

均為5555H,說(shuō)明程序運(yùn)行正確。

4)用P或T命令,單步執(zhí)行這段程序,觀察指令執(zhí)行結(jié)果

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

T2000/

寄存器R0被賦值為AAAAH

T/

寄存器R1被賦值為5555H

TZ

做加法運(yùn)算,和放在RO,R0的值變?yōu)镕FFFH

TZ

做與運(yùn)算,結(jié)果放在RO,R0的值變?yōu)?555H

用P命令執(zhí)行過(guò)程同上。

注:T總是執(zhí)行單條指令,但執(zhí)行P命令時(shí),則把每一個(gè)CALL語(yǔ)句連同被調(diào)用的子程序一

次執(zhí)

行完成。T、P命令每次執(zhí)行后均顯示所有通用寄存器及狀態(tài)寄存器的內(nèi)容,并反匯編出下

一條將要執(zhí)行的指令。

6.舉例編寫(xiě)匯編程序,用“A”命令輸入,運(yùn)行并觀察結(jié)果

1)例1:設(shè)計(jì)一個(gè)小程序,從鍵盤(pán)上接收一個(gè)字符并在屏幕上輸出顯示該字符。

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

15

A2000Z;

屏幕將顯示:

2000:

輸入如下形式的程序:

2000:IN81;判鍵盤(pán)上是否按了一個(gè)鍵

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

2002:SHRR0

2003:JRNC2000;未輸入完則循環(huán)測(cè)試

2004:IN80;接收該字符

2005:OUT80/;在屏幕上輸出顯示字符'6'

2006:RETZ;每個(gè)用戶程序都必須用RET指令結(jié)束

2007:/;(按回車(chē)鍵即結(jié)束輸入過(guò)程)

注:在十六位機(jī)中,基本I/O接口的地址是確定的,數(shù)據(jù)口的地址為80,狀態(tài)口的地

址為81。

<2>用“G”命令運(yùn)行程序

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

G2000/

執(zhí)行上面輸入的程序

光標(biāo)閃爍等待輸入,用戶從鍵盤(pán)鍵入字符后,屏幕會(huì)顯示該字符。

該例建立了一個(gè)從主存2000H地址開(kāi)始的小程序。在這種方式下,所有的數(shù)字都約

定使用16進(jìn)制數(shù),故數(shù)字后不用跟字符H。每個(gè)用戶程序的最后一個(gè)語(yǔ)句一定為RET匯編

語(yǔ)句。因?yàn)楸O(jiān)控程序是選用類(lèi)似子程序調(diào)用方式使實(shí)驗(yàn)者的程序投入運(yùn)行的,用戶程序只

有用RET語(yǔ)句結(jié)束,才能保證程序運(yùn)行結(jié)束時(shí)能正確返回到監(jiān)控程序的斷點(diǎn),保證監(jiān)控程

序能繼續(xù)控制教學(xué)機(jī)的運(yùn)行過(guò)程。

2)例2:設(shè)計(jì)一個(gè)小程序,用次數(shù)控制在終端屏幕上輸出'0'至『9'十個(gè)數(shù)字符。

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

A2020/

屏幕將顯示:

2020:

從地址2020H開(kāi)始輸入下列程序:

2020:MVRDR2,000A;送入輸出字符個(gè)數(shù)

2022:MVRDR0,0030;“0"字符的ASCII碼送寄存器RO

2024:OUT80;輸出保存在R0低位字節(jié)的字符

2025:DECR2;輸出字符個(gè)數(shù)減1

2026:JRZ202E;判10個(gè)字符輸出完否,已完,則轉(zhuǎn)到程序結(jié)束處

2027:PUSHR0;未完,保存R0的值到堆棧中

2028:IN81;查詢接口狀態(tài),判字符串行輸出完成否,

2029:SHRR0;

202AJRNC2028;未完成,則循環(huán)等待

16

202B:P0PR0;已完成,準(zhǔn)備輸出下一字符并從堆棧恢復(fù)R0的值

202C:INCR0;得到下一個(gè)要輸出的字符

202DJR2024;轉(zhuǎn)去輸出字符

202E:RET

202F:/

該程序的執(zhí)行碼放在2020H起始的連續(xù)內(nèi)存區(qū)中。若送入源碼的過(guò)程中有錯(cuò),系

統(tǒng)會(huì)進(jìn)行提示,等待重新輸入正確匯編語(yǔ)句。在輸入過(guò)程中,在應(yīng)輸入語(yǔ)句的位置直

接打回車(chē)則結(jié)束輸入過(guò)程。

<2>用“G”命令運(yùn)行程序

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

G2020Z

執(zhí)行結(jié)果為:

0123456789

思考題:若把IN81,SHRR0,JRNC2028三個(gè)語(yǔ)句換成4個(gè)MVRRR0,R0語(yǔ)句,

該程序執(zhí)行過(guò)程會(huì)出現(xiàn)什么現(xiàn)象?試分析并實(shí)際執(zhí)行一次。

提示:該程序改變這三條語(yǔ)句后,若用T命令單條執(zhí)行,會(huì)依次顯示0~9十個(gè)數(shù)字。若

用G命令運(yùn)行程序,程序執(zhí)行速度快,端口輸出速度慢,這樣就會(huì)跳躍輸出。

在命令行提示符狀態(tài)下輸G2020,屏幕顯示09。

類(lèi)似的,若要求在終端屏幕上輸出‘A'到'Z'共26個(gè)英文字母,應(yīng)如何修改例1中給

出的程序?請(qǐng)驗(yàn)證之。

參考答案:

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

A2100/

屏幕將顯示:2100:

從地址2100H開(kāi)始輸入下列程序:

(2100)MVRDR2,001A;循環(huán)次數(shù)為26

MVRDRO,0041;字符“A”的值

(2104)OUT80;輸出保存在RO低位字節(jié)的字符

DECR2;輸出字符個(gè)數(shù)減1

JRZ210E:判26個(gè)字符輸出完否,已完,則轉(zhuǎn)移到程序結(jié)束處

PUSHR0;未完,保存R0的值到堆棧中

(2108)IN81;查詢接口狀態(tài),判字符串行輸出完成否

SHRR0

JRNC2108;未完成,則循環(huán)等待

POPR0;已完成,準(zhǔn)備輸出下一字符,從堆?;謴?fù)R0的值

INCR0;得到下一個(gè)要輸出的字符

JR2104;轉(zhuǎn)去輸出字符

(210E)RET

用G命令執(zhí)行該程序,屏幕上顯示“A”~“Z”26個(gè)英文字母.

例3:從鍵盤(pán)上連續(xù)打入多個(gè)屬于‘0'到'9'的數(shù)字符并在屏幕上顯示,遇到非數(shù)字字

17

符結(jié)束輸入過(guò)程。

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

A2040/

屏幕將顯示:

2040:

從地址2040H開(kāi)始輸入下列程序:

(2040)MVRDR2,0030;用于判數(shù)字符的下界值

MVRDR3,0039;用于判數(shù)字符的上界值

(2044)IN81;判鍵盤(pán)上是否按了一個(gè)鍵,

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

SHRR0

JRNC2044;沒(méi)有輸入則循環(huán)測(cè)試

1N80;輸入字符到R0

MVRDRI,OOFF

ANDR0,RI;清零R0的高位字節(jié)內(nèi)容

CMPR0,R2;判輸入字符'字符'0'否

JRNC2053;為否,則轉(zhuǎn)到程序結(jié)束處

CMPR3,R0;判輸入字符W字符'9'否

JRNC2053;為否,則轉(zhuǎn)到程序結(jié)束處

OUT80;輸出剛輸入的數(shù)字符

JMPA2044;轉(zhuǎn)去程序前邊2044處等待輸入下--個(gè)字符

(2053)RET

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

G2040/

光標(biāo)閃爍等待鍵盤(pán)輸入,若輸入0-9十個(gè)數(shù)字符,則在屏幕上回顯;若輸入非數(shù)

字符,則屏幕不再顯示該字符,出現(xiàn)命令提示符,等待新命令。

思考題,本程序中為什么不必判別串行口輸出完成否?設(shè)計(jì)打入'A'?'Z'和

'0'?'9'的程序,遇到其它字符結(jié)束輸入過(guò)程。

例子4:計(jì)算1到10的累加和。

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

A2060Z

屏幕將顯示:

2060:

從地址2060H開(kāi)始輸入下列程序:

(2060)MVRDR1.0000;置累加和的初值為0

MVRDR2,000A;最大的加數(shù)

MVRDR3,0000

(2066)INCR3;得到下一個(gè)參加累加的數(shù)

18

ADDR1,R3;累加計(jì)算

CMPR3,R2;判是否累加完

JRNZ2066;未完,開(kāi)始下一輪累加

RET

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

G2060/

運(yùn)行過(guò)后,可以用R命令觀察累加器的內(nèi)容。R1的內(nèi)容為累加和。

結(jié)果為:Rl=0037R2=000AR3=OOOA

例子5:設(shè)計(jì)一個(gè)有讀寫(xiě)內(nèi)存和子程序調(diào)用指令的程序,功能是讀出內(nèi)存中的

字符,將其顯示到顯示器的屏幕上,轉(zhuǎn)換為小寫(xiě)字母后再寫(xiě)回存儲(chǔ)器原存儲(chǔ)區(qū)域。

<1>將被顯示的6個(gè)字符‘A'~'F'送入到內(nèi)存20F0H開(kāi)始的存儲(chǔ)區(qū)域中。

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

E20F0/

屏幕將顯示:

20F0內(nèi)存單元原值:

按下列格式輸入:

20F0內(nèi)存原值:0041內(nèi)存原值:0042內(nèi)存原值:0043

內(nèi)存原值:0044內(nèi)存原值:0045內(nèi)存原值:0046/

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

從地址2080H開(kāi)始輸入下列程序:

(2080)MVRDR3,0006;指定被讀數(shù)據(jù)的個(gè)數(shù)

MVRDR2,20F0;指定被讀、寫(xiě)數(shù)據(jù)內(nèi)存區(qū)首地址

(2084)LDRRRO,[R2];讀內(nèi)存中的一個(gè)字符到R0寄存器

CALA2100;指定子程序地址為2100,調(diào)用子程序,完成顯示、

轉(zhuǎn)換并寫(xiě)回的功能

DECR3:檢查輸出的字符個(gè)數(shù)

JRZ208B;完成輸出則結(jié)束程序的執(zhí)行過(guò)程

INCR2:未完成,修改內(nèi)存地址

JR2084;轉(zhuǎn)移到程序的2086處,循環(huán)執(zhí)行規(guī)定的處理

(208B)RET

從地址2100H開(kāi)始輸入下列程序:

(2100)OUT80:輸出保存在R0寄存器中的字符

MVRDR1,0020

ADDRO,RI;將保存在RO中的大寫(xiě)字母轉(zhuǎn)換為小寫(xiě)字母

STRR[R2],R0;寫(xiě)R0中的字符到內(nèi)存,地址同LOD所用的地址

(2105)IN81;測(cè)試串行接口是否完成輸出過(guò)程

SHRR0

JRNC2105;未完成輸出過(guò)程則循環(huán)測(cè)試

19

RET;結(jié)束子程序執(zhí)行過(guò)程,返回主程序

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

G2080/

屏幕顯示運(yùn)行結(jié)果為:

ABCDEF

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

D20F0Z

20F0H~20F5H內(nèi)存單元的內(nèi)容為:

006100620063006400650066

例子6:設(shè)計(jì)一個(gè)程序在顯示器屏幕上循環(huán)顯示95個(gè)(包括空格字符)可打印字符。

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

A20A0Z

屏幕將顯示:

20A0:

從地址20A0H開(kāi)始輸入下列程序:

A20A0;從內(nèi)存的20A0單元開(kāi)始建立用戶的第一個(gè)程序

20A0:MVRDR1,7E;向寄存器傳送立即數(shù)

20A2:MVRDR0,20;

20A4:OUT80:通過(guò)串行接口輸出R0低位字節(jié)內(nèi)容到顯示器屏幕

20A5:PUSHR0;保存R0寄存器的內(nèi)容到堆棧中

20A6:IN81;讀串行接口的狀態(tài)寄存器的內(nèi)容

20A7:SHRR0:R0寄存器的內(nèi)容右移一位,最低位的值移入標(biāo)志位C

20A8:JRNC20A6;條件轉(zhuǎn)移指令,當(dāng)標(biāo)志位C不是1時(shí)就轉(zhuǎn)到20A6地址

20A9:POPR0:從堆棧中恢復(fù)R0寄存器的原內(nèi)容

20AA:CMPR0,R1;比較兩個(gè)寄存器的內(nèi)容是否相同,相同則標(biāo)志位Z=1

20AB:JRZ20A0;條件轉(zhuǎn)移指令,當(dāng)標(biāo)志位Z為1時(shí)轉(zhuǎn)到200Ao地址

20AC:INCR0;把口0寄存器的內(nèi)容增加1

20AE:JR20A4;無(wú)條件轉(zhuǎn)移指令,一定轉(zhuǎn)移到20A4地址

20AF:RET;子程序返回指令,程序結(jié)束

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

G20A0/

運(yùn)行過(guò)后,可以觀察到顯示器上會(huì)顯示出所有可打印的字符。

上一述例子,都是用監(jiān)控程序的A命令完成輸入源匯編程序的。在涉及到匯編語(yǔ)句標(biāo)號(hào)的地

方,

不能用符號(hào)表示,只能在指令中使用絕對(duì)地址。使用內(nèi)存中的數(shù)據(jù),也由程序員給出數(shù)據(jù)在

內(nèi)存中

的絕對(duì)地址。顯而易見(jiàn),對(duì)這樣的極短小程序矛盾并不突出,但很容易想到,對(duì)很大的程序,

一定

會(huì)有較大的困難。

在用A命令輸入?yún)R編源語(yǔ)句的過(guò)程中,有一定用機(jī)經(jīng)驗(yàn)的人,常常抱怨A命令中未提供適

當(dāng)?shù)?/p>

編輯功能,這并不是設(shè)計(jì)者的疏漏,因?yàn)槲覀儾⒉粶?zhǔn)備在這種操作方式下支持設(shè)計(jì)較長(zhǎng)的

程序,這

種工作應(yīng)轉(zhuǎn)到提供了交叉匯編程序的PC機(jī)上去完成。相反的情況是,輸入上述一些小程序,

用監(jiān)

控程序的A命令完成,往往比用交叉匯編完成更簡(jiǎn)捷。

20

七.教學(xué)計(jì)算機(jī)的WINDOWS界面的集成開(kāi)發(fā)環(huán)境

上述的實(shí)驗(yàn)除了在PCEC仿真終端的界面下完成外,也可以在WINDOWS界面的集成開(kāi)發(fā)環(huán)

境下完成。用戶可以將配套光盤(pán)中的TEC2KIDE的文件夾復(fù)制到硬盤(pán)建立的TEC-XP16的文件

夾中。

然后選中文件夾中的可執(zhí)行文件TEC2KIDE單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“發(fā)送到”

項(xiàng)中的

“桌面快捷方式”一項(xiàng),建立一個(gè)放到桌面上的快捷方式。

1.雙擊

溫馨提示

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

評(píng)論

0/150

提交評(píng)論