第一篇:計(jì)算機(jī)組成原理實(shí)驗(yàn)報(bào)告5- PC實(shí)驗(yàn)
2.5
PC實(shí)驗(yàn)
姓名:孫堅(jiān)
學(xué)號(hào):134173733
班級(jí):13計(jì)算機(jī)
日期:2015.5.15
一.實(shí)驗(yàn)要求:利用CPTH 實(shí)驗(yàn)儀上的K16..K23 開(kāi)關(guān)做為DBUS 的數(shù)據(jù),其它開(kāi)關(guān)做為控制信號(hào),實(shí)現(xiàn)程序計(jì)數(shù)器PC的寫(xiě)入及加1 功能。
二.實(shí)驗(yàn)?zāi)康模?/p>
1、了解模型機(jī)中程序計(jì)數(shù)器PC的工作原理及其控制方法。
2、了解程序執(zhí)行過(guò)程中順序和跳轉(zhuǎn)指令的實(shí)現(xiàn)方法。
三.實(shí)驗(yàn)電路:PC 是由兩片74HC161構(gòu)成的八位帶預(yù)置記數(shù)器,預(yù)置數(shù)據(jù)來(lái)自數(shù)據(jù)總線(xiàn)。記數(shù)器的輸出通過(guò)74HC245(PCOE)送到地址總線(xiàn)。PC 值還可以通過(guò)74HC245(PCOE_D)送回?cái)?shù)據(jù)總線(xiàn)。
PC 原理圖
在CPTH 中,PC+1 由PCOE 取反產(chǎn)生。當(dāng)RST = 0 時(shí),PC 記數(shù)器被清0 當(dāng)LDPC = 0 時(shí),在CK的上升沿,預(yù)置數(shù)據(jù)被打入PC記數(shù)器 當(dāng)PC+1 = 1 時(shí),在CK的上升沿,PC記數(shù)器加一 當(dāng)PCOE = 0 時(shí),PC值送地址總線(xiàn)
PC打入控制原理圖
PC 打入控制電路由一片74HC151 八選一構(gòu)成(isp1016實(shí)現(xiàn))。
當(dāng)ELP=1 時(shí),LDPC=1,不允許PC被預(yù)置 當(dāng)ELP=0 時(shí),LDPC 由IR3,IR2,Cy,Z確定 當(dāng)IR3 IR2 = 1 X 時(shí),LDPC=0,PC 被預(yù)置
當(dāng)IR3 IR2 = 0 0 時(shí),LDPC=非Cy,當(dāng)Cy=1時(shí),PC 被預(yù)置 當(dāng)IR3 IR2 = 0 1 時(shí),LDPC=非Z,當(dāng)Z=1 時(shí),PC 被預(yù)置 連接線(xiàn)表
四.實(shí)驗(yàn)數(shù)據(jù)及步驟:
實(shí)驗(yàn)1:PC 加一實(shí)驗(yàn) 置控制信號(hào)為:
按一次STEP脈沖鍵,CK產(chǎn)生一個(gè)上升沿,數(shù)據(jù)PC 被加一。
實(shí)驗(yàn)2:PC 打入實(shí)驗(yàn)
二進(jìn)制開(kāi)關(guān)K23-K16用于DBUS[7:0]的數(shù)據(jù)輸入,置數(shù)據(jù)12H
置控制信號(hào)為:
每置控制信號(hào)后,按一下STEP鍵,觀察PC的變化。
五.心得體會(huì):
經(jīng)過(guò)上一個(gè)實(shí)驗(yàn)的練習(xí),在做這個(gè)實(shí)驗(yàn)的時(shí)候更加得心應(yīng)手,了解了模型機(jī)中程序計(jì)數(shù)器PC的工作原理及其控制方法,還有了解了程序執(zhí)行過(guò)程中順序和跳轉(zhuǎn)指令的實(shí)現(xiàn)方法。
第二篇:計(jì)算機(jī)組成原理實(shí)驗(yàn)報(bào)告+++數(shù)據(jù)通路實(shí)驗(yàn)
數(shù)據(jù)通路組成實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/p>
(1)將雙端口通用寄存器組和雙端口存儲(chǔ)器模塊聯(lián)機(jī);
(2)進(jìn)一步熟悉計(jì)算機(jī)的數(shù)據(jù)通路;
(3)掌握數(shù)字邏輯電路中故障的一般規(guī)律,以及排除故障的一般原則和方法;
(4)鍛煉分析問(wèn)題與解決問(wèn)題的能力,在出現(xiàn)故障的情況下,獨(dú)立分析故障現(xiàn)象,并排除故障。
二、實(shí)驗(yàn)電路
圖9.14示出了數(shù)據(jù)通路實(shí)驗(yàn)電路圖,它是將前面進(jìn)行的雙端口存儲(chǔ)器實(shí)驗(yàn)?zāi)K和一個(gè)雙端口通用寄存器組模塊連接在一起形成的,存儲(chǔ)器的指令端口不參與本次實(shí)驗(yàn),通用寄存器組連接運(yùn)算器模塊,本實(shí)驗(yàn)涉及其中的操作數(shù)寄存器DR2。
由于RAM是三態(tài)門(mén)輸出,因而可以將RAM連接到數(shù)據(jù)總線(xiàn)BUS上。此外,BUS上還連接著雙端口通用寄存器組。這樣,寫(xiě)入RAM的數(shù)據(jù)可由通用寄存器提供,而從RAM讀出的數(shù)據(jù)也可送到通用寄存器保存。
RAM和DR2在前面的實(shí)驗(yàn)中使用過(guò)。對(duì)于通用寄存器組RF,它由一個(gè)在系統(tǒng)可編程(In System Programable)芯片ispLSI 1016固化了通用寄存器組的功能而成,其功能與雙端口寄存器組MC14580相類(lèi)似,內(nèi)含四個(gè)8位的通用寄存器,帶有一個(gè)輸入端口和兩個(gè)輸出端口,從而可以同時(shí)寫(xiě)入一路數(shù)據(jù),讀出兩路數(shù)據(jù)。輸入端口取名為WR端口,連接一個(gè)8位的緩沖寄存器ER(已集成在ispLSI 1016芯片中),輸出端口取名為RS端口、RD端口,分別連接運(yùn)算器模塊的兩個(gè)操作數(shù)寄存器DR1、DR2,其中,連接DR1的RS端口還可通過(guò)一個(gè)8位的三態(tài)門(mén)RSO直接向BUS輸出。雙端口通用寄存器組模塊的控制信號(hào)中,RS1、RS0用于選擇從RS端口讀出的通用寄存器,RD1、RD0用于選擇從RD端口讀出的通用寄存器,上述選擇信號(hào)在T1脈沖的上升沿到來(lái)時(shí)生效。而WR1、WR0則用于選擇從WR端口寫(xiě)入的通用寄存器。WRD是寫(xiě)入控制信號(hào),WRD=1時(shí),在T2上升沿的時(shí)刻,從ER寫(xiě)入數(shù)據(jù);WRD=0時(shí),ER中的數(shù)據(jù)不寫(xiě)入通用寄存器中。LDER信號(hào)控制ER從BUS寫(xiě)入數(shù)據(jù),RS-BUS信號(hào)則控制RS端口到BUS的輸出三態(tài)門(mén)。以上控制信號(hào)各自連接一個(gè)二進(jìn)制開(kāi)關(guān)。
三、實(shí)驗(yàn)設(shè)備
(1)JYS-4計(jì)算機(jī)組成原理實(shí)驗(yàn)儀一臺(tái)(2)雙蹤示波器一臺(tái)(3)直流萬(wàn)用表一只(4)邏輯測(cè)試筆一支
四、實(shí)驗(yàn)任務(wù)
(1)將實(shí)驗(yàn)電路與操作面板的有關(guān)信號(hào)進(jìn)行線(xiàn)路連接,方法同前面的實(shí)驗(yàn)。(2)用8位數(shù)據(jù)開(kāi)關(guān)向RF中的四個(gè)通用寄存器分別置入以下數(shù)據(jù)(十六進(jìn)制):R0=0F,R1=F0,R2=55,R3=AA。
給R0置入0F的步驟是:先用8位數(shù)碼開(kāi)關(guān)將0F置入ER,并且選擇WR1=WR0=0,再將ER的數(shù)據(jù)置入RF。給其他通用寄存器置入數(shù)據(jù)的步驟與此類(lèi)似。
(3)分別將R0至R3中的數(shù)據(jù)同時(shí)讀入到DR2寄存器和BUS上,觀察其數(shù)據(jù)是否存入R0至R3中的數(shù)據(jù),并記錄數(shù)據(jù)。其中BUS上的數(shù)據(jù)可直接用指示燈顯示,DR2中的數(shù)據(jù)可用邏輯筆測(cè)試有關(guān)引腳。
(4)用8位數(shù)碼開(kāi)關(guān)向AR1送入一個(gè)地址0F,然后將R0中的0F寫(xiě)入RAM。用同樣的方法,依次將R1至R3中的數(shù)據(jù)寫(xiě)入RAM中的F0、55、AA單元。
(5)分別將RAM中AA單元的數(shù)據(jù)寫(xiě)入R0,55單元的數(shù)據(jù)寫(xiě)入R1,F0單元寫(xiě)入R2,0F單元寫(xiě)入R3。然后將R3、R2、R1、R0中的數(shù)據(jù)讀出到BUS上,通過(guò)指示燈驗(yàn)證讀出的數(shù)據(jù)是否正確,并記錄數(shù)據(jù)。
(6)進(jìn)行RF并行輸入輸出試驗(yàn)。
1.選擇RS端口對(duì)應(yīng)R0,RD端口對(duì)應(yīng)R1,WR端口對(duì)應(yīng)R2,并使WRD=1,觀察并行輸入輸出的結(jié)果。選擇RS端口對(duì)應(yīng)R2,驗(yàn)證剛才的寫(xiě)入是否生效。記錄數(shù)據(jù)。2.保持RS端口和WR端口同時(shí)對(duì)應(yīng)R2,WRD=1,而ER中置入新的數(shù)據(jù),觀察并行輸入輸出的結(jié)果,RS端口輸出的是舊的還是新的數(shù)據(jù)?(7)在數(shù)據(jù)傳送過(guò)程中,發(fā)現(xiàn)了什么故障?如何克服的?
五、實(shí)驗(yàn)要求(1)做好實(shí)驗(yàn)預(yù)習(xí)和準(zhǔn)備工作,掌握實(shí)驗(yàn)電路的數(shù)據(jù)通路特點(diǎn)和通用寄存器組的功能特性。(2)寫(xiě)出實(shí)驗(yàn)報(bào)告,內(nèi)容為
1.實(shí)驗(yàn)?zāi)康模?/p>
2.如碰到故障,記錄故障現(xiàn)象,排除故障的分析思路,故障定位及故障的性質(zhì); 3.實(shí)驗(yàn)數(shù)據(jù)記錄;
4.值得討論的其他問(wèn)題。
第三篇:計(jì)算機(jī)組成原理實(shí)驗(yàn)報(bào)告
計(jì)算機(jī)科學(xué)與技術(shù)-計(jì)10計(jì) 算 機(jī) 組 成 原 理 實(shí) 驗(yàn) 報(bào)姓
名:
學(xué)
號(hào):
班
級(jí):
指 導(dǎo) 老 師:
鄭
計(jì)算機(jī)科學(xué)與技術(shù)-計(jì)10
4一個(gè)上升沿,數(shù)據(jù)66H 被寫(xiě)入W 寄存器。3)將11H寫(xiě)入R0寄存器
①K23-K16開(kāi)關(guān)置零,按[RST]鈕,按[TV/ME]鍵三次,進(jìn)入“Hand......”手動(dòng)狀態(tài)。②二進(jìn)制開(kāi)關(guān)K23-K16用于DBUS[7:0]的數(shù)據(jù)輸入,置數(shù)據(jù)11H
置控制信號(hào)為:
③按住STEP脈沖鍵,CK由高變低,觀察現(xiàn)象;放開(kāi)STEP鍵,CK由低變高,產(chǎn)生一個(gè)上升沿,數(shù)據(jù)11H 被寫(xiě)入R0 寄存器。4)將22H寫(xiě)入R1寄存器
①K23-K16開(kāi)關(guān)置零,按[RST]鈕,按[TV/ME]鍵三次,進(jìn)入“Hand......”手動(dòng)狀態(tài)。②二進(jìn)制開(kāi)關(guān)K23-K16用于DBUS[7:0]的數(shù)據(jù)輸入,置數(shù)據(jù)22H
置控制信號(hào)為:
③按住STEP脈沖鍵,CK由高變低,觀察現(xiàn)象;放開(kāi)STEP鍵,CK由低變高,產(chǎn)生一個(gè)上升沿,數(shù)據(jù)22H被寫(xiě)入R1 寄存器。5)將33H寫(xiě)入R2寄存器
①K23-K16開(kāi)關(guān)置零,按[RST]鈕,按[TV/ME]鍵三次,進(jìn)入“Hand......”手動(dòng)狀態(tài)。②二進(jìn)制開(kāi)關(guān)K23-K16用于DBUS[7:0]的數(shù)據(jù)輸入,置數(shù)據(jù)33H
置控制信號(hào)為:
③按住STEP脈沖鍵,CK由高變低,觀察現(xiàn)象;放開(kāi)STEP鍵,CK由低變高,產(chǎn)生一個(gè)上升沿,數(shù)據(jù)33H被寫(xiě)入R2 寄存器。
計(jì)算機(jī)科學(xué)與技術(shù)-計(jì)104
這時(shí)寄存器R3 的紅色輸出指示燈亮,R3 寄存器的數(shù)據(jù)送上數(shù)據(jù)總線(xiàn)。此時(shí)數(shù)據(jù)總線(xiàn)指示燈L7...L0為: 01000100.將K11(RRD)置為1,關(guān)閉R3 寄存器輸出。11)將12H寫(xiě)入MAR寄存器
①K23-K16開(kāi)關(guān)置零,按[RST]鈕,按[TV/ME]鍵三次,進(jìn)入“Hand......”手動(dòng)狀態(tài)。②二進(jìn)制開(kāi)關(guān)K23-K16用于DBUS[7:0]的數(shù)據(jù)輸入,置數(shù)據(jù)12H
置控制信號(hào)為:
③按住STEP脈沖鍵,CK由高變低,觀察現(xiàn)象;放開(kāi)STEP鍵,CK由低變高,產(chǎn)生一個(gè)上升沿,數(shù)據(jù)12H被寫(xiě)入MAR寄存器。12)將34H寫(xiě)入ST寄存器
①K23-K16開(kāi)關(guān)置零,按[RST]鈕,按[TV/ME]鍵三次,進(jìn)入“Hand......”手動(dòng)狀態(tài)。②二進(jìn)制開(kāi)關(guān)K23-K16用于DBUS[7:0]的數(shù)據(jù)輸入,置數(shù)據(jù)34H
置控制信號(hào)為:
③按住STEP脈沖鍵,CK由高變低,觀察現(xiàn)象;放開(kāi)STEP鍵,CK由低變高,產(chǎn)生一個(gè)上升沿,數(shù)據(jù)34H被寫(xiě)入ST 寄存器。13)將56H寫(xiě)入OUT寄存器
①K23-K16開(kāi)關(guān)置零,按[RST]鈕,按[TV/ME]鍵三次,進(jìn)入“Hand......”手動(dòng)狀態(tài)。②二進(jìn)制開(kāi)關(guān)K23-K16用于DBUS[7:0]的數(shù)據(jù)輸入,置數(shù)據(jù)56H
置控制信號(hào)為:
計(jì)算機(jī)科學(xué)與技術(shù)-計(jì)10
4(2)掌握簡(jiǎn)單運(yùn)算器的數(shù)據(jù)傳送通道。
(3)能夠按給定數(shù)據(jù),完成實(shí)驗(yàn)指定的算術(shù)/邏輯運(yùn)算。
4.實(shí)驗(yàn)步驟:
①將55H寫(xiě)入A寄存器
二進(jìn)制開(kāi)關(guān)K23-K16用于DBUS[7:0]的數(shù)據(jù)輸入,置數(shù)據(jù)55H
置控制信號(hào)為:
按住STEP脈沖鍵,CK由高變低,這時(shí)寄存器A的黃色選擇指示燈亮,表明選擇A寄存器。放開(kāi)STEP鍵,CK由低變高,產(chǎn)生一個(gè)上升沿,數(shù)據(jù)55H被寫(xiě)入A寄存器。
②將33H寫(xiě)入W寄存器
二進(jìn)制開(kāi)關(guān)K23-K16用于DBUS[7:0]的數(shù)據(jù)輸入,置數(shù)據(jù)33H
置控制信號(hào)為:
按住STEP脈沖鍵,CK由高變低,這時(shí)寄存器W 的黃色選擇指示燈亮,表明選擇W寄存器。放開(kāi)STEP 鍵,CK 由低變高,產(chǎn)生一個(gè)上升沿,數(shù)據(jù)33H 被寫(xiě)入W 寄存器。
③置下表的控制信號(hào),檢驗(yàn)運(yùn)算器的運(yùn)算結(jié)果
計(jì)算機(jī)科學(xué)與技術(shù)-計(jì)10
4實(shí)驗(yàn)2:移位實(shí)驗(yàn) 將55H寫(xiě)入A寄存器
二進(jìn)制開(kāi)關(guān)K23-K16用于DBUS[7:0]的數(shù)據(jù)輸入,置數(shù)據(jù)55H
置控制信號(hào)為:
按住STEP脈沖鍵,CK由高變低,這時(shí)寄存器A的黃色選擇指示燈亮,表明選擇A寄存器。放開(kāi)STEP鍵,CK由低變高,產(chǎn)生一個(gè)上升沿,數(shù)據(jù)55H被寫(xiě)入A寄存器。
S2S1S0=111 時(shí)運(yùn)算器結(jié)果為寄存器A內(nèi)容
5.實(shí)驗(yàn)結(jié)果與分析:
移位與輸出門(mén)是否打開(kāi)無(wú)關(guān),無(wú)論運(yùn)算器結(jié)果如何,移位門(mén)都會(huì)給出移位結(jié)果。但究竟把那一個(gè)結(jié)果送數(shù)據(jù)總線(xiàn)由X2X1X0輸出選擇決定。表中第一行,A中寄存器值為55H=01010101,L為左移結(jié)果為:10101010B=AAH,D為直通輸入結(jié)果為原值,R為右
計(jì)算機(jī)科學(xué)與技術(shù)-計(jì)10
4(2)按圖3—6連接實(shí)驗(yàn)線(xiàn)路,仔細(xì)查線(xiàn)無(wú)誤后接通源。
4.實(shí)驗(yàn)結(jié)果與分析:
① 編程
計(jì)算機(jī)科學(xué)與技術(shù)-計(jì)104
MAO清零,從而明確本機(jī)的運(yùn)行入口微地址為000000(二進(jìn)制)。
D.按動(dòng)“START”鍵,啟動(dòng)時(shí)序電路,則每按動(dòng)一次啟動(dòng)鍵,讀出一條微指令后停機(jī),此時(shí)實(shí)驗(yàn)臺(tái)上的微地址顯示燈和微命令顯示燈將顯示所讀出的一條指令。注意:在當(dāng)前條件下,可將“MICRO—CONTROLLER”單元的sE6一sEl接至“SWITCH UNIT”中的S3—Cn對(duì)應(yīng)二進(jìn)制開(kāi)關(guān)上,可通過(guò)強(qiáng)置端sEl一sE6人為設(shè)置分支地址。將SEI—SE6對(duì)應(yīng)二進(jìn)制開(kāi)關(guān)量為“1”,當(dāng)需要人為設(shè)置分支地址時(shí),將某個(gè)或幾個(gè)二進(jìn)制開(kāi)關(guān)置“0”,相應(yīng)的微地址位即被強(qiáng)置為“l(fā)”,從而改變下一條微指令的地址。(二進(jìn)制開(kāi)關(guān)置為“0”,相應(yīng)的微地址位將被強(qiáng)置為“l(fā)”)④ 連續(xù)運(yùn)行
A.將編程開(kāi)關(guān)置為“RUN(運(yùn)行)”狀態(tài)。
B.將實(shí)驗(yàn)板的單步開(kāi)關(guān)“STEP”置為“EXEC”狀態(tài)。
C.使CLR從l→0→l,此時(shí)微地址寄存器清“0”,從而給出取指微指令的入口地址為 000000(二進(jìn)制)。
D.啟動(dòng)時(shí)序電路,則可連續(xù)讀出微指令。
5.實(shí)驗(yàn)注意事項(xiàng):
此次實(shí)驗(yàn)主要要掌握微程序控制器的組成、工作原理;明確微程序、微指令、微命令的概念;掌握微指令、微程序的設(shè)計(jì)及調(diào)試方法;通過(guò)單步方式執(zhí)行若干條微指令深入理解微程序控制器的工作原理;用邏輯分析儀測(cè)試微程序控制器指令的轉(zhuǎn)移,微程序、微指
第四篇:計(jì)算機(jī)組成原理及實(shí)驗(yàn)報(bào)告
中南大學(xué)
計(jì)算機(jī)組成原理及匯編實(shí)驗(yàn)報(bào)告
姓 名: 代巍 學(xué) 號(hào): 0909121615 專(zhuān)業(yè)班級(jí): 信安1201 指導(dǎo)教師: 盛羽 學(xué) 院: 信息科學(xué)與工程學(xué)院
計(jì)算機(jī)組成原理實(shí)驗(yàn)
實(shí)驗(yàn)1 總線(xiàn)基本實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/p>
(1)掌握靜態(tài)存儲(chǔ)隨機(jī)存儲(chǔ)器RAM的工作特性(2)掌握靜態(tài)存儲(chǔ)隨機(jī)存儲(chǔ)器RAM的讀寫(xiě)方法
二、實(shí)驗(yàn)設(shè)備
74LS374(一片),74LS245(一片),74LS273(一片),靜態(tài)存儲(chǔ)器MEMORY 6116(一片),8位數(shù)據(jù)排線(xiàn)(一片),與門(mén)(兩片),與非門(mén)(一片),單脈沖(三片),開(kāi)關(guān)若干,燈泡若干。
三、實(shí)驗(yàn)原理
總線(xiàn)傳輸實(shí)驗(yàn)框圖如圖4.1所示,它將幾種不同的設(shè)備掛至總線(xiàn)上,有存儲(chǔ)器、輸入 設(shè)備、輸出設(shè)備、寄存器。這些設(shè)備都需要有三態(tài)輸出控制,按照傳輸要求恰當(dāng)有序的控制 它們,就可實(shí)現(xiàn)總線(xiàn)信息傳輸。
總線(xiàn)傳輸實(shí)驗(yàn)框圖
總線(xiàn)基本實(shí)驗(yàn)要求如下:根據(jù)掛在總線(xiàn)上的幾個(gè)基本部件,設(shè)計(jì)一個(gè)簡(jiǎn)單的流程。(1)輸入設(shè)備將一個(gè)數(shù)輸入R0 寄存器。(2)輸入設(shè)備將另一個(gè)數(shù)輸入地址寄存器。
(3)將R0 寄存器中的數(shù)寫(xiě)入到當(dāng)前地址的存儲(chǔ)器中。(4)將當(dāng)前地址的存儲(chǔ)器中的數(shù)用LED 數(shù)碼管顯示。
四、實(shí)驗(yàn)步驟
(1)選擇實(shí)驗(yàn)設(shè)備:根據(jù)實(shí)驗(yàn)原理圖,將所需要的組件從組件列表中拖到實(shí)驗(yàn)設(shè)計(jì)流程欄中。
搭建實(shí)驗(yàn)流程:將已選擇的組件進(jìn)行連線(xiàn)(鼠標(biāo)從一個(gè)引腳的端點(diǎn)拖動(dòng)到另一組件的引腳端,即完成連線(xiàn))。搭建好的實(shí)驗(yàn)流程圖如圖4.3所示。
(2)初始化各芯片的控制信號(hào),仔細(xì)檢查無(wú)誤后點(diǎn)擊 【電源開(kāi)/關(guān)】按鈕接通電源。
總線(xiàn)基本實(shí)驗(yàn)流程圖
(3)實(shí)驗(yàn)的具體操作步驟如圖4.2 所示。
首先應(yīng)關(guān)閉所有三態(tài)門(mén)(SW-B=1,CS=1,R0-B=1,LED-B=1),并將關(guān)聯(lián)的信號(hào)置為:LDAR=0,LDR0=0,W/R(RAM)=1,W/R(LED)=1。然后參照如下操作流程,先給數(shù)據(jù)開(kāi)關(guān)置數(shù),打開(kāi)數(shù)據(jù)輸出三態(tài)門(mén),開(kāi)關(guān)LDR0置1,并雙擊旁邊的單脈沖,使產(chǎn)生一個(gè)上升沿將數(shù)據(jù)輸入到R0 中;然后繼續(xù)給數(shù)據(jù)開(kāi)關(guān)置數(shù),開(kāi)關(guān)LDAR置1,并雙擊旁邊的單脈沖,使產(chǎn)生一個(gè)上升沿將數(shù)據(jù)輸入到AR 中;關(guān)閉數(shù)據(jù)開(kāi)關(guān)三態(tài)門(mén),打開(kāi)R0 寄存器輸出控制(開(kāi)關(guān)LDR0和開(kāi)關(guān)R0-B都置0),使存儲(chǔ)器處于寫(xiě)狀態(tài)(W/R=0、CS=0)將R0 中的數(shù)寫(xiě)到存儲(chǔ)器中;關(guān)閉存儲(chǔ)器片選,關(guān)閉R0 寄存器輸出(開(kāi)關(guān)R0-B置0),使存儲(chǔ)器處于讀狀態(tài)(W/R=
1、CS=0)。
實(shí)驗(yàn)步驟圖
五、實(shí)驗(yàn)結(jié)果及結(jié)果分析
實(shí)驗(yàn)截圖
六、實(shí)驗(yàn)心得體會(huì)
通過(guò)本次本次實(shí)驗(yàn):
(1)了解了一些邏輯器的組成結(jié)構(gòu)(2)掌握一些邏輯器的工作原理(3)驗(yàn)證了各邏輯器件的組合功能
(4)了解了總線(xiàn)和各個(gè)器件之間的工作過(guò)程。
通過(guò)親自動(dòng)手,能更好的理解邏輯器件的組成及功能。同時(shí)實(shí)驗(yàn)中遇到各種問(wèn)題,解決后,讓自己的知識(shí)更加牢固。同時(shí)也意識(shí)到自己的不足,需要更加的努力!
匯編語(yǔ)言實(shí)驗(yàn)
實(shí)驗(yàn)2 匯編語(yǔ)言編程實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/p>
(1)掌握循環(huán)程序的設(shè)計(jì)方法
(2)掌握匯編語(yǔ)言源程序的編輯、匯編、連接及調(diào)試過(guò)程。
(3)進(jìn)一步熟悉利用DEBUG程序修改參數(shù)的方法,并檢查和驗(yàn)證結(jié)果的正確性。(4)學(xué)會(huì)針對(duì)不同的問(wèn)題,選用不同的組織循環(huán)的方法。
二、實(shí)驗(yàn)設(shè)備
PC機(jī)及masm for windows軟件。
三、實(shí)驗(yàn)要求
(1)編輯一個(gè)指定的匯編語(yǔ)言源程序,并對(duì)其進(jìn)行匯編、連接和運(yùn)行。(2)利用DEBUG進(jìn)行程序調(diào)試,掌握常用命令的使用方法,觀察運(yùn)行結(jié)果。
(3)匯編語(yǔ)言上機(jī)操作,掌握循環(huán)程序的過(guò)程和匯編實(shí)現(xiàn)原理,進(jìn)一步熟練掌握DEBUG操作指令以及匯編語(yǔ)言源程序的編輯、匯編、連接及調(diào)試過(guò)程。
四、實(shí)驗(yàn)內(nèi)容
實(shí)驗(yàn)一:編程計(jì)算1~100的和
實(shí)驗(yàn)二:編程計(jì)算 S=1+2*3+3*4+4*5+……+N*(N+1),N由用戶(hù)輸入,將結(jié)果在屏幕顯示
實(shí)驗(yàn)三:編程計(jì)算SUM=1!+2!+3!+4!+5!,將結(jié)果輸出,需要有子程序
五、程序源代碼
實(shí)驗(yàn)一程序代碼如下: DATA SEGMENT SUM1 DW 0,13,10,'$'
DATA ENDS STACK1 SEGMENT S DB 1000 DUP(0)STACK1 ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK1 START: MOV AX, DATA MOV DS, AX MOV AX, 0 MOV CX, 0
LOOP1: ADD AX, CX INC CX CMP CX, 101 JL LOOP1 MOV SUM1, AX lea di ,sum1 call cv mov ah,9 lea dx,sum1 int 21h jmp ok
cv:
push cx push dx xor cx,cx mov si,10 s0:
xor dx,dx inc cx div si push dx cmp ax,0 jnz s0 s1: pop dx add dl,“0”
mov byte ptr [di],dl inc di loop s1 mov al,20h s2:
cmp byte ptr [di],0 jz s3
cmp byte ptr [di],43h jz s3
mov byte ptr [di],al inc di jmp s2 s3: pop dx pop cx ret ok:
MOV AH,4CH INT 21H CODE ENDS END START
實(shí)驗(yàn)二程序代碼如下: DATAS SEGMENT
s dw ?;此處輸入數(shù)據(jù)段代碼
n dw ?
DATAS ENDS STACKS SEGMENT
dw 64 dup(?);此處輸入堆棧段代碼 STACKS ENDS CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS START:
loop1:
clc
;此指令清除cf標(biāo)志位cf=0
mov ah,1h
;通過(guò)給AH寄存器賦值,然后調(diào)用INT 21H指令,;計(jì)算機(jī)就會(huì)根據(jù)AH寄存器中的值執(zhí)行相應(yīng)的操作
;其中1H是鍵盤(pán)輸入并回顯,AL中有輸入字符
int 21h
cmp al,0dh;比較是不是回車(chē)鍵,不改變操作數(shù),只改變標(biāo)志位,若ZF=1,則表示兩數(shù)相等
je print;ZF=1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí) 表示輸入完畢
cmp al,'0'
jz rotate;ZF=1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)
stc
;此指令設(shè)置cf為1 rotate:
rcl bx,1
;注意這里是帶進(jìn)位左移,程序的思想所在 jmp loop1;無(wú)條件轉(zhuǎn)移 print:
mov n,bx
MOV AX,DATAS
MOV DS,AX
mov bx,0001h
mov dl,02h lop2:mov al,bl
inc dl;加1
mul dl;無(wú)符號(hào)數(shù)乘法AX=oprd*al
add bx,ax
cmp ax,n;與n比較
jna lop2;不高于轉(zhuǎn)移
mov s,bx
mov ch,4
mov cl,4 lop1:rol bx,cl
mov dl,bl
and dl,0Fh
cmp dl,09h
jbe next;低于等于轉(zhuǎn)移
add dl,7 next:add dl,30h
mov ah,2
int 21h
dec ch
jnz lop1;非零轉(zhuǎn)移
MOV AH,4CH
INT 21H CODES ENDS
END START 實(shí)驗(yàn)三程序代碼如下:
DATA SEGMENT
OUTPUT_TIPS DB 10, 13, “1!+ 2!+ 3!+ 4!+ 5!=
NNN DW 1 DATA ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA START:
MOV AX, DATA
MOV DS, AX
MOV BX, 2
;0、1 的階乘都是 1 LOP:
MOV AX, BX
MOV CX, AX
CALL FACTOR
;用遞歸方法計(jì)算階乘
$”
ADD AX, NNN
MOV NNN, AX
INC BX
CMP BX, 6
JNE LOP
MOV AX, NNN
DISP:
PUSH AX
MOV DX, OFFSET OUTPUT_TIPS
MOV AH, 9
;顯示字符串.INT 21H
POP AX
MOV BX, 10
MOV CX, 0 L1:
MOV DX, 0
DIV BX
PUSH DX
INC CX
AND AX, AX
JNZ L1 L2:
POP DX
ADD DL, 48
MOV AH, 2
INT 21H
LOOP L2 EXIT:
MOV AH, 4CH
INT 21H
FACTOR PROC NEAR
;階乘.DEC CX
;CX=2~8
CMP CX, 1
;=1 ?
JE
FACTOR_E
;為1就退出
PUSH CX
;非1壓棧保存
CALL FACTOR
;遞歸調(diào)用,把CX一次次的減一
POP CX
;彈出一個(gè)個(gè)遞減的數(shù)值
MUL CX
;乘到AX FACTOR_E:
RET
;AX=(2~8)!FACTOR ENDP
;簡(jiǎn)潔明了,無(wú)與倫比 CODE ENDS
END START
六、運(yùn)行結(jié)果
實(shí)驗(yàn)一調(diào)試
實(shí)驗(yàn)一運(yùn)行結(jié)果
實(shí)驗(yàn)二調(diào)試
實(shí)驗(yàn)二運(yùn)行結(jié)果
實(shí)驗(yàn)三調(diào)試
實(shí)驗(yàn)三運(yùn)行結(jié)果
七、實(shí)驗(yàn)總結(jié)
通過(guò)本次上機(jī)實(shí)驗(yàn),學(xué)習(xí)了數(shù)值轉(zhuǎn)換,循環(huán),中斷,分支結(jié)構(gòu)等知識(shí)點(diǎn)。在課堂中聽(tīng)到的關(guān)于匯編語(yǔ)言中的循環(huán)和分支程序的知識(shí)點(diǎn),我們將它實(shí)踐化了,使得我們更深一步的認(rèn)識(shí)和理解了循環(huán)程序和分支程序。在實(shí)驗(yàn)中,暴漏出來(lái)的問(wèn)題就是,對(duì)于一些符號(hào)它所代表的是什么還是不熟悉,導(dǎo)致程序出現(xiàn)問(wèn)題,因此,以后還要多看書(shū),多練習(xí),加強(qiáng)這方面的記憶。這次實(shí)驗(yàn)所學(xué)到的印象最深的就是LOOP循環(huán)以及有符號(hào)數(shù)跳轉(zhuǎn)JLE。
總體上來(lái)講,有些知識(shí)點(diǎn)理解的還不到位,希望通過(guò)以后的練習(xí)能加強(qiáng)對(duì)這些知識(shí)點(diǎn)的理解。實(shí)驗(yàn)過(guò)程中,遇到很多問(wèn)題,比如程序一的編寫(xiě),基本上都是學(xué)習(xí)書(shū)本以及依靠書(shū)本多做題才編出來(lái)的,僅有的幾次上機(jī)實(shí)驗(yàn),要抓緊時(shí)間學(xué)習(xí)和交流,時(shí)間挺少的。在今后的學(xué)習(xí)和生活中,我們都需要相互學(xué)習(xí)、相互交流,共同進(jìn)步。學(xué)習(xí)是一個(gè)循序漸進(jìn)的過(guò)程。通過(guò)這次實(shí)驗(yàn),使我了解到運(yùn)行調(diào)試程序的不易,今后一定更加努力,把程序做到最好!對(duì)于不足之處,會(huì)積極改正。掌握匯編語(yǔ)言程序編輯、匯編、連接、運(yùn)行以及利用DEBUG調(diào)試程序的方法。加深對(duì)循環(huán)和分支程序結(jié)構(gòu)的理解,掌握循環(huán)和分支結(jié)構(gòu)程序設(shè)計(jì)的方法,熟練匯編語(yǔ)言程序上機(jī)調(diào)試的方法和過(guò)程。能夠獨(dú)立自主的編輯代碼解決一些小問(wèn)題,對(duì)匯編有了初步的了解。但仍有很多需要學(xué)習(xí)的地方!
第五篇:計(jì)算機(jī)組成原理實(shí)驗(yàn)報(bào)告
課程名稱(chēng):計(jì)算機(jī)組成原理學(xué)
院:計(jì)算機(jī)科學(xué)與工程專(zhuān)
業(yè):計(jì)算機(jī)科學(xué)與技術(shù)指導(dǎo)教師:廖建明學(xué)生姓名:林怡學(xué)
號(hào):實(shí)驗(yàn)成績(jī):日
期:實(shí)驗(yàn)報(bào)告
2012060020023
2014 年 11
日月
電 子 科 技 大 學(xué)
實(shí)
驗(yàn)
報(bào)
告
一、實(shí)驗(yàn)一:ALU設(shè)計(jì)實(shí)驗(yàn)
二、實(shí)驗(yàn)室名稱(chēng):主樓A2-411 實(shí)驗(yàn)學(xué)時(shí):4
三、實(shí)驗(yàn)?zāi)康模?/p>
1.熟悉ALU的工作原理。2.掌握多個(gè)ALU的擴(kuò)展方法。
3.掌握用硬件描述語(yǔ)言設(shè)計(jì)ALU的方法。
4.掌握數(shù)據(jù)的暫存和分時(shí)傳送的方法。
四、實(shí)驗(yàn)內(nèi)容
設(shè)計(jì)一個(gè)8bit ALU,實(shí)現(xiàn)兩個(gè)8bit二進(jìn)制數(shù)的算術(shù)運(yùn)算和邏輯運(yùn)算, ★算術(shù)運(yùn)算(加、減);★邏輯運(yùn)算(與、或、置
1、清0);實(shí)驗(yàn)要求:
1.設(shè)計(jì)一個(gè)4bitALU模塊;
2.如何用4bitALU實(shí)現(xiàn)8bitALU的功能?
3.數(shù)據(jù)的輸入/輸出
輸入: 只有8個(gè)開(kāi)關(guān),如何分時(shí)輸入數(shù)據(jù)?
輸出: 8個(gè)指示燈(數(shù)據(jù)),1個(gè)指示燈(進(jìn)位/借位)
4.控制端輸入
模式控制:(算術(shù) / 邏輯)
運(yùn)算方式控制:(+、-/ and、or、set、clr)
分時(shí)控制位:(輸入數(shù)據(jù)的使能端)
數(shù)據(jù)輸入控制脈沖:
五、實(shí)驗(yàn)原理: 實(shí)驗(yàn)原理圖如圖一:
圖一
由圖可知,ALU模塊有四個(gè)輸入,分別為寄存器A、B,模式控制端M與邏輯/算術(shù)運(yùn)算方式控制端SE。輸出為四位的D,同時(shí)還有一個(gè)進(jìn)位/借位端cout。
其中M端為一位的輸入,當(dāng)M=1時(shí),模塊將用于邏輯運(yùn)算,而M=0時(shí),模塊將進(jìn)行算術(shù)運(yùn)算。而兩種運(yùn)算模式下,兩位的輸入端SE的不同的值又將控制+、-/ and、or、set、clr等不同的運(yùn)算方式。所以可以考慮采用if..else..結(jié)合case模塊的方式來(lái)實(shí)現(xiàn)always塊中的功能描述。
六、實(shí)驗(yàn)器材:
PC機(jī)、Xilinx ise7.1 集成開(kāi)發(fā)壞境、pq208芯片一塊
七、實(shí)驗(yàn)步驟:
1、在Xilinx ise7.1 集成開(kāi)發(fā)壞境中輸入實(shí)驗(yàn)代碼,保存并驗(yàn)證其正確性;
2、將模塊中使用到的開(kāi)關(guān)與pq208的各個(gè)引腳的標(biāo)號(hào)對(duì)應(yīng)起來(lái),并在xilinx中將其設(shè)置好;
3、將所需的開(kāi)關(guān)與pq208的對(duì)應(yīng)引腳用電線(xiàn)連接起來(lái),之后將驗(yàn)證正確的代碼下載到pq208芯片中;
4、根據(jù)實(shí)驗(yàn)要求操作各開(kāi)關(guān),觀察指示燈的結(jié)果以驗(yàn)證實(shí)驗(yàn)的正確性;
實(shí)驗(yàn)代碼如下:
module alu(A,B,M,SE,D,cout);input [3:0] A;input [3:0] B;input M;input [1:0] SE;output [3:0] D;output cout;reg [3:0] D;reg cout;always @(A,B,M,SE)begin
// 邏輯運(yùn)算模式 if(M)begin case(SE)2'b00:D=A&B;//與運(yùn)算 2'b01:D=A|B;//或運(yùn)算 2'b10:D=4'b1111;//置1 2'b11:D=4'b0000;//置0 endcase end
else //算術(shù)運(yùn)算模式
begin
case(SE)
2'b00: {cout,D}=A+B;//加法運(yùn)算 2'b01:{cout,D}=A+B;2'b10: {cout,D}=A-B;//減法運(yùn)算 2'b11:{cout,D}=A-B;endcase end end endmodule
I/O 端口與指示燈的連接方式: A[3:0] 與K1,K2,K3,K4相連,B[3:0]與K5,K6,K7,K8相連,M與K10相連,SE與K12,K11相連,cout與L5相連,輸出端D[3:0]分別與L4,L3,L2,L1相連。
八、實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析:
電路圖如圖二、三所示:
圖二
圖三 圖三中,當(dāng)輸入為0-1時(shí),發(fā)現(xiàn)指示燈結(jié)果如為D[3:0]=1111 且cout=1。分析后可知,這個(gè)結(jié)果是由于-1的四位二進(jìn)制補(bǔ)碼表示為1111。
九、總結(jié)、改進(jìn)建議及心得體會(huì):
通過(guò)本次實(shí)驗(yàn),我不僅完成了Verilog HDL語(yǔ)言從書(shū)本知識(shí)到實(shí)踐的轉(zhuǎn)化,同時(shí)也加深了對(duì)計(jì)算機(jī)CPU中的ALU模塊的各種功能的了解。把自己設(shè)計(jì)的ALU模塊加載到pq208芯片上進(jìn)行仿真驗(yàn)證,非常好地鍛煉了我的動(dòng)手能力,看到自己寫(xiě)出的代碼能夠有實(shí)質(zhì)性的成果展示也更好的調(diào)動(dòng)了我的積極性。
總體來(lái)說(shuō),這次實(shí)驗(yàn)是非常有收獲的。
電 子 科 技 大 學(xué)
實(shí)
驗(yàn)
報(bào)
告
一、實(shí)驗(yàn)二:存貯器設(shè)計(jì)實(shí)驗(yàn)
二、實(shí)驗(yàn)室名稱(chēng):主樓A2-411 實(shí)驗(yàn)學(xué)時(shí):4
三、實(shí)驗(yàn)?zāi)康模?/p>
1.掌握存貯器的讀寫(xiě)控制方法,(讀信號(hào)、寫(xiě)信號(hào)、片選信號(hào))。2.掌握存儲(chǔ)器的字?jǐn)U展和位擴(kuò)展方法。3.掌握用硬件描述語(yǔ)言設(shè)計(jì)存貯器的方法。4.了解存儲(chǔ)器種類(lèi)、工作原理和特點(diǎn)。
四、實(shí)驗(yàn)原理: 實(shí)驗(yàn)原理圖如下圖:
分析上圖可知,我們要把16*4的存儲(chǔ)器擴(kuò)展為一個(gè)32*8的存儲(chǔ)器模塊,總共需要4塊16*4的存儲(chǔ)器模塊。我們首先需要把兩塊16*4的模塊連接在一起擴(kuò)展為一塊16*8的存儲(chǔ)器模塊,再對(duì)兩塊16*8的模塊進(jìn)行字?jǐn)U展,最終把它們擴(kuò)展為一塊32*8的靜態(tài)存儲(chǔ)器模塊。
五、實(shí)驗(yàn)內(nèi)容:
用字?jǐn)U展和位擴(kuò)展的方式,設(shè)計(jì)一個(gè)32X8的靜態(tài)存儲(chǔ)器,能夠?qū)ζ潆S機(jī)的讀寫(xiě)。其中:32表示地址的尋址空間大小,8表示數(shù)據(jù)單元的位數(shù)。要求:
1.設(shè)計(jì)一個(gè)16X4的可隨機(jī)讀寫(xiě)的存儲(chǔ)器模塊。
2.利用16X4存儲(chǔ)器模塊,如何通過(guò)級(jí)連實(shí)現(xiàn)32X8的存儲(chǔ)器的功能。3.?dāng)?shù)據(jù)、地址的輸入/輸出
數(shù)據(jù)/地址的輸入:開(kāi)關(guān)控制。
數(shù)據(jù)的輸出:指示燈顯示。4.控制信號(hào)
片選:低有效。
讀:低有效。
寫(xiě):上升沿有效。
六、實(shí)驗(yàn)器材:
PC機(jī)、Xilinx ise7.1 集成開(kāi)發(fā)壞境、pq208芯片一塊
七、實(shí)驗(yàn)步驟:
1、把兩塊16*4的存儲(chǔ)器模塊位擴(kuò)展為16*8的存儲(chǔ)器模塊;
2、繼續(xù)把兩塊16*8的存儲(chǔ)器模塊字?jǐn)U展為一塊32*8的存儲(chǔ)器模塊;
3、在Xilinx ise7.1 集成開(kāi)發(fā)壞境中把寫(xiě)好的實(shí)驗(yàn)代碼保存;
4、將模塊中使用到的開(kāi)關(guān)與pq208的各個(gè)引腳的標(biāo)號(hào)對(duì)應(yīng)起來(lái),將所需的開(kāi)關(guān)與pq208的對(duì)應(yīng)引腳用電線(xiàn)連接起來(lái),之后將驗(yàn)證正確的代碼下載到pq208芯片中;
5、根據(jù)實(shí)驗(yàn)要求操作各開(kāi)關(guān),對(duì)存儲(chǔ)器進(jìn)行讀寫(xiě)操作并觀察指示燈的結(jié)果以驗(yàn)證實(shí)驗(yàn)的正確性;
實(shí)驗(yàn)代碼如下: 16*4存儲(chǔ)器設(shè)計(jì)模塊
module ram16_4(din,addr,wr,rd,cs,dout);
parameter D_WIDTH = 4;
parameter A_WIDTH = 4;
input[D_WIDTH-1:0] din;
//D[3:0] input[A_WIDTH-1:0] addr;
//AD[3:0] input wr,rd,cs;output[D_WIDTH-1:0]dout;
reg [D_WIDTH-1:0] ram [(2**A_WIDTH)-1:0];//16*4
wire [D_WIDTH-1:0] dout;
always @(posedge wr)
if(!cs)
ram[addr] <= din;
assign dout =(!(rd||cs))?ram[addr]:4'bzzzz;
//rd cs同時(shí)為低電平ram[addr] endmodule 16*8存儲(chǔ)器設(shè)計(jì)模塊
module ram16_8(d,ad,wr,rd,cs,dout);
input[4:0] ad;input[7:0] d;input wr,rd,cs;output[7:0] dout;ram16_4 m1(.din(d[3:0]),.addr(ad[3:0]),.wr(wr),.rd(rd),.cs(ad[4]|cs),.dout(dout[3:0]));ram16_4 m2(.din(d[7:4]),.addr(ad[3:0]),.wr(wr),.rd(rd),.cs(~ad[4]|cs),.dout(dout[7:4]));endmodule
32*8存儲(chǔ)器設(shè)計(jì)模塊
module ram32_8(d,ad,wr,rd,cs,dout);
input[4:0] ad;input[7:0] d;input wr,rd,cs;output[7:0] dout;ram16_8 ram16_8_1(.d(d[3:0]),.ad(ad[3:0]),.wr(wr),.rd(rd),.cs(ad[4]|cs),.dout(dout[3:0]));ram16_8 ram16_8_2(.d(d[7:4]),.ad(ad[3:0]),.wr(wr),.rd(rd),.cs(~ad[4]|cs),.dout(dout[7:4]));endmodule
八、實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析:
實(shí)驗(yàn)結(jié)果圖如下:
九、總結(jié)、改進(jìn)建議及心得體會(huì):
本實(shí)驗(yàn)對(duì)存儲(chǔ)器模塊進(jìn)行了字?jǐn)U展和位擴(kuò)展,將16*4的模塊擴(kuò)展為32*8的存儲(chǔ)器模塊,加深了我對(duì)于存儲(chǔ)器擴(kuò)展這部分知識(shí)的理解,同時(shí)讓我對(duì)于Verilog HDL語(yǔ)言中的模塊調(diào)用這部分的機(jī)制有了更深入的體會(huì)。
在驗(yàn)證實(shí)驗(yàn)結(jié)果的環(huán)節(jié),自己動(dòng)手操作對(duì)存儲(chǔ)器模塊進(jìn)行讀寫(xiě)操作也使我對(duì)于存儲(chǔ)器這個(gè)計(jì)算機(jī)的重要組成部分有了一個(gè)更加感性的認(rèn)識(shí),對(duì)于它的尋址方式,片選邏輯等機(jī)制都有了更深層次的掌握。