計算機組成原理實驗手冊_第1頁
計算機組成原理實驗手冊_第2頁
計算機組成原理實驗手冊_第3頁
計算機組成原理實驗手冊_第4頁
計算機組成原理實驗手冊_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

TEC-2000使用手冊

教學機使用方法簡介

摘要:

一、設置左下方5個開關狀態(tài),確定實驗箱的工作模式

二、選按RESET鍵,再按START鍵教學機開始工作

3.8TEC-2000教學機使用簡要說明

TEC-2000教學機,設置了2個按鍵、5個功能開關、16個數(shù)據(jù)開關、2個12位的微型撥動開關、

3個無鎖按鍵和若干個指示燈、插針、短路子,本節(jié)針對這些器件,對TEC-2000教學機的使用作簡

要說明.

1.教學機左下方的5個撥動開關用來選擇工作方式,從左到右依次為:

1)單步/連續(xù):撥動開關置向上,為單步;置向下,為連續(xù)。單步時,每按一次“START”按

鍵,啟停GAL產(chǎn)成一個單脈沖;連續(xù)時,在復位后,按一次"START”按鍵后,啟停GAL將產(chǎn)生連續(xù)

脈沖。

2)手動置指令/從內(nèi)存讀指令:撥動開關置向上,為手動置指令;置向下,為從內(nèi)存讀指令。

通常情況下,在執(zhí)行監(jiān)控程序或用戶程序時,應將其置為“從內(nèi)存讀指令”;只有在單獨執(zhí)行某一條

指定的指令時,才置為“手動置指令”,這樣,可以通過撥動開關SWH、SWL將指令通過內(nèi)部數(shù)據(jù)總

線送到指令寄存器。.

3)組合邏輯/微程序:撥動開關置向上,為組合邏輯控制器;置向下,為微程序控制器。

4)8位/16位:撥動開關置向上,為8位機;置向下,為16位機。

5)聯(lián)機/脫機:撥動開關置向上,為聯(lián)機;置向下,為脫機。通常情況下,應將其置為“聯(lián)機”;

只有在做運算器脫機實驗時,才置為"脫機"。

下面給出常用的幾種工作方式:(以8位機為例)

工作方式5個撥動開關

8位機、聯(lián)機、連續(xù)運行程序、組合邏輯控制器00111

8位機、聯(lián)機、連續(xù)運行程序、微程序控制器00011

8位機、聯(lián)機、單步、手動置指令、組合邏輯控制器11111

8位機、聯(lián)機、單步、手動置指令、微程序控制器11011

8位機、脫機運算器實驗1XX10

2.教學機左下方有兩個按鍵“RESET”和“START",每次在剛加電或需要重新復位時,應先選

擇工作方式,再按一次“RESET”按鍵,使教學機處于復位狀態(tài);再按一次“START”按鍵后,教

學機開始工作;

3.教學機下方中部的兩個紅色的12位微型撥動開關,在脫機運算器實驗中,用來給運算器提

供24位控制信號,從左到右依次為18~10、SST、SCI,SSH、A3~A0、B3-B0;

4.教學機右下方的16個撥動開關SWH、SWL(8位機只用到了SWH),用來置指令或向內(nèi)部數(shù)

據(jù)總線上置數(shù)據(jù);

5.教學機右側下方的三個無鎖按鍵,在中斷實驗中作為三個中斷源;

6.教學機上的小發(fā)光二極管,用來指示全部的控制信號、地址總線(高8位標有“AddressBus

15-8”、低8位標有MAddressBus7-0”)、內(nèi)部數(shù)據(jù)總線(高8位標有“InterBusH7-0”、低8

位標有“InterBusL7-0”)、指令寄存器(高8位標有“Isn.H.RIR7-IR0"、低8位標有KIsn.L.R

IR7-IR0"),運算器的輸出(高8位標有“Y15-Y8”、低8位標有“Y7-Y0”),以及節(jié)拍(標有“T4T3

T2T1TO”);

7.教學機上的插針,均有字符標識,用來指示在8位、16位、組合邏輯控制器和微程序控制

器狀態(tài)工作時的連接關系。

1)GAL1-GAL7處的插針,標有“ONCOMLOG/OFFMicroP”,表示在做微程序控制器實驗時,應將

其斷開;在做組合邏輯控制器擴展指令實驗時,應將其用短路子短接。

2)GAL2下方5排3個一組的插針,左邊標有“Newlns”,右邊標有“MicroP”,表示在做微

程序控制器實驗時,應將該處每組插針右邊的2個用短路子短接;在做組合邏輯控制器擴展指令實

驗時,應將該處每組插針左邊的2個短接。

3)TIMINGGAL左邊的3個插針,在做中斷實驗時,應將上面的2個短接。.

4)運算器處標有"0FF8Bn70N16Brr的插針,表示如果教學機是作為16位機工作時,應將

其短接,如果教學機是作為8位機工作時,應將其斷開:

5)運算器處標有"ON8YO-Y7/OFF16YO-Y15”的插針,表示如果教學機是作為16位機工作時,

