實驗7-帶移位運算模型機實驗指導(dǎo).doc_第1頁
實驗7-帶移位運算模型機實驗指導(dǎo).doc_第2頁
實驗7-帶移位運算模型機實驗指導(dǎo).doc_第3頁
實驗7-帶移位運算模型機實驗指導(dǎo).doc_第4頁
實驗7-帶移位運算模型機實驗指導(dǎo).doc_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機組成原理實驗指導(dǎo)書 - - 實驗七、帶移位運算的模型機組成原理實驗一、實驗?zāi)康模?在實驗六的基礎(chǔ)上進(jìn)一步構(gòu)造一臺帶移位功能的簡單模型機。二、預(yù)習(xí)要求: 1 認(rèn)真預(yù)習(xí)本實驗的相關(guān)知識和內(nèi)容。三、實驗設(shè)備: EL-JY-II型計算機組成原理實驗系統(tǒng)一套,排線若干。四、模型機結(jié)構(gòu): 圖7-1 模型機結(jié)構(gòu)框圖 圖中運算器ALU由U7U10四片74LS181構(gòu)成,暫存器1由U3、U4兩片74LS273構(gòu)成,暫存器2由U5、U6兩片74LS273構(gòu)成。微控器部分控存由U13U15三片2816構(gòu)成。除此之外,CPU的其它部分都由EP1K10集成(其原理見系統(tǒng)介紹部分)。存儲器部分由兩片6116構(gòu)成16位存儲器,地址總線只有低八位有效,因而其存儲空間為00HFFH。輸出設(shè)備由底板上的四個LED數(shù)碼管及其譯碼、驅(qū)動電路構(gòu)成,當(dāng)D-G和W/R均為低電平時將數(shù)據(jù)總線的數(shù)據(jù)送入數(shù)碼管顯示。在開關(guān)方式下,輸入設(shè)備由16位電平開關(guān)及兩個三態(tài)緩沖芯片74LS244構(gòu)成,當(dāng)DIJ-G為低電平時將16位開關(guān)狀態(tài)送上數(shù)據(jù)總線。在鍵盤方式或聯(lián)機方式下,數(shù)據(jù)可由鍵盤或上位機輸入,然后由監(jiān)控程序直接送上數(shù)據(jù)總線,因而外加的數(shù)據(jù)輸入電路可以不用。注:本系統(tǒng)的數(shù)據(jù)總線為16位,指令、地址和程序計數(shù)器均為8位。當(dāng)數(shù)據(jù)總線上的數(shù)據(jù)打入指令寄存器、地址寄存器和程序計數(shù)器時,只有低8位有效。五、工作原理: 設(shè)計三個控制操作微程序:存儲器讀操作(MRD):撥動清零開關(guān)CLR對地址、指令寄存器清零后,指令譯碼輸入CA1、CA2為“00”時,按“單步”鍵,可對RAM連續(xù)讀操作。 存儲器寫操作(MWE):撥動清零開關(guān)CLR對地址、指令寄存器清零后,指令譯碼輸入CA1、CA2為“10”時,按“單步”鍵,可對RAM連續(xù)寫操作。啟動程序(RUN):撥動開關(guān)CLR對地址、指令寄存器清零后,指令譯碼輸入CA1、CA2為“11”時,按“單步”鍵,即可轉(zhuǎn)入到第01號“取指”微指令,啟動程序運行。注:CA1、CA2由控制總線的E4、E5給出。鍵盤操作方式時由監(jiān)控程序直接對E4、E5賦值,無需接線。開關(guān)方式時可將E4、E5接至控制開關(guān)CA1、CA2,由開關(guān)來控制。本系統(tǒng)設(shè)計的微指令字長共24位,其控制位順序如下:24232221201918171615 14 1312 11 109 8 7654321S3S2S1S0MCnWE1A1BF1F2F3uA5uA4uA3uA2uA1uA0 、三個字段的編碼方案如表71: F1字段F2字段F3字段15 14 13選擇12 11 10選擇9 8 7選擇0 0 0LDRi0 0 0RAG0 0 0P10 0 1LOAD0 0 1ALU-G0 0 1AR0 1 0LDR20 1 0RCG0 1 0P30 1 1自定義0 1 1自定義0 1 1自定義1 0 0LDR11 0 0RBG1 0 0P21 0 1LAR1 0 1PC-G1 0 1LPC1 1 0LDIR1 1 0299-G1 1 0P 41 1 1無操作1 1 1無操作1 1 1無操作 表71系統(tǒng)涉及到的微程序流程見圖7-2(圖中各方框內(nèi)為微指令所執(zhí)行的操作,方框外的標(biāo)號為該條微指令所處的八進(jìn)制微地址)??刂撇僮鳛镻4測試,它以CA1、CA2作為測試條件,出現(xiàn)了寫機器指令、讀機器指令和運行機器指令3路分支,占用3個固定微地址單元。當(dāng)分支微地址單元固定后,剩下的其它地方就可以一條微指令占用控存一個微地址單元隨意填寫。機器指令的執(zhí)行過程如下:首先將指令在外存儲器的地址送上地址總線,然后將該地址上的指令傳送至指令寄存器,這就是“取指”過程。之后必須對操作碼進(jìn)行P1測試,根據(jù)指令的譯碼將后續(xù)微地址中的某幾位強制置位,使下一條微指令指向相應(yīng)的微程序首地址,這就是“譯碼”過程(其原理見圖5-4)。然后才順序執(zhí)行該段微程序,這是真正的指令執(zhí)行過程。在所有機器指令的執(zhí)行過程中,“取指”和“譯碼”是必不可少的,而且微指令執(zhí)行的操作也是相同的,這些微指令稱為公用微指令,對應(yīng)于圖7-2中01、02、31地址的微指令。31地址為“譯碼”微指令,該微指令的操作為P(1)測試,測試結(jié)果出現(xiàn)多路分支。本實驗用指令寄存器的前4位(I7-I4)作為測試條件,出現(xiàn)7路分支,占用7個固定微地址單元。 當(dāng)全部微程序流程圖設(shè)計完畢后,應(yīng)將每條微指令代碼化,表7-2即為將圖7-2的微程序流程按微指令格式轉(zhuǎn)化而成的“二進(jìn)制微代碼表”。 六、實驗參考代碼:本實驗采用條機器指令,根據(jù)上面所說的工作原理,設(shè)計參考實驗程序如下: 地址(二進(jìn)制) 機器指令碼 助記符 說 明0000 0000 0000 0000 IN AX, KIN 數(shù)據(jù)輸入電路 AX0000 0001 0010 0001 MOV Bx, 01H 0001H Bx0000 0010 0000 0001 0000 0011 0101 0000 ROL Ax Ax循環(huán)左移一位0000 0100 0001 0000 ADD Ax, Bx Ax+Bx Ax0000 0101 0110 0000 ROR Ax Ax循環(huán)右移一位0000 0110 0011 0000 OUT DISP, Ax Ax 輸出顯示電路0000 0111 0100 0000 JMP 00H 00H PC0000 0110 0000 0000 注:其中MOV、JMP為雙字長(32位),其余為單字長指令。對于雙字長指令,第一字為操作碼,第二字為操作數(shù);對于單字長指令只有操作碼,沒有操作數(shù)。上述所有指令的操作碼均為低8位有效,高八位默認(rèn)為0。而操作數(shù)8位和16位均可。KIN和DISP分別為本系統(tǒng)專用輸入、輸出設(shè)備。 圖7-2(a) sreg表示移位寄存器 控制開關(guān) 00 P(4)測試 MWE(10) MRD(00) RUN(11) PC AR,PC+1 21 PC AR,PC+1 20 23 (D_INPUT) D_BUS LT1 24 RAM D_BUS LT1 22 01 LT1 RAM 30 LT1 LED 27 圖7-2(b)表72為根據(jù)本實驗程序流程圖設(shè)計的二進(jìn)制微代碼表:微地址S3 S2 S1 S0 M CN WE 1A 1BF1F2F3UA5UA00000000 0 0 0 0 0 0 0 01111111100100000000010 0 0 0 0 0 0 0 01011011010000100000100 0 0 0 0 0 0 1 01101111110110010000110 0 0 0 0 0 0 0 00101001110001100001101 0 0 1 0 1 0 0 00000011110000010001110 0 0 0 0 0 0 1 00001111110000010010000 0 0 0 0 0 0 1 10001110000000010010010 0 0 0 0 0 0 0 01000001110000110010100 0 0 0 0 0 0 0 01011011010001110010110 0 0 0 0 0 1 0 11110001110000010011000 0 0 0 0 0 0 0 01011011010110100011010 0 1 1 0 0 0 0 0 0000001110110110011100 0 1 1 0 0 0 0 0 0000001110111010100000 0 0 0 0 0 0 0 01011011010100100100010 0 0 0 0 0 0 0 01011011010101000100100 0 0 0 0 0 0 1 01001111110101110100110 0 0 0 0 0 0 0 01111111110000010101000 0 0 0 0 0 0 1 11001111110110000101110 0 0 0 0 1 1 0 11110011110100000110001 1 1 1 1 1 1 1 01110011110100010110010 0 0 0 0 0 0 1 01101110000010000110100 0 0 0 0 0 0 1 00011111010000010110110 0 0 1 0 0 0 0 01111101110111000111000 0 0 0 0 0 0 0 00001101110000010111010 0 1 0 0 0 0 0 01111101110111100111100 0 0 0 0 0 0 0 0000110111000001表7-2 實驗七的二進(jìn)制微代碼表七、實驗步驟:、單片機鍵盤操作方式實驗在進(jìn)行單片機鍵盤操作實驗時,必須把K4開關(guān)置于“OFF”狀態(tài),否則系統(tǒng)處于自鎖狀態(tài),無法進(jìn)行實驗。1. 實驗連線:實驗連線圖如圖7-3所示。連線時應(yīng)按如下方法:對于橫排座,應(yīng)使排線插頭上的箭頭面向自己插在橫排座上;對于豎排座,應(yīng)使排線插頭上的箭頭面向左邊插在豎排座上。2. 寫微代碼:(1) 將開關(guān)K1K2K3K4撥到寫狀態(tài)即K1 off、K2 on、K3 off、K4 off,其中K1、K2、K3在微程序控制電路,K4在24位微代碼輸入及顯示電路上。在監(jiān)控指示燈滾動顯示【CLASS SELECt】狀態(tài)下按【實驗選擇】鍵,顯示【ES-_ _ 】輸入07或7,按【確認(rèn)】鍵,顯示為【ES07】,再按下【確認(rèn)】鍵。(2) 監(jiān)控顯示為【CtL1=_】,表示對微代碼進(jìn)行操作。輸入1顯示【CtL1_1】,表示寫微代碼,按【確認(rèn)】。(3) 監(jiān)控顯示【U-Addr】,此時輸入【000000】6位二進(jìn)制數(shù)表示的微地址,然后按【確認(rèn)】鍵,監(jiān)控指示燈顯示【U_CodE】,此時輸入微代碼【007F90】,該微代碼是用6位十六進(jìn)制數(shù)來表示前面的24位二進(jìn)制數(shù),注意輸入微代碼的順序,先右后左,按【確認(rèn)】鍵則顯示【PULSE】,按【單步】完成一條微代碼的輸入,重新顯示【U-Addr】提示輸入表7-3第二條微代碼地址。(4) 按照上面的方法輸入表7-3微代碼,觀察微代碼與微地址顯示燈的對應(yīng)關(guān)系(注意輸入微代碼的順序是由右至左)。微地址(八進(jìn)制)微地址(二進(jìn)制)微代碼(十六進(jìn)制)00000000007F9001000001005B4202000010016FD9030000110029C6060001109403C107000111010FC110001000018E01110010010041C312001010005B471300101102F1C114001100005B5Aa150011013001DB160011103001DD20010000005B5221010001005B5422010010014FD723010011007FC12401010001CFD82501010106F3C126010110011F412701011106F3D030011000FF73D131011001016E0832011010011F4133011011107DDC34011100000DC135011101207DDE36011110000DC1表73 實驗七微代碼表3. 讀微代碼及校驗微代碼:(1) 先將開關(guān)K1K2K3K4撥到讀狀態(tài)即K1 off、K2 off、K3 on、K4 off,按【RESET】按鈕對單片機復(fù)位,使監(jiān)控指示燈滾動顯示【CLASS SELECt】狀態(tài)。(2) 按【實驗選擇】鍵,顯示【ES-_ _ 】輸入07或7,按【確認(rèn)】鍵,顯示【ES07】。按【確認(rèn)】鍵,顯示【CtL1=_】時,輸入2,按【確認(rèn)】進(jìn)入讀代碼狀態(tài)。(3) 監(jiān)控顯示【U_Addr】,此時輸入6位二進(jìn)制微地址,再按【確認(rèn)】顯示【PULSE】,此時按【單步】鍵,微地址指示燈顯示輸入的微地址,微代碼顯示電路上顯示該地址對應(yīng)的微代碼,至此完成一條微指令的讀過程。(4) 此時監(jiān)控顯示【U_Addr】,按照上述步驟繼續(xù)輸入微地址,對照表7-2表檢查微代碼是否有錯誤,如有錯誤,可按步驟2重新輸入微代碼。4. 寫機器指令(1) 先將K1K2K3K4撥到運行狀態(tài)即K1 on、K2 off、K3 on、K4 off,按【RESET】按鈕對單片機復(fù)位,使監(jiān)控指示燈滾動顯示【CLASS SELECt】狀態(tài)。(2) 按【實驗選擇】鍵,顯示【ES-_ _ 】輸入07或7,按【確認(rèn)】鍵,顯示【ES07】,再按【確認(rèn)】。(3) 監(jiān)控顯示【CtL1=_】,按【取消】鍵,監(jiān)控指示燈顯示【CtL2=_】,輸入1顯示【CtL2_1】表示進(jìn)入對機器指令寫操作狀態(tài),此時撥動CLR清零開關(guān)對地址寄存器、指令寄存器清零。(4) 確定清零后,按【確認(rèn)】顯示閃爍的【PULSE】,連續(xù)按【單步】鍵,當(dāng)微地址顯示燈顯示“010100”時,按【確認(rèn)】鍵,監(jiān)控指示燈顯示【data】,提示輸入機器指令“00”或“0000”(兩位或四位十六進(jìn)制數(shù)),輸入后按【確認(rèn)】,顯示【PULSE】,再按【單步】,微地址顯示燈顯示“011000”,數(shù)據(jù)總線顯示燈顯示“0000000000000000”,即輸入的機器指令。此時第一條機器指令完成。(5) 連續(xù)按【單步】,當(dāng)微地址顯示燈再次顯示“010100”時,按【確認(rèn)】輸入第二條機器指令。依此規(guī)律逐條輸入表74的機器指令,輸完后,可連續(xù)按【取消】或【RESET】退出寫機器指令狀態(tài)。注意,每當(dāng)微地址顯示燈顯示“010100”時,地址指示燈自動加1顯示。如輸入指令為8位,則高8位自動變?yōu)?。地址(十六進(jìn)制)機器指令(十六進(jìn)制)000000010021020001030050040010050060060030070040080000表74 實驗七機器指令表5. 讀機器指令及校驗機器指令:在監(jiān)控指示燈顯示【CtL2=_】狀態(tài)下,輸入2,顯示【CtL2_2】,表示進(jìn)入讀機器指令狀態(tài),按步驟4的方法撥動CLR開關(guān)對地址寄存器和指令寄存器進(jìn)行清零,然后按【確認(rèn)】鍵,顯示【PULSE】,連續(xù)按【單步】鍵,微地址顯示燈顯示從“000000”開始,然后按“010000”、 “010010” 、“010111”方式循環(huán)顯示。當(dāng)微地址燈再次顯示為“010000”時,輸出顯示數(shù)碼管上顯示寫入的機器指令。讀的過程注意微地址顯示燈,地址顯示燈和數(shù)據(jù)總線指示燈的對應(yīng)關(guān)系。如果發(fā)現(xiàn)機器指令有誤,則需重新輸入機器指令。注意:機器指令存放在RAM里,掉電丟失,故斷電后需重新輸入。6. 運行程序在監(jiān)控指示燈顯示【CtL2=_】狀態(tài)下,輸入3,顯示【CtL2_3】,表示進(jìn)入運行機器指令狀態(tài),按步驟4的方法撥動CLR開關(guān)對地址寄存器和指令寄存器進(jìn)行清零,使程序入口地址為00H,可以【單步】運行程序也可以【全速】運行,運行過程中提示輸入相應(yīng)的量,運行結(jié)束后從輸出顯示電路上觀察結(jié)果。7. 實驗結(jié)果說明 注意,進(jìn)位指示燈Z在運算器電路上,亮表示為“1”,滅表示為“0”。本實驗結(jié)果為:輸入一數(shù)據(jù),循環(huán)左移一位,然后執(zhí)行加“1”運算,接著對結(jié)果循環(huán)右移一位,可從數(shù)據(jù)總線觀察結(jié)果,也可從輸出顯示電路數(shù)碼管觀察執(zhí)行結(jié)果。1) 單步運行結(jié)果在監(jiān)控指示燈顯示【run CodE】狀態(tài)下,連續(xù)按【單步】鍵,可以單步運行程序。當(dāng)微地址顯示燈顯示“001 000”時,按【單步】,監(jiān)控顯示燈顯示【dAtA】,提示輸入數(shù)據(jù),輸入8000,按【確認(rèn)】。再連續(xù)按【單步】,在微地址燈顯示“000 111”時,按【單步】,數(shù)據(jù)總線顯示燈顯示“0000000000000001”,即立即數(shù)0001H;再連續(xù)按【單步】,在微地址燈顯示“011 100”時,按【單步】,數(shù)據(jù)總線顯示燈顯示“0000000000000001”,即8000H循環(huán)左移一位;再連續(xù)按【單步】,在微地址燈顯示“000 110”時,按【單步】,數(shù)據(jù)總線顯示燈顯示“0000000000000010”,即8000H循環(huán)左移后加1;再連續(xù)按【單步】,在微地址燈顯示“011 110”時,按【單步】,數(shù)據(jù)總線顯示燈顯示“0000000000000001”,即循環(huán)右移后的最終結(jié)果。2) 全速運行結(jié)果在監(jiān)控指示燈顯示【run CodE】狀態(tài)下,按【全速】鍵,則開始自動運行程序,在監(jiān)控指示燈顯示【dAtA】時輸入數(shù)據(jù)“8000”,按【確定】鍵,程序繼續(xù)運行,此時可由輸出顯示電路的數(shù)碼管顯示最終運算結(jié)果“0001”。、開關(guān)控制操作方式實驗本實驗中所有控制開關(guān)撥動,相應(yīng)指示燈亮代表高電平“1”,指示燈滅代表低電平“0”。 連線時應(yīng)注意:對于橫排座,應(yīng)使排線插頭上的箭頭面向自己插在橫排座上;對于豎排座,應(yīng)使排線插頭上的箭頭面向左邊插在豎排座上。1.在圖73接線圖上更改如下接線:斷開控制總線C1C6和F4F1上的接線數(shù)據(jù)輸入電路DIJ1 接 數(shù)據(jù)總線BD7-BD0數(shù)據(jù)輸入電路DIJ2 接 數(shù)據(jù)總線BD15-BD8數(shù)據(jù)輸入電路DIJ-G 接 I/O控制電路Y3微控器接口UAJ1 接 控制開關(guān)電路UA5-UA0脈沖源及時序電路fin 接 脈沖源及時序電路f/8脈沖源及時序電路T4T1 接 控制總線T4-T1控制開關(guān)電路CA1 接 控制總線E4控制開關(guān)電路CA2 接 控制總線E52實驗步驟:1)寫微代碼 (以寫表7-3的微代碼為例) :首先將微程序控制電路上的開關(guān)K1K2K3撥到寫入狀態(tài),即K1 off、K2 on、K3 off,然后將24位微代碼輸入及顯示電路上的開關(guān)K4撥到on狀態(tài)。置控制開關(guān)UA5 UA0=“000000”,輸入微地址“000000”, 置24位微代碼開關(guān)MS24-MS1為:“00000000 01111111 10010000”,輸入24位二進(jìn)制微代碼,即“007F90”,按【單步】,微地址燈顯示“000 000”,寫入微代碼。保持K1K2K3K4狀態(tài)不變,寫入表73的所有微代碼。2)讀微代碼并驗證結(jié)果:將微程序控制電路上的開關(guān)K1K2K3撥到讀出狀態(tài),即K1 off、K2 off、K3 on,然后將24位微代碼輸入及顯示電路上的開關(guān)K4撥到off狀態(tài)。置控制開關(guān)UA5 UA0=“000000”,輸入微地址“000000”, 按【單步】,微地址燈顯示“000 000”,24位微代碼顯示“00000000 01111111 10010000”,即第一條微代碼。保持K1K2K3K4狀態(tài)不變,改變UA5 UA0微地址的值,讀出相應(yīng)的微代碼,并和表73的微代碼比較,驗證是否正確。如發(fā)現(xià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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論