




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、計(jì)算機(jī)組成原理實(shí)驗(yàn)報(bào)告計(jì)算機(jī)組成原理實(shí)驗(yàn)報(bào)告一、 實(shí)驗(yàn)計(jì)算機(jī)的組成1、 軟件組成軟件系統(tǒng)的組成和實(shí)現(xiàn)功能:軟件:解釋 BASIC語言匯編語言支持監(jiān)控程序(指令)級模擬教學(xué)機(jī)模擬:運(yùn)算器、控制器模擬(微程序級或硬連線控制器級模擬)主存儲器模擬,總線、接口模擬輸入設(shè)備/ 輸出設(shè)備模擬運(yùn)行環(huán)境:PC機(jī),Windows系統(tǒng)從計(jì)算機(jī)組成原理課程教學(xué)實(shí)驗(yàn)的角度看,該計(jì)算機(jī)軟件系統(tǒng)組成也是完整的,支持簡單的高級語言BASIC(包括浮點(diǎn)運(yùn)算指令和基本函數(shù)運(yùn)算功能),匯編語言(支持基本偽指令功能)和二進(jìn)制的機(jī)器語言,配有自己的監(jiān)控程序,以及PC機(jī)仿真終端程序等。2、 硬件組成硬件系統(tǒng)的組成和實(shí)現(xiàn)功能:軟件:解釋
2、 BASIC 語言匯編語言支持監(jiān)控程序硬件:運(yùn)算器,控制器(多種實(shí)現(xiàn):微程序或硬連線控制器,中小規(guī)模器件或FPGA器件實(shí)現(xiàn))主存儲器,總線,接口輸入設(shè)備,輸出設(shè)備硬件與電路:邏輯器件和設(shè)備由以上可知,該計(jì)算機(jī)硬件系統(tǒng)組成中,功能部件是完整齊備的,運(yùn)算器、控制器、存儲器、輸入輸出接口、計(jì)算機(jī)總線等配備齊全,還可以接通PC機(jī)仿真終端執(zhí)行輸入輸出操作,同時(shí)實(shí)現(xiàn)了微程序和硬連線兩種方案控制器。從CPU的具體設(shè)計(jì)和實(shí)現(xiàn)技術(shù)來說,既支持用中小集成度器件實(shí)現(xiàn)CPU的方案,也支持選用高集成度的FPGA門陣列實(shí)現(xiàn)CPU的方案,體現(xiàn)了CPU系統(tǒng)設(shè)計(jì)的最新水平。運(yùn)算器與控制器1)控制器控制器概述:控制器分別用微程序
3、方式與硬布線方式兩種方案實(shí)現(xiàn), 實(shí)驗(yàn)者可以方便地選擇使用其中任何一種。這能方便地比較兩種控制器各自的優(yōu)缺點(diǎn), 和設(shè)計(jì)過程的相同的、不同的步驟與方法。在選用器件時(shí), 微程序方案中選用了美國AMD公司的微程序定序器Am2910芯片, 保證微程序設(shè)計(jì)的規(guī)范與實(shí)用性;控存體選用唯讀存儲器(ROM)芯片, 通過對該ROM的編程寫入方式支持動態(tài)微程序設(shè)計(jì)。硬布線方案中, 節(jié)拍邏輯與時(shí)序控制信號形成部件(組合邏輯線路)選用了GAL20V8 現(xiàn)場可編程器件和Macro Array CMOS High density(簡寫為MACH)器件, 這對簡化控制器的邏輯設(shè)計(jì)與實(shí)現(xiàn)至關(guān)重要,也有利于進(jìn)一步掌握數(shù)字系統(tǒng)設(shè)計(jì)
4、自動化和邏輯模擬的新知識??刂破鞑考敿?xì)介紹:組合邏輯的控制器主要由程序計(jì)數(shù)器PC(選用運(yùn)算器內(nèi)的一個(gè)通用累加器實(shí)現(xiàn),未明顯表示的圖中)、指令寄存器IR、節(jié)拍發(fā)生器Timing、和時(shí)序控制信號產(chǎn)生部件MACH435(或MACH5)芯片等組成。硬布線控制器(又稱組合邏輯)的主體部分由程序計(jì)數(shù)器PC(16位長度,是Am2901的R5),指令寄存器IR(16位長度),節(jié)拍發(fā)生器(4位觸發(fā)器的節(jié)拍狀態(tài))和時(shí)序控制信號形成部件(1片100條引腳的現(xiàn)場可編程的CPLD器件)4部分組成。程序計(jì)數(shù)器PC用于保存下一條將要執(zhí)行的指令在內(nèi)存中的單元地址,有增量功能(PC+1PC),并可以接受新的指令地址。在到內(nèi)存
5、讀取指令之前,需要把PC中的內(nèi)容送到內(nèi)存地址寄存器,給出被讀指令在內(nèi)存中的單元地址。在教學(xué)計(jì)算機(jī)中,程序計(jì)數(shù)器PC選用運(yùn)算器內(nèi)部的一個(gè)16位的累加器實(shí)現(xiàn)。指令寄存器IR用于保存當(dāng)前正在執(zhí)行的指令的主要內(nèi)容,在讀取指令的周期接收從內(nèi)存中讀出來的一條指令,以便提供本指令的操作碼和使用的數(shù)據(jù)或者數(shù)據(jù)地址。在教學(xué)計(jì)算機(jī)中,指令寄存器IR選用兩片由8位的D觸發(fā)器構(gòu)成的寄存器實(shí)現(xiàn)。節(jié)拍發(fā)生器Timing用于使用幾個(gè)觸發(fā)器的不同的編碼狀態(tài)來區(qū)分和標(biāo)示指令的執(zhí)行步驟,指令執(zhí)行步驟的銜接是通過節(jié)拍發(fā)生器的編碼狀態(tài)轉(zhuǎn)換完成的。在教學(xué)計(jì)算機(jī)中,節(jié)拍發(fā)生器Timing選用一片簡單PLD器件GAL20V8芯片實(shí)現(xiàn)。時(shí)序
6、控制信號產(chǎn)生部件用于產(chǎn)生并提供每一條指令的每一個(gè)執(zhí)行步驟使用的全部時(shí)序控制信號,它要依據(jù)指令寄存器的操作碼和節(jié)拍發(fā)生器的狀態(tài)編碼信號,可能還有運(yùn)算器運(yùn)算產(chǎn)生的標(biāo)志位信號(C、Z、S)等,通過由與_或兩級門電路產(chǎn)生并提供出一條指令的一個(gè)執(zhí)行步驟使用的全部控制信號,這些信號可以直接送到每個(gè)被控制對象,或者經(jīng)過譯碼器送到被控制對象。在教學(xué)計(jì)算機(jī)中,時(shí)序控制信號產(chǎn)生部件選用一片有100個(gè)引腳的 CPLD 器件實(shí)現(xiàn),兩個(gè)譯碼器選用三八譯碼器 74LS138 芯片實(shí)現(xiàn)。教學(xué)計(jì)算機(jī)的硬布線控制器組成框圖2)運(yùn)算器運(yùn)算器概述:運(yùn)算器中配置了兩組獨(dú)立的8位字長的運(yùn)算器,各自由2片位片結(jié)構(gòu)的運(yùn)算器器件組成;還有四
7、位的狀態(tài)標(biāo)志寄存器和教學(xué)實(shí)驗(yàn)所需的相關(guān)邏輯部件。全部的算術(shù)與邏輯運(yùn)算均在這里完成; 還完成幾種尋址方式的實(shí)際地址計(jì)算; 它也是主要的數(shù)據(jù)、地址傳送的通路。要特別說明的一點(diǎn)是, 堆棧指針SP和控制器中的程序計(jì)數(shù)器PC,都是用這里的幾個(gè)通用寄存器來實(shí)現(xiàn)的, 以節(jié)省器件與簡化實(shí)驗(yàn)機(jī)的實(shí)現(xiàn)。運(yùn)算器部件詳細(xì)介紹:教學(xué)計(jì)算機(jī)的運(yùn)算器部件的主體由4片4位的運(yùn)算器芯片Am2901彼此串接構(gòu)成。它輸出16位的數(shù)據(jù)運(yùn)算的結(jié)果(用Y表示)和4個(gè)結(jié)果特征位(用Cy、F=0000、OVER、F15標(biāo)志),它的輸入(用D表示)只能來自于內(nèi)部總線。確定運(yùn)算器運(yùn)算的數(shù)據(jù)來源、運(yùn)算功能、結(jié)果處置方案,需要使用控制器提供的I8I
8、0、B3B0、A3A0共17個(gè)信號。運(yùn)算器的輸出直接連接到地址寄存器AR的輸入引腳,用于提供地址總線的信息來源。運(yùn)算器的輸出還經(jīng)過兩個(gè)8位的244器件的控制(使用DCI譯碼器的 /YTOIB信號)被送到內(nèi)部總線IB,用于把運(yùn)算器中的數(shù)據(jù)或者運(yùn)算結(jié)果寫入內(nèi)存儲器或者輸入輸出接口芯片。運(yùn)算器產(chǎn)生的4個(gè)結(jié)果特征位的信息需要保存,為此必須設(shè)置一個(gè)4位的標(biāo)志寄存器FLAG,用于保存這4位結(jié)果特征信息,標(biāo)志寄存器的輸出分別用C、Z、V、S表示。控制標(biāo)志寄存器何時(shí)和如何接收送給它的信息,需要使用控制器提供的SST2SST0三位信號。運(yùn)算器還需要按照指令執(zhí)行的要求,正確地得到最低位的進(jìn)位輸入信號,最低位和最高
9、位的移位輸入信號,為此還需要配置另外一個(gè)標(biāo)示為SHIFT的線路,在控制器提供的SSH和SCI1SCI0三位信號的控制下,產(chǎn)生運(yùn)算器最低位的進(jìn)位輸入信號,最低位和最高位的移位輸入信號。運(yùn)算器主要芯片及功能介紹:Am2901芯片是一個(gè)4位的位片結(jié)構(gòu)的、完整的運(yùn)算器器件,其內(nèi)部組成如下圖所示,作為教學(xué)內(nèi)容的實(shí)例具有很好的典型性。4輸出Y/OE二選一FA L UF=0000I3Cn+4I4CnOVRI5SF3R二選一三選一I0I1 4輸入DI2B鎖存器A鎖存器A 16個(gè) B 通用寄存器4A地址 Q寄存器B地址4三選一I6I7I8Q3Q0 三選一RAM 0RAM 3 Am2901芯片的內(nèi)部組成框圖1).
10、 Am2901的內(nèi)部組成從圖上可以看到,該芯片的第一個(gè)組成成分是一個(gè)4位的算邏運(yùn)算部件ALU,它的輸出為F,兩路輸入分別用R和S標(biāo)記,還有送入ALU最低位的進(jìn)位信號Cn。它能實(shí)現(xiàn)R+S、S-R、R-S三種算術(shù)運(yùn)算功能,和RS、RS、RS、RS、RS五種邏輯運(yùn)算功能。在給出運(yùn)算結(jié)果的同時(shí),還送出向高位的進(jìn)位輸出信號Cn+4,溢出標(biāo)志信號OVR,最高位的狀態(tài)信號F3(可能用作符號位),以及運(yùn)算結(jié)果為零的標(biāo)志信號F=0000。該芯片的第二個(gè)組成成分是由16個(gè)4位的通用寄存器組成的寄存器組。它是一個(gè)用雙端口(A口和B口)控制讀出、單端口(B口)控制寫入的部件。為了對其進(jìn)行讀寫,需通過A地址(寄存器編號
11、)、B地址(寄存器編號)指定被讀寫的寄存器。兩路讀出數(shù)據(jù)分別用A、B標(biāo)記,經(jīng)鎖存器線路可以送到ALU的R、S輸入端的多路選擇器,A口讀出數(shù)據(jù)還可以用作該芯片的可選輸出信號之一。寄存器組的寫入數(shù)據(jù)由一組多路選擇器給出,并由B地址選擇寫入的寄存器。該芯片的第三個(gè)組成成分是一個(gè)4位的Q寄存器,主要用于實(shí)現(xiàn)硬件的乘法、除法指令,能對本身的內(nèi)容完成左、右移位的功能,能接收ALU的輸出,輸出送到ALU 的S 輸入端。該芯片的其余組成成分是5組多路數(shù)據(jù)選擇器電路,每組都由4套電路組成,一套電路對應(yīng)一個(gè)數(shù)據(jù)位,通過它們,實(shí)現(xiàn)芯片內(nèi)部上述三個(gè)組成成分之間的聯(lián)系,也實(shí)現(xiàn)該芯片和其外界信息的輸入與輸出操作,這包括:
12、 一組4位的二選一器件控制把運(yùn)算器內(nèi)的兩路4位輸出數(shù)據(jù)(A口數(shù)據(jù)、ALU的運(yùn)算結(jié)果數(shù)據(jù))送出芯片,標(biāo)記為Y; 一組4位的二選一和 一組4位的三選一器件,分別用于組合外部送來信息D,通用寄存器組的雙路讀出信息A和B,乘商寄存器Q的信息,以決定ALU的兩路輸入R和S的數(shù)據(jù)來源; 一組4位的三選一器件,完成從ALU的輸出結(jié)果,ALU輸出結(jié)果左移一位的值,ALU輸出結(jié)果右移一位的值中選擇其一,作為通用寄存器的寫入信息,實(shí)現(xiàn)的是通用接存器接收及移位功能。在左右移位時(shí),其最高位和最低位可以送出或接收相應(yīng)位的信息,圖中用RAM3和RAM0標(biāo)記,它們都是由能進(jìn)行雙向傳送的三態(tài)門電路實(shí)現(xiàn)的; 一組4位的三選一器
13、件,用于完成Q寄存器內(nèi)容的左右移位,或接收ALU的輸出結(jié)果的操作功能。在進(jìn)行左右移位操作時(shí),與通用寄存器移位類似的是,這里存在Q3和Q0的雙向傳送問題。2)AR由什么芯片構(gòu)成,引腳,讀寫工作原理結(jié)構(gòu)型式,其主要電器特性的典型值如下(不同廠家具體值有差別):型號 TPD PD 讀寫工作原理:輸出端 Q0Q7 可直接與總線相連。當(dāng)三態(tài)允許控制端 OE 為低電平時(shí),Q0Q7為正常邏輯狀態(tài),可用來驅(qū)動負(fù)載或總線。當(dāng) OE 為高電平時(shí),Q0Q7 呈高阻態(tài),即不驅(qū)動總線,也不為總線的負(fù)載,但鎖存器內(nèi)部的邏輯操作不受影響。當(dāng)鎖存允許端 LE 為高電平時(shí),Q 隨數(shù)據(jù) D 而變。當(dāng) LE 為低電平時(shí),D 被鎖存
14、在已建立的數(shù)據(jù)電平。當(dāng) LE 端施密特觸發(fā)器的輸入滯后作用,使交流和直流噪聲抗擾度被改善 400mV。74Ls373內(nèi)部結(jié)構(gòu)圖如下所示:引腳:D0D7 數(shù)據(jù)輸入端OE 三態(tài)允許控制端(低電平有效)LE 鎖存允許端Q0Q7 輸出端真值表: DnLEOEQnHHLHLHLLXLLQ0XXH高阻3)查找送往AR的PC是2901中的R幾?R54)74LS244及74LS245的內(nèi)部結(jié)構(gòu)、功能74LS244為3態(tài)8位緩沖器,一般用作總線驅(qū)動器。74LS244沒有鎖存的功能。地址鎖存器就是一個(gè)暫存器,它根據(jù)控制信號的狀態(tài),將總線上地址代碼暫存起來。8086/8088數(shù)據(jù)和地址總線采用分時(shí)復(fù)用操作方法,即用
15、同一總線既傳輸數(shù)據(jù)又傳輸?shù)刂?。?dāng)微處理器與存儲器交換信號時(shí),首先由CPU發(fā)出存儲器地址,同時(shí)發(fā)出允許鎖存信號ALE給鎖存器,當(dāng)鎖存器接到該信號后將地址/數(shù)據(jù)總線上的地址鎖存在總線上,隨后才能傳輸數(shù)據(jù)。 它主要用于三態(tài)輸出,作為地址驅(qū)動器、時(shí)鐘驅(qū)動器、總線驅(qū)動器和定向發(fā)送器等。其真值表如下:74Ls244真值表74LS244真值表L表示低電平H表示高電平X表示不定狀態(tài)Z表示高阻態(tài)74ls24574LS245是我們常用的芯片,用來驅(qū)動led或者其他的設(shè)備,它是8路同相三態(tài)雙向總線收發(fā)器,可雙向傳輸數(shù)據(jù)。74LS245還具有雙向三態(tài)功能,既可以輸出,也可以輸入數(shù)據(jù)。當(dāng)8051單片機(jī)的P0口總線負(fù)載達(dá)
16、到或超過P0最大負(fù)載能力時(shí),必須接入74LS245等總線驅(qū)動器。當(dāng)片選端/CE低電平有效時(shí),DIR=“0”,信號由 B 向 A 傳輸;(接收)DIR=“1”,信號由 A 向 B 傳輸;(發(fā)送)當(dāng)CE為高電平時(shí),A、B均為高阻態(tài)。由于P2口始終輸出地址的高8位,接口時(shí)74LS245的三態(tài)控制端1G和2G接地,P2口與驅(qū)動器輸入線對應(yīng)相連。P0口與74LS245輸入端相連,E端接地,保證數(shù)據(jù)線暢通。8051的/RD和/PSEN相與后接DIR,使得RD和PSEN有效時(shí),74LS245輸入(P0.1D1),其它時(shí)間處于輸出(P0.1D1)。5)138譯碼器與139譯碼器比較 139譯碼器內(nèi)部138譯碼
17、器內(nèi)部為38譯碼器,139是兩個(gè)獨(dú)立的24譯碼器。二、實(shí)驗(yàn)機(jī)工作原理2.1、TEC-XP計(jì)算機(jī)組成原理實(shí)驗(yàn)箱簡介1.教學(xué)機(jī)系統(tǒng)配置了兩個(gè)不同實(shí)現(xiàn)方案的CPU系統(tǒng),一個(gè)CPU沿襲傳統(tǒng)的設(shè)計(jì)思路,由中小規(guī)模的器件組成;另一個(gè)CPU參考國外著名大學(xué)的設(shè)計(jì)思路用大規(guī)模的FPGA器件設(shè)計(jì)實(shí)現(xiàn)。2.教學(xué)機(jī)的機(jī)器字長16位, 即運(yùn)算器、主存、數(shù)據(jù)總線、地址總線都是16位。3.指令系統(tǒng)支持多種基本尋址方式。其中一部分指令已實(shí)現(xiàn),用于設(shè)計(jì)監(jiān)控程序和用戶的常規(guī)匯編程序,尚保留多條指令供實(shí)驗(yàn)者自己實(shí)現(xiàn)。4.主存最大尋址空間是18K字,由基本容量為8K(字節(jié)或16位的字)的ROM和2K(字節(jié)或16位的字)的RAM存儲
18、區(qū)域組成。還可以進(jìn)一步完成存儲器擴(kuò)展的教學(xué)實(shí)驗(yàn)。5.原理上講,主時(shí)鐘脈沖的頻率可在幾百KHz近2MHz之間選擇。6.運(yùn)算器由4片位片結(jié)構(gòu)器件級聯(lián)而成,片間用串行進(jìn)位方式傳遞進(jìn)位信號。ALU實(shí)現(xiàn)8種算術(shù)與邏輯運(yùn)算功能,內(nèi)部包括16個(gè)雙端口讀出、單端口寫入的通用寄存器, 和一個(gè)能自行移位的乘商寄存器。設(shè)置C(進(jìn)位)、Z(結(jié)果為0)、V(溢出)和S(符號位)四個(gè)狀態(tài)標(biāo)志位。7.控制器采用微程序和硬布線兩種控制方案實(shí)現(xiàn),可由實(shí)驗(yàn)者自由選擇。實(shí)驗(yàn)人員可方便地修改已有設(shè)計(jì),或加進(jìn)若干條自己設(shè)計(jì)與實(shí)現(xiàn)的新指令,新老指令同時(shí)運(yùn)行。8.主機(jī)上安裝有兩路INTEL8251串行接口,一路出廠時(shí)已經(jīng)實(shí)現(xiàn),可直接接計(jì)算
19、機(jī)終端,或接入一臺PC機(jī)作為自己的仿真終端;另一路保留學(xué)生擴(kuò)展實(shí)現(xiàn)。選用了MAX202倍壓線路,以避免使用+12V和-12V電源。9.在主板的右下方,配置了完成中斷教學(xué)實(shí)驗(yàn)的全套線路,可以實(shí)現(xiàn)三級中斷和中斷嵌套。10.系統(tǒng)實(shí)現(xiàn)多種運(yùn)行方式,可以單步/連續(xù)運(yùn)行主存儲器的指令或程序,也可以執(zhí)行一條或若干條通過數(shù)據(jù)開關(guān)手動置入的指令。11.主板上設(shè)置數(shù)據(jù)開關(guān)和微型開關(guān)、按鍵和指示燈,支持最低層的手工操作方式的輸入/輸出,通過指示燈來顯示重要的數(shù)據(jù)或控制信號的狀態(tài),可以完成機(jī)器調(diào)試和故障診斷。板上還有支持教學(xué)實(shí)驗(yàn)用的一定數(shù)量的跳線夾。12.實(shí)驗(yàn)機(jī)硬件系統(tǒng),全部功能部件分區(qū)域劃分在大一些的水平放置的一塊
20、印制電路板的不同區(qū)域,所有器件都用插座插接在印制板上,便于更換器件。13.實(shí)驗(yàn)計(jì)算機(jī)使用單一的5V、最大電流3A的直流模塊電源,所耗電流在1.52.5A之間。電源模塊安裝在水平電路板右上角位置,交流220V通過電源接線插到機(jī)箱后側(cè)板,經(jīng)保險(xiǎn)絲、開關(guān)連接到電路板上,開關(guān)安放在機(jī)箱右側(cè)靠后位置,方便操作且比較安全。13.兩路的串行接口的接插座安放在機(jī)箱后側(cè)板以方便接線插拔和機(jī)箱蓋的打開關(guān)閉。2.2、教學(xué)計(jì)算機(jī)的指令執(zhí)行流程按照TEC-XP教學(xué)計(jì)算機(jī)指令的功能和它們的執(zhí)行步驟,可把指令劃分成為如下4組。A組: 基本指令 ADD,SUB, AND,OR,XOR,CMP, TEST,MVRR,INC,
21、DEC,SHR,SHL,JR,JRC,JRNC,JRZ,JRNZ擴(kuò)展指令 ADC,SBB, NOT,RCL,RCR,ASR, STC,CLC,EI,DI, JRS,JRNS, JMPRB組: 基本指令 LDRR,STRR, PUSH,POP,PSHF,POPF,MVRD, IN,OUT, JMPA, RETC組: 擴(kuò)展指令 CALR,LDRA,STRA,,LDRX,STRXD組: 基本指令 CALA擴(kuò)展指令 TRETA組指令完成的是通用寄存器之間的數(shù)據(jù)運(yùn)算或傳送,和其它幾項(xiàng)特殊的操作,例如CLC和STC指令,在讀取指令之后可一步完成。B組指令完成的是一次內(nèi)存讀、寫操作,或一次IO設(shè)備的讀、寫操
22、作,在讀取指令之后可二步完成,第一步用于向地址寄存器送入16位的(或8位的IO端口)地址,第二步完成內(nèi)存或外圍設(shè)備的讀、寫操作。C組指令中的4條指令,完成的是2次內(nèi)存儲器的讀、寫操作,正常情況要用4步完成,每一次內(nèi)存儲器的讀、寫操作,都要經(jīng)過傳送地址和數(shù)據(jù)讀寫這樣兩步;但在這里卻只需要3步即可,因?yàn)轭^一次讀出的數(shù)據(jù)就是下一次讀寫操作要使用的地址信息,讀出之后直接(或經(jīng)過一次加法運(yùn)算)將其寫入地址寄存器,就可以省掉第二次內(nèi)存儲器的讀、寫操作過程中的需要的傳送地址的步驟。CALR指令先用2步保存PC內(nèi)容(子程序調(diào)用指令的后續(xù)指令地址)到堆棧,第3步把寄存器中的子程序入口地址傳送到程序計(jì)數(shù)器PC中。
23、D組指令完成的也是2次內(nèi)存儲器的讀、寫操作,在讀取指令之后可4步完成。全部指令又被劃分為基本指令(29條)和擴(kuò)展指令(19條)兩大類,兩類指令合在一起才構(gòu)成一套比較完整的指令系統(tǒng)。基本指令已經(jīng)由生產(chǎn)廠家完成設(shè)計(jì)并實(shí)現(xiàn),被用來支持監(jiān)控程序和簡單的匯編語言程序設(shè)計(jì),設(shè)計(jì)結(jié)果作為教學(xué)內(nèi)容的實(shí)例寫進(jìn)了教材中。擴(kuò)展指令則保留給實(shí)驗(yàn)者在控制器部件的教學(xué)實(shí)驗(yàn)中自己動手來設(shè)計(jì)和實(shí)現(xiàn),對擴(kuò)展指令的設(shè)計(jì)結(jié)果在教師用書中給出。在運(yùn)行BASIC語言解釋程序時(shí),會用到大部分的擴(kuò)展指令,全指令集的設(shè)計(jì)結(jié)果已經(jīng)做成一個(gè)文件提供給使用者,只需把這個(gè)文件的內(nèi)容下載到MACH芯片中,教學(xué)計(jì)算機(jī)就可以支持前面給出的全部48條指令。
24、教學(xué)計(jì)算機(jī)的使用者還可以設(shè)計(jì)實(shí)現(xiàn)自己選擇的其他一些指令。接下來是劃分指令執(zhí)行步驟和安排每個(gè)步驟所執(zhí)行的處理功能,得到的設(shè)計(jì)結(jié)果,即指令執(zhí)行流程如圖2-17所示。在4組指令中,屬于B組的指令都是基本指令,屬于C組的指令都是擴(kuò)展指令,在A組、D組中都同時(shí)含有基本指令和擴(kuò)展指令。R4 0, 關(guān)中斷1000 按RESET鍵B、C、D組指令0000檢查有無中斷請求無讀 取 指 令 AR PC,PC PC+10110B組指令01000010讀、寫內(nèi)存或讀、寫外設(shè)讀內(nèi)存,IR 讀出指令傳送地址AR 地址D組指令C組指令A(yù)組指令011100110101讀寫內(nèi)存或寄存器間傳送傳送地址AR 地址寄存器之間的數(shù)據(jù)運(yùn)
25、算或傳送 教學(xué)計(jì)算機(jī)的指令執(zhí)行流程圖圖中的每一個(gè)方框代表一個(gè)節(jié)拍,表示指令的一個(gè)執(zhí)行步驟。方框內(nèi)部的文字簡要說明在該節(jié)拍中應(yīng)該完成的主要操作功能。方框之間的帶箭頭的連線表示節(jié)拍狀態(tài)的轉(zhuǎn)換次序和方向。箭頭線旁邊有文字說明的,表示從前一個(gè)節(jié)拍轉(zhuǎn)換為當(dāng)前節(jié)拍的條件,沒有文字說明的,表示無條件地從前一個(gè)節(jié)拍轉(zhuǎn)換為當(dāng)前節(jié)拍。每個(gè)方框左上角的4位數(shù)字,是為該節(jié)拍分配的節(jié)拍狀態(tài)編碼。前面已經(jīng)講到,把教學(xué)計(jì)算機(jī)全部指令按其應(yīng)完成的功能和執(zhí)行步驟情況,劃分成A、B、C、D共4組。從指令流程圖上可以看到,在完成讀取指令之后,即已經(jīng)得知指令操作碼的前提下,節(jié)拍發(fā)生器就按這4類指令的劃分情況,分別進(jìn)入到各自不同的節(jié)拍
26、序列。其中狀態(tài)編碼為1000的節(jié)拍完成把0值送到程序計(jì)數(shù)器PC,為啟動監(jiān)控程序做好準(zhǔn)備,只在教學(xué)計(jì)算機(jī)系統(tǒng)加電啟動時(shí)被執(zhí)行一次,在教學(xué)計(jì)算機(jī)正常運(yùn)行的過程中不會進(jìn)入這個(gè)節(jié)拍。狀態(tài)編碼為0000和0010的兩個(gè)節(jié)拍完成讀取指令的功能,公用于所有指令,是每一條指令開始執(zhí)行時(shí)必須首先完成的兩個(gè)操作步驟。圖中用虛線菱形框表示的“響應(yīng)與處理中斷請求”的動作,在相鄰兩條指令進(jìn)行切換的時(shí)刻,即前一條指令已經(jīng)結(jié)束、下一條指令尚未開始的時(shí)刻,完成檢查有無中斷請求的功能,這個(gè)檢查步驟也公用于所有指令,并依據(jù)檢查結(jié)果進(jìn)行不同的處理,無中斷請求時(shí),就開始下一條指令的執(zhí)行過程,有中斷請求時(shí)則進(jìn)入中斷響應(yīng)和處理的過程,處
27、理起來略顯復(fù)雜,等到講解中斷的時(shí)候再詳細(xì)說明。其他節(jié)拍用于不同指令,具體說明如下。A組指令將進(jìn)入標(biāo)記為0011狀態(tài)的節(jié)拍,用1步完成寄存器之間的數(shù)據(jù)運(yùn)算或傳送;B組指令將進(jìn)入標(biāo)記為0110狀態(tài)的節(jié)拍,再經(jīng)過標(biāo)記為0100的節(jié)拍,用2步完成1次對主存儲器或IO設(shè)備的讀寫操作;C組指令將進(jìn)入標(biāo)記為0110狀態(tài)的節(jié)拍,再經(jīng)過標(biāo)記為0111的節(jié)拍、0101的節(jié)拍,用3步完成2次內(nèi)存儲器的讀寫操作,前2個(gè)節(jié)拍完成讀主存儲器的同時(shí),還把讀出內(nèi)容傳送到地址寄存器,第3個(gè)節(jié)拍直接使用該地址完成第二次對主存儲器的讀寫操作;CALR指令是一次內(nèi)存寫操作和一次寄存器之間的數(shù)據(jù)傳送操作,也是3個(gè)步驟完成。D組指令,將
28、進(jìn)入標(biāo)記為0110狀態(tài)的節(jié)拍,再經(jīng)過標(biāo)記為0100的節(jié)拍、0111的節(jié)拍、0101的節(jié)拍,用4步完成2次內(nèi)存儲器的讀寫操作,每一次內(nèi)存儲器的讀寫操作各自用2步完成。2.3、教學(xué)計(jì)算機(jī)的時(shí)序控制信號形成部件2.3.1. 確定控制器應(yīng)提供的控制信號教學(xué)計(jì)算機(jī)的總體組成情況,部件之間的連接關(guān)系,即數(shù)據(jù)傳送的通路,如下圖所示:教學(xué)計(jì)算機(jī)的數(shù)據(jù)通路與微命令的控制作用2.3.2、教學(xué)計(jì)算機(jī)各部件的連接關(guān)系:運(yùn)算器部件的輸入只來自于教學(xué)機(jī)的內(nèi)部總線。運(yùn)算器部件的輸出可以: (1)直接送地址寄存器;(2)經(jīng)開關(guān)門送到內(nèi)部總線。內(nèi)部總線可以接收5路數(shù)據(jù)來源:(1) 運(yùn)算器的16位輸出數(shù)據(jù); (2) 16位的中斷
29、向量;(3) 指令寄存器的低8位內(nèi)容和 8位的補(bǔ)碼符號擴(kuò)展;(4) 8位的程序狀態(tài)字內(nèi)容; (5) 16位數(shù)據(jù)開關(guān)送來的手撥數(shù)據(jù)。請注意,內(nèi)部總線還可以經(jīng)雙向三態(tài)門接收從外部總線送來數(shù)據(jù)或指令,這是通過另外的控制方式實(shí)現(xiàn)的,與對前5路數(shù)據(jù)來源的選擇分開來處理,邏輯關(guān)系上顯得更加合理。內(nèi)部總線的內(nèi)容可以送到:(1) 運(yùn)算器的輸入端; (2) 指令寄存器;(3)狀態(tài)位寄存器; (4) 通過雙向三態(tài)門送到外部總線。兩個(gè)需要控制其是否接受輸入的寄存器:(1) 指令寄存器,輸入來自內(nèi)部總線,保存的是指令的第一個(gè)字的內(nèi)容;(2) 地址寄存器,輸入來自運(yùn)算器的輸出,其輸出就是地址總線,用作為訪問內(nèi)存的地址或
30、IO設(shè)備的端口的地址。下面開始對控制器需要提供出來的控制信號進(jìn)行詳細(xì)的說明。 對運(yùn)算器部件,應(yīng)該向它提供23位的控制信號,包括:4位的A口地址、4位的B口地址(累加器編號),用于選擇讀寫的通用寄存器;3組3位的控制碼I8I6,I5I3,I2I0,用于選擇結(jié)果處置方案、運(yùn)算功能、數(shù)據(jù)來源;2組共6位的控制信號,控制配套的2片GAL20V8,3位SST,用于控制C、Z、V、S這4個(gè)狀態(tài)標(biāo)志位的狀態(tài)變化,1位SSH和2位SCI, 用于控制產(chǎn)生運(yùn)算器最低位的進(jìn)位輸入信號,以及運(yùn)算器最高、最低位(累加器和Q寄存器)的移位輸入信號在完成脫機(jī)情況下的運(yùn)算器實(shí)驗(yàn)時(shí),使用24位的微型手撥開關(guān)向運(yùn)算器提供這23位
31、控制信號。當(dāng)計(jì)算機(jī)正常運(yùn)行時(shí),將改由控制器向運(yùn)算器提供這23位控制信號。 對內(nèi)存儲器和I/O接口部件,控制器主要向它們提供讀寫操作用到的地址信息和全部控制信號。為實(shí)現(xiàn)對存儲器和I/O接口的讀寫操作控制,必須指明:要還是不要讀寫內(nèi)存或I/O接口,是讀寫內(nèi)存儲器還是I/O接口,到底是讀還是寫操作??梢园堰@些要求組合成以下5種情形:寫內(nèi)存,在寫數(shù)據(jù)到內(nèi)存時(shí)要用,用于教學(xué)機(jī)的STO、PUSH等指令的寫內(nèi)存操作;讀內(nèi)存,在從內(nèi)存讀數(shù)據(jù)時(shí)要用,用于教學(xué)機(jī)的LOD、POP等指令的讀內(nèi)存操作;寫接口,在寫數(shù)據(jù)到接口時(shí)要用,用于教學(xué)機(jī)的OUT指令的寫I/O接口操作;讀接口,在從接口讀數(shù)據(jù)時(shí)要用,用于教學(xué)機(jī)的IN
32、指令的讀I/O接口操作;既不讀寫內(nèi)存也不讀寫接口,在許多指令的大部分時(shí)間里是有這種運(yùn)行需求的,此時(shí)應(yīng)禁止內(nèi)存和接口的讀寫操作。設(shè)計(jì)中一定不能忘記這一使用要求。在TEC-2000教學(xué)計(jì)算機(jī)系統(tǒng)中,通過3位編碼(/MIO,REQ,/WE)來區(qū)分上述5種情形,具體安排如下。 /MIO REQ /WE 操作功能 0 0 0 內(nèi)存寫 0 0 1 內(nèi)存讀 0 1 0 I/O寫 0 1 1 I/O讀 1 無讀寫可以看到,/MIO信號為低,要讀寫內(nèi)存或I/O接口,為高則不讀寫內(nèi)存和I/O接口;在/MIO信號為低時(shí),REQ信號為低,是內(nèi)存工作(讀寫),為高則是I/O接口工作;在/MIO信號為低時(shí),/WE信號為低
33、是寫操作,為高則是讀操作。 這里的“”符號表示“無關(guān)位”,即/MIO信號為高時(shí),無論REQ和/WE處于什么狀態(tài),都是既不讀寫內(nèi)存也不讀寫I/O接口。向內(nèi)存和I/O接口提供的讀寫信號,通過對/MIO REQ /WE這3位碼的譯碼來實(shí)現(xiàn)。 對CPU內(nèi)部總線數(shù)據(jù)來源的控制,主要是通過3位編碼(標(biāo)記為DC1),用來選擇把哪一組數(shù)據(jù)發(fā)送到CPU內(nèi)部總線IB上。可以向內(nèi)部總線IB傳送數(shù)據(jù)的信息來源包括:ALU的輸出結(jié)果,將ALU的輸出送到內(nèi)部總線,主要目的是用于把累加器的內(nèi)容寫進(jìn)內(nèi)存或I/O接口,即把ALU的輸出經(jīng)內(nèi)部總線、經(jīng)過雙向3態(tài)門電路(74LS245)傳送到外部數(shù)據(jù)總線OB(DB),而DB的每一位
34、與內(nèi)存的數(shù)據(jù)線、I/ O接口的數(shù)據(jù)線直接連接在一起。程序狀態(tài)字,由4位狀態(tài)標(biāo)志位寄存器的輸出C、Z、V、S,及2位中斷優(yōu)先級P1、P0信號總共6位信息組成。將這8位(最低2位補(bǔ)0值)程序狀態(tài)送到IB,也是為了將其寫入內(nèi)存。在響應(yīng)中斷后,用于通過PUSHF指令保存中斷現(xiàn)場信息。指令寄存器的低位字節(jié),在IN和OUT指令中,存放的是IO端口地址,需要送內(nèi)部總線再經(jīng)ALU傳到地址寄存器;在相對轉(zhuǎn)移指令中,存放的是offset偏移值,需要送內(nèi)部總線經(jīng)ALU完成與程序計(jì)數(shù)器PC的內(nèi)容相加;此時(shí)有一個(gè)符號位擴(kuò)展支持的問題,在計(jì)算相對轉(zhuǎn)移指令的轉(zhuǎn)移地址時(shí),是通過把一個(gè)8位的補(bǔ)碼(由匯編程序計(jì)算得到)與該轉(zhuǎn)移指
35、令本來的16位地址(一定為正數(shù),故其原碼與補(bǔ)碼相同)相加來實(shí)現(xiàn),必須把8位補(bǔ)碼offset的最高位(補(bǔ)碼的符號位,可能為0或1)擴(kuò)展到加法器的高8位的每一位上去參加相加。16位的數(shù)據(jù)手撥開關(guān),用于把通過該開關(guān)所撥的內(nèi)容,經(jīng)過內(nèi)部總線傳送到計(jì)算機(jī)內(nèi)相關(guān)部件中。16位的中斷向量,由2位的中斷優(yōu)先級拼接上確定的高12位數(shù)值(通過跳線給出)得到,最低的2位補(bǔ)0,在處理中斷時(shí),用于找到中斷服務(wù)子程序的入口地址。在任何時(shí)刻只能把一個(gè)數(shù)據(jù)來源送上總線。為了從上述5個(gè)數(shù)據(jù)來源中選取其一,可以設(shè)置3位碼(標(biāo)記為DC1),并通過譯碼器給出的譯碼信號打開不同的選擇門線路來完成。在TEC-2000計(jì)算機(jī)的實(shí)現(xiàn)中,具體
36、規(guī)定如下。 DC1碼 譯碼信號 操作說明 000 /SWTOIB 送開關(guān)內(nèi)容到內(nèi)部總線 001 /RTOIB 送ALU輸出到內(nèi)部總線 010 /ETOIB 送IR低位字節(jié)內(nèi)容到內(nèi)部總線(可能含符號為擴(kuò)展) 011 /FTOIB 送程序狀態(tài)到內(nèi)部總線 100 /STOIB 16位機(jī)種不用 101 /INTVH 16位機(jī)種不用 110 /INTV 送中斷向量到內(nèi)部總線 111 NC 無操作功能,不向內(nèi)部總線發(fā)送數(shù)據(jù)其實(shí)還可以從外部總線向內(nèi)部總線傳送數(shù)據(jù)(或者相反方向),但這是通過另外的辦法處理的,并且已經(jīng)處理好與DC1編碼控制的協(xié)調(diào)關(guān)系。 對幾個(gè)特定的寄存器接受輸入的控制,也要通過3位編碼(標(biāo)記為
37、DC2),用來選擇允許哪一個(gè)寄存器接收送給它的一組數(shù)據(jù)。這些寄存器是指令寄存器IR,地址寄存器,中斷優(yōu)先級寄存器INTP等??梢酝ㄟ^把對DC2信號譯碼產(chǎn)生的各譯碼信號送到各相應(yīng)寄存器的/G控制端引腳,來完成對寄存器接收數(shù)據(jù)的控制。再一次說明,此時(shí)至少得有一個(gè)譯碼信號為NC,即不操作(接收)控制。在TEC-2000計(jì)算機(jī)的實(shí)現(xiàn)中,具體規(guī)定如下。 DC2碼 譯碼信號 操作說明 000 NC 不操作 001 /GIR 指令寄存器接收 010 /GARL 16位機(jī)中不用 011 /GAR 地址寄存器接收 100 /INTR 恢復(fù)原中斷優(yōu)先級 100 /INTN 接收新中斷優(yōu)先級 110 /EI 開中斷
38、 111 /DI 關(guān)中斷這里需要說明,對3位的DC2碼譯碼可以產(chǎn)生8個(gè)譯碼輸出信號,其中的3個(gè)用于控制專用寄存器的接收操作,1個(gè)不用,另外的4個(gè)轉(zhuǎn)義用于有關(guān)中斷的控制操作,響應(yīng)新的中斷請求時(shí)需要變化中斷優(yōu)先級,中斷處理完成時(shí),需要恢復(fù)中斷之前的程序現(xiàn)場,為了使得CPU可以響應(yīng)中斷,需要在用戶程序中執(zhí)行一條開中斷指令EI,為了禁止CPU響應(yīng)中斷,需要在用戶程序中執(zhí)行一條關(guān)中斷指令DI。把上述全部內(nèi)容歸納在一起,就得出需要控制器形成并提供給計(jì)算機(jī)各個(gè)功能部件的32位時(shí)序控制信號。 23位用于運(yùn)算器, 3位用于內(nèi)存和I/O接口, 3 位用于內(nèi)部總線, 3位用于幾個(gè)特定寄存器2.4指令系統(tǒng)2.4.1指
39、令格式TEC-XP教學(xué)機(jī)實(shí)現(xiàn)了29條基本指令,用于編寫教學(xué)機(jī)的監(jiān)控程序和支持簡單的匯編語言程序設(shè)計(jì)。同時(shí)保留了19條擴(kuò)展指令,供學(xué)生在教學(xué)實(shí)驗(yàn)中完成對這些指令的設(shè)計(jì)與調(diào)試。教學(xué)機(jī)的指令格式支持單字和雙字指令,第一個(gè)指令字的高8位是指令操作碼字段,低8位和雙字指令的第二個(gè)指令字是操作數(shù)、地址字段,分別有3種用法,如下圖所示。操作碼DRSRIO端口地址 / 相對偏移量立即數(shù) / 直接內(nèi)存地址 / 變址偏移量這8位指令操作碼(記作“IR15IR8”),含義如下:1) IR15、IR14用于區(qū)分指令組:0X表示A組,10表示B組,11表示C、D組;C、D組的區(qū)分還要用IR11,IR11=0為C組,IR
40、11=1為D組。2) IR13用于區(qū)分基本指令和擴(kuò)展指令:基本指令該位為0,擴(kuò)展指令該位為1;3) IR12用于簡化控制器實(shí)現(xiàn),其值恒為0;4) IR11IR8用于區(qū)分同一指令組中的不同指令。教學(xué)機(jī)的指令根據(jù)指令字長、操作數(shù)不同可劃分為如下5種指令格式:1) 單字、無操作數(shù)指令:格式:操作碼0000 0000基本指令:PSHF;狀態(tài)標(biāo)志(C、Z、V、S、P1、P0)入棧POPF;彈出棧頂數(shù)據(jù)送狀態(tài)標(biāo)志寄存器RET子程序返回?cái)U(kuò)展指令:CLC;清進(jìn)位標(biāo)志位C=0STC;置進(jìn)位標(biāo)志位C=1EI;開中斷,置中斷允許位INTE=1DI;關(guān)中斷,置中斷允許位INTE=0IRET;中斷返回2) 單字、單操作
41、數(shù)指令:格式:操作碼DR 00000000 SROFFSETI/O PORT基本指令:DECDR;DRDR-1INCDR;DRDR+1SHLDR;DR邏輯左移,最低位補(bǔ)0,最高位移入CSHRDR;DR邏輯右移,最高位補(bǔ)0,最低位移入CJROFFSET;無條件跳轉(zhuǎn)到ADR,ADR=原PC值+OFFSETJRCOFFSET;當(dāng)C=1時(shí),跳轉(zhuǎn)到ADR,ADR=原PC值+OFFSETJRNCOFFSET;當(dāng)C=0時(shí),跳轉(zhuǎn)到ADR,ADR=原PC值+OFFSETJRZOFFSET;當(dāng)Z=1時(shí),跳轉(zhuǎn)到ADR,ADR=原PC值+OFFSETJRNZOFFSET;當(dāng)Z=0時(shí),跳轉(zhuǎn)到ADR,ADR=原PC值+O
42、FFSETINI/O PORT;R0I/O PORT ,從外設(shè)I/O PORT端口讀入數(shù)據(jù)到R0OUTI/O PORT;I/O PORTR0,將R0中的數(shù)據(jù)寫入外設(shè)I/O PORT端口PUSHSR;SR入棧POPDR;彈出棧頂數(shù)據(jù)送DR擴(kuò)展指令:RCLDR;DR與C循環(huán)左移,C移入最低位,最高位移入CRCRDR;DR與C循環(huán)右移,C移入最高位,最低位移入CASRDR;DR算術(shù)右移,最高位保持不變,最低位移入CNOTDR;DR求反,即DR/DRJMPRSR;無條件跳轉(zhuǎn)到SR指向的地址CALRSR;調(diào)用SR指向的子程序JRSOFFSET;當(dāng)S=1時(shí),跳轉(zhuǎn)到ADR,ADR=原PC值+OFFSETJR
43、NSOFFSET;當(dāng)S=0時(shí),跳轉(zhuǎn)到ADR,ADR=原PC值+OFFSET3) 單字、雙操作數(shù)指令:格式:操作碼DRSR基本指令:ADDDR,SR;DRDR+SRSUBDR,SR;DRDR-SRANDDR,SR;DRDR and SRCMPDR,SR;DR-SRXORDR,SR;DRDR xor SRTESTDR,SR;DR and SRORDR,SR;DRDR or SRMVRRDR,SR;DRSRLDRRDR,SR;DRSRSTRRDR,SR;DRSR擴(kuò)展指令:ADCDR,SR;DRDR+SR+CSBBDR,SR;DRDR-SR-C4) 雙字、單操作數(shù)指令:格式:操作碼0000 0000A
44、DR基本指令:JMPAADR;無條件跳轉(zhuǎn)到地址ADRCALAADR;調(diào)用首地址在ADR的子程序5) 雙字、雙操作數(shù)指令:格式1:操作碼DR 0000 0000 SRDATA基本指令:MVRDDR,DATA;DRDATA擴(kuò)展指令:LDRADR,ADR;DRADRSTRAADR,SR;ADRSR格式2:操作碼DRSRADR擴(kuò)展指令:LDRXDR,OFFSETSR;DROFFSET+SRSTRXDR,OFFSETSR;OFFSET+SRDR2.4.2教學(xué)指令2.4.2.1基本指令指令格式匯編語句操作數(shù)個(gè)數(shù)CZVS指令類型功能說明00000000 DRSR00000001 DRSR00000010 D
45、RSR00000011 DRSR00000100 DRSR00000101 DRSR00000110 DRSR00000111 DRSR00001000 DR000000001001 DR000000001010 DR000000001011 DR000001000001 OFFSET01000100 OFFSET01000101 OFFSET01000110 OFFSET01000111 OFFSETADD DR,SRSUB DR,SRAND DR,SRCMP DR,SRXOR DR,SRTEST DR,SROR DR,SRMVRR DR,SRDEC DRINC DRSHL DRSHR DR
46、JR OFFSETJRC OFFSETJRNC OFFSETJRZ OFFSETJRNZ OFFSET22222222111111111*A組指令DRDR+SRDRDR-SRDRDR and SRDR-SRDRDR xor SRDR and SRDRDR or SRDRSRDRDR-1DRDR+1DR,CDR/2DR,CDR*2無條件跳轉(zhuǎn)C=1時(shí)跳轉(zhuǎn)C=0時(shí)跳轉(zhuǎn)Z=1時(shí)跳轉(zhuǎn)Z=0時(shí)跳轉(zhuǎn)10000000 0000000ADR(16位)10000001 DRSR10000010 I/O PORT10000011 DRSR10000100 0000000010000101 0000SR1000011
47、0 I/O PORT10000111 DR000010001000 DR000010001100 0000000010001111 00000000JMPA ADRLDRR DR,SRIN I/O PORTSTRR DR,SRPSHFPUSH SROUT I/O PORTPOP DRMVRD DR,DATAPOPFRET12120111200B組指令無條件跳到ADRDRSRR0I/O PORTDRSRFLAG入棧SR入棧I/O PORTR0DR出棧DRDATAFLAG出棧子程序返回11001110 00000000CALA ADR1D組指令調(diào)用首地址在ADR的子程序注:表中CZVS一列,*表示
48、對應(yīng)狀態(tài)位在該指令執(zhí)行后會被重置;表示對應(yīng)狀態(tài)位在該指令執(zhí)行后不會被修改。1 運(yùn)算器芯片中有16個(gè)通用寄存器(累加器)R0R15,其中:R4用作16位的堆棧指針SP;R5用作16位的程序計(jì)數(shù)器PC;其余寄存器用作通用寄存器,即多數(shù)雙操作數(shù)指令和單操作數(shù)指令中的DR、SR2.4.2.2擴(kuò)展指令指令格式匯編語句操作數(shù)個(gè)數(shù)CZVS指令類型功能說明00100000 DRSR00100001 DRSR00101010 DR000000101011 DR000000101100 DR000000101101 DR000001100000 0000SR01100100 OFFSET01100101 OFFS
49、ET01101100 0000000001101101 0000000001101110 0000000001101111 00000000ADC DR,SRSBB DR,SRRCL DRRCR DRASR DRNOT DRJMPR SRJRS OFFSETJRNS OFFSETCLCSTCEIDI2211111110000*01A組指令DRDR+SR+CDRDR-SR-CDRDR帶進(jìn)位C循環(huán)右移DRDR帶進(jìn)位C循環(huán)左移DRDR算術(shù)右移DR/DR跳轉(zhuǎn)到SR指明的地址S=1時(shí)跳轉(zhuǎn)S=0時(shí)跳轉(zhuǎn)C=0C=1開中斷關(guān)中斷11100000 0000SR11100100 DR000011100101 DR
50、SRADR(16位)11100110 DRSRADR(16位)11100111 0000SRCALR SRLDRA DR,ADRLDRX DR,OFFSETSRSTRX DR,OFFSETSRSTRA ADR,SR12221C組指令調(diào)用SR指明的子程序DRADRDRDATA+SRDATA+SRSRADRSR11101111 00000000IRET0D組指令中斷返回注:表中CZVS一列,*表示對應(yīng)狀態(tài)位在該指令執(zhí)行后會被重置;表示對應(yīng)狀態(tài)位在該指令執(zhí)行后不會被修改。二、 實(shí)驗(yàn)3.1基礎(chǔ)匯編語言程序設(shè)計(jì)3.1.1實(shí)驗(yàn)內(nèi)容1 學(xué)習(xí)聯(lián)機(jī)使用TEC-XP教學(xué)實(shí)驗(yàn)系統(tǒng)和仿真終端軟件PCEC.2 使用監(jiān)控
51、程序R命令顯示/修改寄存器內(nèi)容、D命令顯示存儲器內(nèi)容、E命令修改存儲器內(nèi)容;3 使用A命令寫一小段匯編程序,U命令反匯編剛輸入的程序,用G命令連續(xù)運(yùn)行該程序,用T、P命令單步運(yùn)行并觀察程序單步執(zhí)行情況。3.1.2實(shí)驗(yàn)完成情況今天老師主要給我們介紹了實(shí)驗(yàn)計(jì)算機(jī)在PC機(jī)上運(yùn)行PCEC16.EXE文件,根據(jù)連接的PC機(jī)的串口設(shè)置所用PC機(jī)的串口為“1”或“2”, 其它的設(shè)置一般不用改動,直接回車即可。按一下“RESET”按鍵,再按一下“START”按鍵。在操作這兩步出出了問題,start 按鍵必須按兩次。不然無法出現(xiàn)想要的結(jié)果。3.1.3實(shí)驗(yàn)體會實(shí)驗(yàn)一我們主要是按照書上的步驟來一步一步的往下做,所以并沒有遇上很多問題。我們所做的例題都是用監(jiān)控程序的A命令完成輸入源匯編程序的,有時(shí)候不小心輸錯(cuò)了字符還要重新輸入,特別的麻煩。3.2脫機(jī)運(yùn)算器實(shí)驗(yàn) 3.2.1實(shí)驗(yàn)內(nèi)容深入了解AM2901運(yùn)算器的功能與具體用法,4片AM2901的級連方式,深化運(yùn)算器部件的組成、設(shè)計(jì)、控制與使用等諸項(xiàng)知識。3.2.2實(shí)驗(yàn)完成情況做脫機(jī)運(yùn)算器實(shí)驗(yàn)時(shí),要用到提供24位控制信號的微動開關(guān)和提供16位數(shù)據(jù)的撥動開關(guān)。微動開關(guān)是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息傳遞的有效性與準(zhǔn)確性計(jì)劃
- 輸血護(hù)理查對制度
- 《貴州林東礦業(yè)集團(tuán)有限責(zé)任公司百里杜鵑風(fēng)景名勝區(qū)金坡鄉(xiāng)紅林煤礦(變更)礦產(chǎn)資源綠色開發(fā)利用方案(三合一)》評審意見
- 第六單元寫作《表達(dá)要得體》教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版語文八年級上冊
- 2025年繪畫防疫創(chuàng)意口罩標(biāo)準(zhǔn)教案
- 2025年濟(jì)南貨運(yùn)從業(yè)資格證試題和答案
- 2025年濰坊道路貨運(yùn)從業(yè)資格證模擬考試官方題下載
- 2025年銅川貨運(yùn)上崗證考試題庫
- 2025年?duì)I口貨車從業(yè)資格證理考試
- 2025年安康道路貨運(yùn)輸從業(yè)資格證模擬考試題庫
- 益生菌精品課件
- 一級公司向二級公司授權(quán)管理制度
- 沃爾瑪全國的分布
- (自考)財(cái)務(wù)管理學(xué)完整版課件全套ppt教程(最新)
- 第四紀(jì)地質(zhì)與環(huán)境:第十一章 第四紀(jì)氣候變遷及其動力機(jī)制
- 鋼結(jié)構(gòu)廠房工程施工組織設(shè)計(jì)方案(85頁)
- 小學(xué)生心理健康講座-(精)
- 蝴蝶豌豆花(課堂PPT)
- 數(shù)獨(dú)6×6初級打印版
- 口腔修復(fù)學(xué)-第七章-牙列缺失的全口義齒修復(fù)
- Y-Y2系列電機(jī)繞組標(biāo)準(zhǔn)數(shù)據(jù)匯總
評論
0/150
提交評論