應將其斷開,如果教學機是作為8位機工作時,應將其短接;

6)運算器處標有“CyL”、“CnL”等7對插針,當教學機是作為16位機工作時,其連接方式應

為:

Q-?e-ee-e

G-?G-eo-eG-?

當教學機是作為8位機工作時,其連接方式應為:

OQOQOQ

oooooioo

7)存儲器ROMH和RAML之間的插針,標有“0N8DB/0FF16DB”,表示如果教學機是作為8位機

工作時,應將其短接,如果教學機是作為16位機工作時,應將其斷開;

8)兩片8251之間的插針,標有與其連接信號同名的字符,在做擴展存儲器實驗時,應將其短

接;

9)C0M18251左邊的4個插針,連接方式為:

Micro_8Micro8G

-

O

ComLog_8°gComLog_8個ComLogO

161616

16位機8位組合邏輯8位微程序

10)教學機右下方的2組3個插針,標有“168”,表示如果教學機是作為16位機工作時,

應將每組的上面2個短接,如果教學機是作為8位機工作時,應將每組的下面2個短接;

11)每個ROM插座的兩邊都有5組插針:

標有“VCC/MWR”的3個插針:使用27系列的芯片時,應將上面2個短接;使用28系列的芯

片時,應將下面2個短接。需要注意的是,監(jiān)控程序使用的28c64芯片,為了防止對其誤擦寫,應

將上面2個短接。

標有“AU/MWR"的3個插針:使用28C64,2764、2732芯片時,應將上面2個短接:使用

28C16芯片時,應將下面2個短接.

標有“2764”的2個插針:使用2764芯片時,應將其短接;使用28c64、28C16,2732芯片時,

應將其斷開。

標有“/MRDGND”的3個插針:使用27系列的芯片時,應將下面2個短接;使用28系列的芯

片時,應將上面2個短接.

標有“/CS”的2個插針和其下方的1個圓孔針:教學機作為16位機工作時,應將2個插針短

接,其下方的圓孔針不接線;教學機作為8位機工作時,應將2個插針斷開,其下方圓的孔針應與

標有“MEM/CS”的6個圓孔針中的1個用導線連接.

12)教學機右下方,標有**INTVECTOR"的12列3個一組的插針,用來確定中斷向量的高12

位(左為高位).將每組上面2個短接,表示該位為1;下面2個短接,表示該位為0。

8.教學機上的圓孔針,主要用來為存儲器或COM2口的8251提供片選信號.

1)教學機右下方標有“MEM/CS”的6個圓孔針,對應的內(nèi)存地址空間已標出,當要擴展存儲

器時,將對應地址的圓孔針與擴展存儲器芯片的片選用導線連接。

2)教學機上方中部標有“I/O/CS”的7個圓孔針,對應的I/O口地址空間已標出,當要擴展

COM2口時,將對應地址的圓孔針與COM2口的8251芯片的片選用導線連接.

3)存儲器ExtROMH右邊的標有“/CS”的1個圓孔針,與該片存儲器的片選端相連.當要擴展

該片存儲器時,應將其與標有"MEM/CS”的6個圓孔針中的1個用導線連接。

4)存儲器ROML、ExtROML、RAML,右邊均有1個標有“/CS”的圓孔針(其上方有2個插針),

用法見本節(jié)“插針”使用說明的第11條.

5)COM28251(2片8251中上面一個)的左邊的標有"/CS”的1個圓孔針,與該片存儲器的

片選端相連.當要擴展COM2口時,應將其與標有"I/O/CS1'的7個圓孔針中的1個用導線連接.

6)ROML左邊標有"D7D0”的8個1排的圓孔針,與外部數(shù)據(jù)總線低8位相連,在作擴展

接口(如8255)實驗時,為其提供8位數(shù)據(jù)信號.

7)ROMH上邊標有"A12"、"All"…"A0”的13個圓孔針,與地址總線A12-A0相連,在作

擴展接口(如8255)實驗時,為其提供13位地址信號。

9.教學機右側有5個IC插座,這5個IC插座分別對應14、16、20、24和40芯器件,插座

的每個引腳都有圓孔針引出,方便用戶接線.除40芯的插座外,其它插座的電源、地線已連好。在

40芯的插座的兩側,有6排4個一組的圓孔針,每組圓孔針僅內(nèi)部相連,與其它線路無連糙,提供

給用戶使用。

教學機與PC機的互聯(lián)

摘要:

一、教學機和PC機通過RS-232串行口通信

二、教學機使用其固化在ROM上的監(jiān)控程序監(jiān)控與PC機的通信

三、PC機通過運行仿真終端程序PCEC16與教學機進行通信。即PC使用PCEC程序通過

串行口與教學機的監(jiān)控程序通信,使用PCEC主要可完成以下功能

1、通過PC機向教學機加載程序

2、向監(jiān)制程序發(fā)送調(diào)試命令,使之控制程序在教學機中的運行,可令程序單步運行、

連續(xù)運行等,控制方法參見監(jiān)控程序一節(jié)。

