




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉(cāng)儲(chǔ)管理人員培訓(xùn)課程內(nèi)容中試題及答案
- 新興市場(chǎng)物流發(fā)展機(jī)遇及試題及答案
- 2024年證券計(jì)量經(jīng)濟(jì)試題及答案
- 預(yù)算問(wèn)題應(yīng)對(duì)策略試題及答案
- 2024年注冊(cè)會(huì)計(jì)師考試最佳策略與試題及答案
- 員工保密合同示例
- 土建工程施工合同標(biāo)準(zhǔn)文本
- 人力資源服務(wù)外包合同樣本
- 二手設(shè)備買(mǎi)賣(mài)合同模板
- 華為公司人才管理理念
- 湖北大學(xué)知行學(xué)院《教育學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- XXX醫(yī)院CT檢查報(bào)告單模板可編輯范本
- DB3502-T 141-2024 城市道路開(kāi)口設(shè)置指引
- 工廠車(chē)間生產(chǎn)工藝培訓(xùn)
- DB4202T 39-2024 城市橋梁與隧道運(yùn)行監(jiān)測(cè)技術(shù)規(guī)范
- 器官捐獻(xiàn)合作協(xié)議書(shū)范文模板
- 異常子宮出血護(hù)理
- 《馬克思主義發(fā)展史》題集
- 政府、辦公樓物業(yè)管理服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 因式分解十字相乘法練習(xí)200題及答案
- 人教版九年級(jí)上冊(cè)音樂(lè) 2.2大海與辛巴達(dá)的船 教案
評(píng)論
0/150
提交評(píng)論