霸盤電受數(shù)據(jù)接收寄存器附>DB

VO數(shù)據(jù)發(fā)送寄存器(80H):□AB

nIOWR

狀態(tài)寄存器(81H)IORD

OUT80H

;檢測前一個數(shù)據(jù)是否發(fā)送完畢

2300H:IN81H

SHRR0

JRNC2300H

OUT80H

2000HIN81H

2001HSHRRO

2002HSHRRO

2003HJRNC2000H

;分析是否有新數(shù)據(jù),若有

;若無,則跳到2000H

IN80H

5SRSYNPETFE。與PETxERxRDY"TXRDY

_?___iA

PC機向教學機發(fā)送數(shù)據(jù)的過程

1.pc機運行的監(jiān)控程序向教學機的8251發(fā)送數(shù)據(jù)

2.8251接收數(shù)據(jù),存儲在其數(shù)據(jù)接收寄存器中

3.教學機CPU運行程序?qū)?251數(shù)據(jù)接收寄存器的數(shù)據(jù)接收到R0

仿真終端程序PCEC

4.1仿真終端程序PCEC

PCEC是用IBM-PC機的匯編語言編制而成的,它可把IBM-PC作為教學機的終端完成數(shù)據(jù)的輸入

及顯示,更重要的是它能實現(xiàn)PC機與教學機之間的文件傳送,支持交叉匯編程序的使用。而且,PCEC

還具有拷貝屏幕功能.

1.PCEC的運行過程

在IBM-PC機上打入程序名PCEC16(8位機為PCEC8)并回車,接下來按程序的提示分別選擇

連接教學機的PC機的串行接口號(1或2)和通訊參數(shù).

程序中默認的通訊參數(shù)為:波特率9600,8位字長,無奇偶校驗和1位停止位,沒有特殊要求

時一般不需修改這些參數(shù)。IBM-PC機作為教學機的終端,可以執(zhí)行教學機監(jiān)控程序的各種命令。

2.文件傳送過程

PC機作為教學機的控制臺之后,按F10鍵,顯示菜單:

0—ReturntoCRTMonitor

1-SendafiletoTEC

2-ReceiveafilefromTEC

3—ReturntoIBM-PCMSDOS

選擇0不執(zhí)行任何操作,直接返回教學機的監(jiān)控狀態(tài);

選擇3退出通訊程序,返回IBM-PC的操作系統(tǒng):

選擇1將執(zhí)行往教學機發(fā)送文件,即把指定的文件從磁盤中取出,通過串行口傳送給教學機

并存儲于該機的主存中.要求:被發(fā)送的文件一定是經(jīng)交叉匯編程序ASEC16(8位機為ASEC8)匯

編后生成的.COD文件,該文件包含有由0RG定義的程序或數(shù)據(jù)的首地址,傳送時就以此地址作為

目標地址;目標地址指向的主存應為RAM區(qū).

選擇2將執(zhí)行從教學機接收文件,并作為文件存于PC的磁盤中。選擇2之后,首先打入IBM-PC

中將用的文件名,就可以把教學機主存中某一區(qū)域中的數(shù)據(jù)傳送給PC機。要求:在執(zhí)行文件傳送之

前,必須先用監(jiān)控命令E在教學機主存2380H單元輸入被傳數(shù)據(jù)在教學機內(nèi)存區(qū)的起始地址,在2381H

單元輸入被傳數(shù)據(jù)字節(jié)長度。

3.PCEC的拷貝屏幕功能

按SHIFT/F10之后,屏幕上顯示的所有信息均存儲于SCR.TMP文件中,直到再次按SHIFT/F10

或退出PCEC.可用于打印屏幕內(nèi)容.

監(jiān)控程序

4.3監(jiān)控程序

TEC-2000教學計算機的操作與使用方法,主要指通過由監(jiān)控程序提供的監(jiān)控命令控制教學計算

機的運行功能.教學計算機處于正常運行狀態(tài)時,它通過串行接口和中斷或PC機仿真終端(在PC

機上運行PCEC)相連接,使用常用的R、A等監(jiān)控命令可以進行聯(lián)機操作。這些監(jiān)控命令,實現(xiàn)類似

于PC機DOS系統(tǒng)下的Debug程序的功能,包括A、U、G、T、R、D、E共7條命令,其格式為一個大

寫的英文字母表示的命令名、一個空格跟命令參數(shù),下面分別介紹。

單條匯編命令A

格式:Aadr

這里的adr表示此處的地址參數(shù),由4位十六進制的數(shù)組成(下同):無此參數(shù)時,系統(tǒng)將取

默認值.

需要注意的是,命令用大、小寫字母均可,命令和地址之間可以不用空格,其它命令用法也是

這樣.

功能:完成單條指令的匯編操作,把產(chǎn)生出來的教學計算機的執(zhí)行代碼放入對應的內(nèi)存單元中.

命令名后的地址將是頭一條匯編語句的執(zhí)行碼的內(nèi)存單元地址。每條語句匯編完成之后,系統(tǒng)將相

應修改地址值,以便正確處理下條匯編語句.在應該輸入?yún)R編語句時,如果不給出匯編語句而直接

回車,則結束A命令的運行過程。

反匯編命令U

格式:Uadr

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

完成之后,己將該命令的默認地址修改好.接下來鍵入不帶參數(shù)的U命令時,將接著從上一次反匯

緘的最后一條語句之后繼續(xù)反匯編,

執(zhí)行程序命令G

格式:Gadr

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

要求每個用戶程序的最后一條指令一定為RET指令.

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

格式:Tadr

功能:從指定的(或PC中的當前地址)開始單條執(zhí)行程序指令。每執(zhí)行一次T將執(zhí)行一條指令。

每次執(zhí)行后均顯示所有通用寄存器及狀態(tài)寄存器的內(nèi)容,并反匯編出下一條將要執(zhí)行的指令.

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

格式:R寄存器名

功能:不帶參數(shù)時,是顯示全部寄存器及狀態(tài)寄存器的值,并反匯編當前PC所指的一條指令,

其中狀態(tài)的顯示格式為:“F=8位二進制數(shù)”,其前六位分別對應于C、Z、V、S、Pl、P0的值。帶參

數(shù)時,是修改相應寄存器的值,如RRO/,再輸入36,表示把16進制的值36賦給R0。

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

格式:Dadr

功能:從指定(或默認的)地址開始顯示內(nèi)存128個存儲字的內(nèi)容.連續(xù)的D命令,保證顯示

內(nèi)容前后正確的連續(xù)關系,即每次執(zhí)行D命令,會將默認的地址值加上128.

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

格式:Eadr

功能:從指定(或默認的)地址逐字節(jié)修改每個內(nèi)存單元的內(nèi)容,要求用戶輸入一個新的值.

如果要連續(xù)修改下面的單元的內(nèi)容,則應在輸入新值后按空格鍵.若用戶敲了回車鍵,則會結束E

命令的執(zhí)行過程.

使用上述7條命令,就可以完成一些所期望的操作。

匯編編程

在仿真終端下,使用監(jiān)控程序提供的A命令逐行編程

例1、

例1:在顯示器屏幕上循環(huán)顯示95個(包括空格字符)可打印字符的程序。

A2000;從內(nèi)存的2000單元開始建立用戶的第一個程序

2000MVRDRI.7E;向寄存器傳送直接數(shù)

2002MVRDR0,20

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

2005PUSHRO;保存R0寄存器的內(nèi)容到堆棧中

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

2007SHRRO;R0寄存器的內(nèi)容右移一位,最低位的值移入標志位C

2008JRNC2006;條件轉移指令,當標志位C不是1時就轉移到2006地址

2009POPRO;從堆棧中恢復R0寄存器的原內(nèi)容

200ACMPR0,RI;比較兩個寄存器的內(nèi)容是否相同,相同則置標志位z=l

200BJRZ2000;條件轉移指令,當標志位Z為1時就轉移到2000地址

200CINCR0;把R0寄存器的內(nèi)容增加1

200DJR2004;無條件轉移指令,一定轉移到2004地址

200ERET;子程序返回指令,教學計算機的用戶程序都必須用RET指

;令結束

例2、

例2:下面的程序功能是首先把字符“A”?“F”寫到內(nèi)存的2031?2036幾個單元,之

后再讀出來并顯示到屏幕上。

A2020

2020MVRDR3,06;給出寫內(nèi)存操作的次數(shù)

2022MVRDR2,2O3O

2024MVRDRI,40

2026INCR2;給出寫內(nèi)存操作的內(nèi)存地址

2027INCRI;給出寫內(nèi)存操作的數(shù)據(jù)內(nèi)容

2028STRR[R2],R1;寫寄存器R1的內(nèi)容到由R2指定地址的內(nèi)存單元中

2029LDRRR0,[R2];讀出內(nèi)存單元的數(shù)據(jù)到R0寄存器

2O2AOUT80

202BIN81

2O2CSHRRO

2O2DJRNC202B

202EDECR3;檢查6次寫內(nèi)存操作是否完成

202FJRNZ2026;未完則開始下一次寫內(nèi)存操作

2030RET;程序結束

例3、

例3:下面程序的功能是從鍵盤輸入字符并送到顯示器屏幕顯示,其中使用了子程序

調(diào)用指令和轉移指令,在子程序中,可以完成變英文大寫字母為小寫字母并將其顯示

出來。

A2040

2040IN81;此處的4個語句檢查有無鍵盤輸入

2041SHRR0

2042SHRRO

2043JRNC2040

2044IN80;把從鍵盤輸入的一個字符傳送到R0低位字節(jié)

2045OUT80;輸出R0低位字節(jié)內(nèi)容到顯示器屏幕

2046PUSHR0

2047IN81

2048SHRR0

2049JRNC2047

204APOPR0

204BCALA2050;調(diào)用于程序,子程序的入口地址為2050

204DJMPA2040;轉移指令,轉移地址為2040

204FRET

;以下是一個子程序

2050MVRDRI,20

2052ADDR0,RI;修改輸入的字符的編碼,變大寫字母為小寫字母

2053OUT80;把修改過的字符輸出到顯示器屏幕

2054RET;子程序返回指令,每個子程序都應該用RET結束

小結

一、每個程序最終必需以RET指令結束,使得程序結束后返回去運行監(jiān)控程序

二、8OH、81H兩端口分別是串行通信控制器8251的數(shù)據(jù)端口與狀態(tài)端口,對它們進行讀

寫能達到以下功能

1、讀80H端口(IN80H),可使教學機監(jiān)控程序向PCEC讀取用戶在PC鍵盤上按下按

鍵對應的ASCH碼,存儲到R0寄存器

2、寫80H端口(OUT8OH),可使教學機監(jiān)控程序?qū)0的值發(fā)送給PCEC,PCEC將接

收到的值當做ASCII碼,將相應字符顯示在PC機顯示器上

3、讀狀態(tài)端口(IN81H),可得到串行通信控制器8251的狀態(tài)字,其D0位用于指示

數(shù)據(jù)是否發(fā)送就緒(D0=l發(fā)送就緒),D1位用于指示數(shù)據(jù)是否接收就緒(Dl=l接收就緒),

這里的8251是教學機COMI對應的那片8251,發(fā)送和接收指教學機的發(fā)送接收。

使用匯編源程序編程

摘要

一、在PC機上用文本編輯器編寫教學機匯編源程序

二、在PC機上用交叉匯編程序ASEC編譯教學機源程序,生成教學機可執(zhí)行代碼

二、通過PCEC將教學機可執(zhí)行代碼加載到教學機內(nèi)存中

交叉匯編程序

4.2交叉匯編程序ASEC

當教學計算機系統(tǒng)把PC機用作自己的仿真終端時,PC機除了提供計算機終端的全部操作功能

外,實驗人員還可以使用在PC機上提供的一個交叉匯編程序,它用PC機指令設計,在PC機上運行,

能對教學計算機的匯編語言的程序完成匯編,并生成教學計算機的指令代碼.當把匯編生成的代碼

傳送到教學計算機指定內(nèi)存后,就可以予以執(zhí)行.

這種編程方法的好處主要體現(xiàn)在兩個方面:一是充分利用了IBM/PC機的已有功能,如較強的編

輯功能,好用的文件系統(tǒng)和磁盤設備等;二是我們在PC機上,用IBM/PC的指令系統(tǒng)為教學機設計

了一個很好的交叉匯編程序ASEC。它是一個符號匯編程序,不僅能對教學機已實現(xiàn)的指令進行匯編,

而且還提供了非常有用的偽指令,并允許在匯編語句中使用語句標號,這就能有效地避免直接使用

絕對地址值(在類似DEBUG方式下是不支持的).這對在教學計算機系統(tǒng)上開發(fā)運行較大的匯編程序

是很必要的.最明顯的例子是開發(fā)教學計算機系統(tǒng)本身的監(jiān)控程序,若沒有在PC機上實現(xiàn)的交叉匯

編程序的支持將是很困難的.

[交叉匯編程序使用說明]

1.ASEC提供的功能

1)交叉匯編程序支持如下偽指令:

?Orgexpression定義程序的首地址為expression的值:

?VariableEqu(=)expression定義變量Variable的值為expression:

?{address}dwexpression{,expression}

以address為首地址存儲expression,這里的expression還包括用單號擴起來的字符串,例

如:labDW3,5,'String','China';

?Blkn在內(nèi)存中保留n個空字節(jié);

?End程序的結束標志.

2)交叉匯編程序支持用戶使用數(shù)值的10進制,16進制表示,缺省為10進制,例如30,30D,

30d均表示是十進制整數(shù)30,而30h,30H,OAlh則表示16進制整數(shù).對于表達式,可以

支持+、-、*、/等四則運算,但表達式中不能含有括號,運算次序一律從左至右,不支持

運算符的優(yōu)先級.

3)相對轉移指令的轉移范圍在-128~127字節(jié)之間,即轉移目標地址與當前地址之差應在這

個范圍,否則要使用絕對轉移指令。

2.用戶源程序

1)用戶的源程序必須以ORG開始,以END結尾。地址范圍是。?65535(字節(jié)單位).用戶也

可以在程序內(nèi)部插入多個ORG,用來指定下面新程序段的起始地址,而中間的空余存儲單元將在匯

編過程中自動填FF.

2)用戶編寫的程序可以包括擴展指令。擴展指令為了能被交叉匯編程序識別,必須按照固定

的格式在擴展指令的說明文件ins.ext中說明。在擴展指令的說明文件ins.ext中,每個擴展指令

占一行,同時要符合如下的格式:

指令名稱指令的操作碼指令的種類

三個字段之間用空格或TAB字符隔開,根據(jù)2.1節(jié)給出的擴展指令和下面給出的指令類型,可以

寫出ins.ext文件為:

ADC001000001

SBB001000011

CALR1110000022

JMPR0110000022

NOT0010110123

ASR0010110023

RCL0010101023

RCR0010101123

CLC011011003

STC011011013

EI011011103

DI011011113

IRET111011113

LDRA1110010041

STRA1110011141

LDRX1110010142

STRX1110011042

JRS011001005

JRNS011001015

其中指令名稱不能與已有的指令名沖突,而且第一位字符不能取數(shù)字;操作碼字段要求以二

進制形式輸入;指令的種類必須按照后面給出的基本、擴展指令類型表中的分類標明,用戶在確

定擴展指令所屬的類別時,應從字節(jié)數(shù),操作數(shù)的個數(shù)及類型,寄存器或者立即數(shù)的位置幾個方

面考慮,必須與規(guī)定的格式一致。不在上述八類中的指令類型,目前程序不能識別。

除去基本指令所使用的編碼,擴展指令可以使用的編碼格式要求IRH5=E

3)基本、擴展指令類型表:

指令分類及名稱指令格式指令舉例

一、雙操作數(shù)單字節(jié)指令

OPDR,SRADDDR,SR

類號:1

三、單操作數(shù)單字指令

1.類號:21OPBYTEOUTPORT

2.類號:22OPSRCALRSR

3.類號:23OPDRINCDR

三、無操作數(shù)單字指令

OPPSHF

類號:3

四、雙操作數(shù)雙字節(jié)指令

MVRDDR,DATA

1.類號:41OPDR/DATALDRADR,[ADR]

STRA[ADR],SR

LDRXDR,DATA[SR]

2.類號:42OPDR<->DATA[SR]

STRXDR,DATA[SR]

五、單操作數(shù)單字轉移指令

OPADDRJRADDR(8位)

類號:5

六、單操作數(shù)雙字轉移指令

OPADDRJMPAADDR(16位)

類號:6

3.ASEC的運行過程

1)在DOS命令行提示符下輸入“ASEC16源程序文件名(機器碼文件名}"(8位機為ASEC8).

其中源程序文件保存的是根據(jù)16位機指令編寫的源程序,該文件可以取任意的擴展名,默認的

擴展名是.ASM,即用戶沒有輸入文件的擴展名時,程序會使用.asm作為文件的擴展名.

機器碼文件指的是交叉匯編程序?qū)υ闯绦騾R編后,生成的機器代碼存入的二進制文件。這一輸

入?yún)?shù)是可選的,當用戶沒有輸入機器碼文件名時,該文件將與源程序文件同名,它的擴展名固定

為.COD.

2)如果用戶輸入的上述文件名合法,接下來將要求用戶輸入擴展指令表所在的文件名。用戶

在輸入該文件名時,需要給出完整的名字。如果用戶沒有擴展指令,則可以直接按下回車鍵.

3)擴展指令裝入成功以后,程序?qū)⒁笥脩糁付斜砦募拿Q,該文件將以規(guī)范的格式將

源程序以及使用的標號,變量,存儲地址詳細的記錄下來。如果用戶沒有指定文件名稱而直接按下

回車鍵,在匯編的過程中將不產(chǎn)生列表文件;如果用戶輸入"CON",則只在標準輸出設備產(chǎn)生列表

文件;在用戶指定文件名的情況下,將在當前目錄產(chǎn)生列表文件,默認的擴展名是.LST.

4)交叉匯編程序在執(zhí)行的過程中,對可能遇到的各種情況進行了詳細的判斷和檢查,對各種

錯誤情況都能給出提示信息,幫助用戶順利完成源程序的匯編工作。

教學機編程源文件格式示例

例1、

org2000h

mvrdr0,44h

out80h

jr2000h

ret

end

例2、

ORG2000H

MVRDR2,0AH

MVRDR0,30H

OUT80H

DECR2

JRZ200EH

PUSHRO

IN81H

SHRRO

JRNC2008H

POPRO

INCRO

JR2004H

RET

END

教學機匯編編程小結

1、可使用標號做跳轉,標號字符數(shù)不可太長(8位?)

org2000h

test:

mvrdr0,44h

out80h

jrtest

ret

end

2、可使用標號指示子程序入口,標號字符數(shù)不可太長(8位?)

org2000h

mvrdr0,44h

out80h

calaxx

xx:

pushrO

ret

end

mvrdR14,1234h

org2000h

mvrdr0,44h

out80h;將RO保存的ASCII字符顯示在PC機的屏幕上

jr2000h

ret

end

0000?FFFFH

0000~1FFFH:ROM(8K字*16位),保存監(jiān)控程序

2000?27FFH:RAM(2K字*16位)

2000?25FFH:1.5K字

2600-27FFH:0.5k字,監(jiān)控程序?qū)S?/p>

實驗一、TEC2000匯編語言程序設計

實驗目的

1.學習和了解TEC-2000十六位機監(jiān)控命令的用法;(參考實驗指導書P116)

2.學習和了解TEC-2000十六位機的指令系統(tǒng);

3.學習TEC-2000十六位機匯編程序設計。

實驗設備

TEC-2000教學機和PC機各一臺

實驗內(nèi)容

1.熟悉教學機的組成,完成教學機VPC機互聯(lián)

2.熟悉監(jiān)控命令的使用

3.匯編程序設計

a)設計一個小程序,從鍵盤上接收一個字符并在屏幕上輸出顯示該字符。

b)打印fibonnacii數(shù)列的前20個值:1,1,2,3,5,,用二進制形式打印,值與值之間

用逗號隔開

23231

預習要求

1.熟悉教學機的基本指令集

2.實驗前仔細閱讀實驗指導書P112T20,或者是閱讀本文檔的TEC2000使用手冊(權威)

3.提交實驗預習報告,其中給出“實驗報告格式”一~四的內(nèi)容。

實驗報告格式

一、實驗目的

二、實驗設備

三、實驗內(nèi)容

四、匯編程序設計

a)程序一源代碼

b)程序二流程圖及源代碼

五、實驗小結

實驗參考

一、教學機與PC機互聯(lián)

1.關閉電源,將大板上的C0M1口與PC機的串口相連;

2.接通電源,在PC機上運行PCEC.EXE文件,設置所用PC機的串口為“1”或“2”,

其它的設置一般不用改動,直接回車即可;

3.置控制開關為00101(連續(xù)、內(nèi)存讀指令、組合邏輯、16位、聯(lián)機),開關撥向上方

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

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

TEC-2000CRTMONITOR

Version2.02001.10

ComputerArchitectureLab..TsinghuaUniversity

CopyrightJasonHe

>

二、監(jiān)控命令的使用

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

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

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

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

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

RR0/;修改寄存器R0的內(nèi)容,被修改的寄存器與所賦值之間可

以無空格,也可有一個或數(shù)個空格

主機顯示:

寄存器原值:XXXX

在后面輸入新的值0036

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

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

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

D2000/

會顯示從2000H地址開始的連續(xù)120個字的內(nèi)容;

連續(xù)使用不帶參數(shù)的D命令,起始地址會自動加120(即78H)。

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

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

E2000/

屏幕顯示:

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

輸入0000

(提示快捷使用方法:用E命令連續(xù)修改內(nèi)存單元的值時,每修改完一個,按一下

空格鍵,系統(tǒng)會自動給出下一個內(nèi)存單元的值,等待修改;按回車鍵則退出E命令)

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

用D命令顯示這兒個單元的內(nèi)容

D2000/

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

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

觀察運行結果。

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

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

屏幕將顯示:

2000:

輸入如下形式的程序:

2000:MVRDRO,AAAA;MVRD與R0之間只有一個空格,其他指

令相同

2002:MVRDR1,5555

2004:ADDRO,RI

2005:ANDRO,RI

2006:RET;程序的最后一個語句,必須為RET指令

2007:;直接敲回車鍵,結束A命令輸入程序的

操作過程

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

確的指令即可。

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

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

U2000/

在相應的地址會得到輸入的指令及其操作碼。

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

后繼續(xù)反匯編。

3)用G命令運行前面剛鍵入的源程序

G2000/

程序運行結束后,觀察程序的運行結果,記錄寄存器R0和R1的值。

R0=?

Rl=?

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

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

T2000/

寄存器R0=?

TZ

寄存器Rl=?

TZ

寄存器R0=?

T/

寄存器R0=?

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

注:T總是執(zhí)行單條指令,但執(zhí)行P命令時,則把每一個CALL語句連同被調(diào)

用的子程序一次執(zhí)行完成。T、P命令每次執(zhí)行后均顯示所有通用寄存器及狀態(tài)寄存

器的內(nèi)容,并反匯編出下一條將要執(zhí)行的指令。

實驗二、脫機運算器部件實驗

參見實驗指導書P128的6.2“脫機運算器部件實驗”,對其做如下修改

3.實驗內(nèi)容

1)撥動開關置為IxxOO

2)D1取為0101H,D2取為1010H

實驗預習報告:

填表6-1的ALU控制信號

6.2脫機運算器部件實驗

1.實驗目的

深入了解Am2901運算器的功能與具體用法.掌握2片(16位為4片)Am2901的級

聯(lián)方式?深入了解運算器部件的組成、設計、控制與使用等諸項知識.

2.實驗說明

脫機運算器實驗.是指讓運算器從教學計算機整機中脫離出來.此時.它的全部控制

與操作均需通過兩個12位的微型開關來完成,這就談不上執(zhí)行指令,只能通過開關、按鍵

控制教學機的運算器完成指定的運算功能.并通過指示燈觀察運算結果。

3.實驗內(nèi)容

<1)將教學機左下方的5個撥動開關置為1XX1O(單步、8位、脫機);先按一下

“RESET”按鍵.再按一下“START”按鍵.進行初始化。

(2)接下來.按表6-1所列的操作在8位機上進行運算器脫機實驗.設計用到的24位

控制信號的取值,并將結果填入表中:其中D1取為Olh.D2取為10h;通過兩個12位的

微型撥動開關向運算器提供控制信號.通過8位數(shù)據(jù)開關向運算器提供數(shù)據(jù)(高8位的數(shù)

據(jù)開關);通過指示燈觀察運算結果及狀態(tài)標志。

4.實驗要求

<1)實驗之前認真預習?寫出預習報告,包括操作步驟.實驗過程所用數(shù)據(jù)和運行結

果等?否則實驗效率會很低,所學到的內(nèi)容也會大受影響:

(2)實驗過程當中.要仔細進行.防止損壞設備,分析可能遇到的各種現(xiàn)象,判斷結果

是否正確.記錄運行結果;

(3)實會之后,認真寫出實驗報告,包括對遇到的各種現(xiàn)象的分析.實驗步驟和實驗

結果?自己在這次實驗中的心得體會與收獲。

表6-1運算器實驗控制信號與執(zhí)行結果

壓START前壓START后

運算LTABSCISSHSST

ALU輸出czvsALU輸出czvs

*D1+O-R0

*D2+0fR1

RO+RjRO

RO-R1-RO

Rl-ROfRI

ROVR1-*RO

ROARI-RO

RO甘R—RO

(RoVR1)-*RO

2*ROfRO

RO/2-*RO

注:用v標記的運算,即表中前2行內(nèi)容表示DI、D,的數(shù)據(jù)是由撥動開關SWH給出的.

操作參考

3.教學機下方中部的兩個紅色的12位微型撥動開關,在脫機運算器實驗中,用來給運算器提

供24位控制信號,從左到右依次為18~10、SST,SCI,SSH、A3~A0、B3-B0;

4.教學機右下方的16個撥動開關SWH、SWL(8位機只用到了SWH),用來置指令或向內(nèi)部數(shù)

據(jù)總線上置數(shù)據(jù);

實驗三、微程序控制器

實驗目的

通過設計一條指令的微程序,深入理解微程序控制器的工作原理。

實驗設備

運行TEC-2000模擬軟件的PC機。

實驗內(nèi)容

為TEC-2000新增一條指令,其功能為將兩個內(nèi)存單元的內(nèi)容相加,結果寫回其中一個內(nèi)存

單元。

預習要求

1、說明上述指令的指令格式并為其分配指令操作碼(不能與基本、擴展指令集中的任一指

令操作碼相同)

2、給出上述指令的執(zhí)行周期微程序編碼,并為其中的每一條微指令分配微地址

3、說明實現(xiàn)上述指令應修改MAPROM存儲單元的地址和值。

實驗參考:

一、教學計算機微程序控制器模擬程序使用說明

在安裝好TEC-2000教學計算機軟件系統(tǒng)的PC機上,單擊“開始”菜單,選擇“程序”,

在彈出的列表中選擇“TEC-2000教學軟件”,在右邊的菜單中選擇“輔助設計與仿真”,然

后在列表中選擇“仿真”,打開“16位機微程序”。計算機微程序仿真軟件并啟動運行,將

出現(xiàn)圖2-1所示界面。

圖2-1TEC-2000微程序模擬主界面

界面的最左邊是功能區(qū),設置了程序的主要功能按鈕,下面將介紹這些按鈕的功能和使

用方法。中間部分是用戶程序區(qū),用做調(diào)試的用戶程序?qū)⒃诔绦騾^(qū)中顯示,供調(diào)試過程中查

看。右邊的上半部分是輸出窗口,可看成是TEC-2000教學計算機的顯示器,按下“顯示

ROMS內(nèi)容”按鈕后,將被切換為顯示各ROM的二進制數(shù)值。下半部分是模擬程序的輸出,

主要包括當前運行程序的指令字、程序狀態(tài)字、各通用寄存器的值,以及ALU的輸出結果,

這些,可供用戶調(diào)試程序時觀察程序運行的結果。

使用模擬程序主要是對用戶設計的微程序方案進行仿真運行,以檢驗方案的正確性。因

此,首先要裝入用戶設計的微程序,它采用的是和真正要在硬件的控制存儲器上燒制的格式,

即全部微程序方案由MAPROM、ROM1-ROM7共8個二進制文件組成。這些文件可用

UltraEdit軟件編寫,也可自行編制程序完成由文本格式到二進制數(shù)據(jù)格式的轉換后生成。

準備好MAPROM、ROM1~ROM7共8個二進制文件后,將它們存放在一個文件目錄下。

然后,按圖5-1中界面上的“導入各ROM文件”按鈕,在圖5-2所示界面上選定這8個文

件(文件名必須按照上述名稱給定,并以.bin為文件后綴),按“打開”按鈕,將裝入用戶

設計的微程序方案。以后的操作,均是對本方案的各種機器語言程序運行過程的模擬。

-!□!X|

UR

|-JM?S三]->saOb

?]MAPROM

jjjjroml

文件名OP|~

文件交Rc:kn*

ARHeid

yFc(

P-FRO0000RI40000SPR4)|00

溫馨提示

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

評論

0/150

提交評論