版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
PAGE4《計算機組成原理》實驗報告學院:______________專業(yè):_______________班級:______________學號:______________姓名:______________目錄1軟件的安裝、測試與使用 22基本匯編指令應用 63脫機運算器實驗 134存儲器部件教學實驗 155I/O口擴展實驗 196中斷實驗 22
1軟件的安裝、測試與使用實驗目的:學習和了解TEC-XP教學實驗系統(tǒng)監(jiān)控命令的用法;學習和了解TEC-XP教學實驗系統(tǒng)的指令系統(tǒng);實驗內(nèi)容:學習聯(lián)機使用TEC-XP教學實驗系統(tǒng)和仿真終端軟件PCEC.2.熟悉實驗箱三種工作模式:仿真、脫機、聯(lián)機實驗要求在使用該教學機之前,應先熟悉教學機的各個組成部分,及其使用方法。 實驗步驟一.實驗具體操作步驟:準備一臺串口工作良好的PC機;將TEC-XP放在實驗臺上,打開實驗箱的蓋子,確定電源處于斷開狀態(tài);將黑色的電源線一端接220V交流電源,另一端插在TEC-XP實驗箱的電源插座里;取出通訊線,將通訊線的9芯插頭接在TEC-XP實驗箱上的串口“COM1”或“COM2”上,另一端接到PC機的串口上;將TEC-XP實驗系統(tǒng)左下方的五個黑色的控制機器運行狀態(tài)的開關置于正確的位置,在找個實驗中開關應置為00110(連續(xù)、內(nèi)存讀指令、組合邏輯、聯(lián)機、16位),控制開關的功能在開關上、下方有標識;開關撥向上方表示“1”,撥向下方表示“0”,“X”表示任意,其它實驗相同;打開電源,船形開關和5V電源指示燈亮。在PC機上運行PCEC16.EXE文件,根據(jù)連接的PC機的串口設置所用PC機的串口為“1”或“2”,其它的設置一般不用改動,直接回車即可。(具體步驟附后)按一下“RESET”按鍵,再按一下“START”按鍵,主機上顯示:TEC-2000CRTMONITORVersion1.0April2001ComputerArchitecturLab.,TsinghuaProgrammedbyHeJia>二、實驗注意事項:連接電源線和通訊線前TEC-XP實驗系統(tǒng)的電源開關一定要處于斷開狀態(tài),否則可能會對TEC-XP實驗系統(tǒng)上的芯片和PC機的串口造成損害;五個黑色控制開關的功能示意圖如下:單步手動置指令組合邏輯聯(lián)機8位上面下面連續(xù)從內(nèi)存讀指令微程序脫機16位3.幾種常用的工作方式(開關撥到上方表示為1,撥到下方為0;)
工作方式5個撥動開關連續(xù)運行程序、組合邏輯控制器、聯(lián)機、16位機00110連續(xù)運行程序、微程序控制器、聯(lián)機、16位機00010單步、手動置指令、組合邏輯控制器、聯(lián)機、16位機11110單步、手動置指令、微程序控制器、聯(lián)機、16位機1101016位機、脫機運算器實驗1XX00三、仿真終端軟件的操作步驟:1.在PC機上建一個文件夾TEC-XP;2.取出配套的用戶盤,將應用程序PCEC16拷貝到用戶機器硬盤上該文件夾里;雙擊PCEC16圖標,出現(xiàn)如圖所示的界面:系統(tǒng)默認選擇串口1,用戶可根據(jù)實際情況選擇串口1或是串口2(這里的串口指的是和TEC-XP教學實驗系統(tǒng)相連的PC機的串口),按回車后出現(xiàn)如圖界面:圖中是系統(tǒng)設定的一些傳輸參數(shù),建議用戶不要改動,直接回車。按一下“RESET”按鈕放開后再按一下“START”按鈕,出現(xiàn)界面如圖所示:此時表明TEC-XP機器聯(lián)機通訊正常。四.軟件操作注意事項:用戶在選擇串口時,選定的是PC機的串口1或串口2,而不是TEC-XP實驗系統(tǒng)上的串口。即選定的是用戶實驗時通訊線接的PC機的端口;如果在運行到第五步時沒有出現(xiàn)應該出現(xiàn)的界面,用戶需要檢查是不是打開了兩個軟件界面,若是,關掉其中一個再試;有時若TEC-XP實驗系統(tǒng)不通訊,也可以重新啟動軟件或是重新啟動PC再試;在打開該應用軟件時,其它的同樣會用到該串口的應用軟件要先關掉。五.聯(lián)機通訊失敗自檢:如果上述的硬件和軟件的操作都正確,聯(lián)機卻依舊失敗,用戶可以進行如下測試:測試PC機的串口是否能正常工作,或是換一臺PC或換同一臺PC的另一個串口再試,在換串口時要將TEC-XP實驗系統(tǒng)斷電,換完后重新啟動實驗系統(tǒng)和軟件;檢查機器上的元器件插接是否正確(建議用戶對照能夠正常通訊的實驗系統(tǒng)進行詳細檢查),有沒有被學生動過,尤其是擴展內(nèi)存和擴展I/O接口時,芯片方向是否插對,片選信號有沒有連接;檢查相應的短路子是否連接正確;建議教師預留一臺運行正常的TEC-XP實驗系統(tǒng)備用,機器出問題后可以對照檢查。六:實驗總結(實驗過程中遇到問題以及解決方案)用R命令查看寄存器內(nèi)容或修改寄存器的內(nèi)容在命令行提示符狀態(tài)下輸入:R↙ ;顯示寄存器的內(nèi)容注:寄存器的內(nèi)容在運行程序或執(zhí)行命令后會發(fā)生變化。在命令行提示符狀態(tài)下輸入:RR0↙;修改寄存器R0的內(nèi)容,被修改的寄存器與所賦值之間可以無空格,也可有一個或數(shù)個空格主機顯示:寄存器原值:_在該提示符下輸入新的值0036再用R命令顯示寄存器內(nèi)容,則R0的內(nèi)容變?yōu)?036。用D命令顯示存儲器內(nèi)容在命令行提示符狀態(tài)下輸入:D2000↙會顯示從2000H地址開始的連續(xù)128個字的內(nèi)容;連續(xù)使用不帶參數(shù)的D命令,起始地址會自動加128(即80H)。3.用E命令修改存儲器內(nèi)容在命令行提示符狀態(tài)下輸入:E2000↙屏幕顯示:2000地址單元的原有內(nèi)容:光標閃爍等待輸入輸入0000依次改變地址單元2001~2005的內(nèi)容為:11112222333344445555注意:用E命令連續(xù)修改內(nèi)存單元的值時,每修改完一個,按一下空格鍵,系統(tǒng)會自動給出下一個內(nèi)存單元的值,等待修改;按回車鍵則退出E命令。4.用D命令顯示這幾個單元的內(nèi)容D2000↙可以看到這六個地址單元的內(nèi)容變?yōu)?00011112222333344445555。5.用A命令鍵入一段匯編源程序,主要是向累加器送入數(shù)據(jù)和進行運算,執(zhí)行程序并觀察運行結果。在命令行提示符狀態(tài)下輸入:A2000↙ ;表示該程序從2000H(內(nèi)存RAM區(qū)的起始地址)地址開始屏幕將顯示:2000:輸入如下形式的程序:2000:MVRDR0,AAAA;MVRD與R0之間有且只有一個空格,其他指令相同2002:MVRDR1,55552004:ADDR0,R12005:ANDR0,R12006:RET ;程序的最后一個語句,必須為RET指令2007:(直接敲回車鍵,結束A命令輸入程序的操作過程)若輸入有誤,系統(tǒng)會給出提示并顯示出錯地址,用戶只需在該地址重新輸入正確的指令即可。用U命令反匯編剛輸入的程序在命令行提示符狀態(tài)下輸入:U2000↙在相應的地址會得到輸入的指令及其操作碼注:連續(xù)使用不帶參數(shù)的U命令時,將從上一次反匯編的最后一條語句之后接著繼續(xù)反匯編。用G命令運行前面鍵入的源程序G2000↙程序運行結束后,可以看到程序的運行結果,屏幕顯示各寄存器的值,其中R0和R1的值均為5555H,說明程序運行正確。用P或T命令,單步執(zhí)行這段程序,觀察指令執(zhí)行結果在命令行提示符狀態(tài)下輸入:T2000↙寄存器R0被賦值為AAAAHT↙寄存器R1被賦值為5555HT↙做加法運算,和放在R0,R0的值變?yōu)镕FFFHT↙做與運算,結果放在R0,R0的值變?yōu)?555H用P命令執(zhí)行過程同上。注:T總是執(zhí)行單條指令,但執(zhí)行P命令時,則把每一個CALL語句連同被調(diào)用的子程序一次執(zhí)行完成。T、P命令每次執(zhí)行后均顯示所有通用寄存器及狀態(tài)寄存器的內(nèi)容,并反匯編出下一條將要執(zhí)行的指令。
2基本匯編指令應用實驗目的:1.在仿真或聯(lián)機模式下,熟悉TEC-XP教學實驗系統(tǒng)匯編程序設計;實驗內(nèi)容:1.使用監(jiān)控程序的R命令顯示/修改寄存器內(nèi)容、D命令顯示存儲器內(nèi)容、E命令修改存儲器內(nèi)容;2.使用A命令寫一小段匯編程序,U命令反匯編剛輸入的程序,用G命令連續(xù)運行該程序,用T、P命令單步運行并觀察程序單步執(zhí)行情況;實驗要求:熟悉TEC-XP教學實驗系統(tǒng)的匯編指令功能,并會靈活使用。實驗步驟:一:基本指令功能用R命令查看寄存器內(nèi)容或修改寄存器的內(nèi)容在命令行提示符狀態(tài)下輸入:R↙ ;顯示寄存器的內(nèi)容注:寄存器的內(nèi)容在運行程序或執(zhí)行命令后會發(fā)生變化。在命令行提示符狀態(tài)下輸入:RR0↙;修改寄存器R0的內(nèi)容,被修改的寄存器與所賦值之間可以無空格,也可有一個或數(shù)個空格主機顯示:寄存器原值:_在該提示符下輸入新的值0036再用R命令顯示寄存器內(nèi)容,則R0的內(nèi)容變?yōu)?036。用D命令顯示存儲器內(nèi)容在命令行提示符狀態(tài)下輸入:D2000↙會顯示從2000H地址開始的連續(xù)128個字的內(nèi)容;連續(xù)使用不帶參數(shù)的D命令,起始地址會自動加128(即80H)。3.用E命令修改存儲器內(nèi)容在命令行提示符狀態(tài)下輸入:E2000↙屏幕顯示:2000地址單元的原有內(nèi)容:光標閃爍等待輸入輸入0000依次改變地址單元2001~2005的內(nèi)容為:11112222333344445555注意:用E命令連續(xù)修改內(nèi)存單元的值時,每修改完一個,按一下空格鍵,系統(tǒng)會自動給出下一個內(nèi)存單元的值,等待修改;按回車鍵則退出E命令。4.用D命令顯示這幾個單元的內(nèi)容D2000↙可以看到這六個地址單元的內(nèi)容變?yōu)?00011112222333344445555。5.用A命令鍵入一段匯編源程序,主要是向累加器送入數(shù)據(jù)和進行運算,執(zhí)行程序并觀察運行結果。在命令行提示符狀態(tài)下輸入:A2000↙ ;表示該程序從2000H(內(nèi)存RAM區(qū)的起始地址)地址開始屏幕將顯示:2000:輸入如下形式的程序:2000:MVRDR0,AAAA;MVRD與R0之間有且只有一個空格,其他指令相同2002:MVRDR1,55552004:ADDR0,R12005:ANDR0,R12006:RET ;程序的最后一個語句,必須為RET指令2007:(直接敲回車鍵,結束A命令輸入程序的操作過程)若輸入有誤,系統(tǒng)會給出提示并顯示出錯地址,用戶只需在該地址重新輸入正確的指令即可。用U命令反匯編剛輸入的程序在命令行提示符狀態(tài)下輸入:U2000↙在相應的地址會得到輸入的指令及其操作碼注:連續(xù)使用不帶參數(shù)的U命令時,將從上一次反匯編的最后一條語句之后接著繼續(xù)反匯編。用G命令運行前面鍵入的源程序G2000↙程序運行結束后,可以看到程序的運行結果,屏幕顯示各寄存器的值,其中R0和R1的值均為5555H,說明程序運行正確。用P或T命令,單步執(zhí)行這段程序,觀察指令執(zhí)行結果在命令行提示符狀態(tài)下輸入:T2000↙寄存器R0被賦值為AAAAHT↙寄存器R1被賦值為5555HT↙做加法運算,和放在R0,R0的值變?yōu)镕FFFHT↙做與運算,結果放在R0,R0的值變?yōu)?555H用P命令執(zhí)行過程同上。注:T總是執(zhí)行單條指令,但執(zhí)行P命令時,則把每一個CALL語句連同被調(diào)用的子程序一次執(zhí)行完成。T、P命令每次執(zhí)行后均顯示所有通用寄存器及狀態(tài)寄存器的內(nèi)容,并反匯編出下一條將要執(zhí)行的指令。二.匯編設計舉例例1:設計一個小程序,從鍵盤上接收一個字符并在屏幕上輸出顯示該字符。在命令行提示符狀態(tài)下輸入:A2000↙;屏幕將顯示:2000:輸入如下形式的程序:注:在十六位機中,基本I/O接口的地址是確定的,數(shù)據(jù)口的地址為80,狀態(tài)口的地址為81。用“G”命令運行程序在命令行提示符狀態(tài)下輸入:G2000↙執(zhí)行上面輸入的程序光標閃爍等待輸入,用戶從鍵盤鍵入字符后,屏幕會顯示該字符。該例建立了一個從主存2000H地址開始的小程序。在這種方式下,所有的數(shù)字都約定使用16進制數(shù),故數(shù)字后不用跟字符H。每個用戶程序的最后一個語句一定為RET匯編語句。因為監(jiān)控程序是選用類似子程序調(diào)用方式使實驗者的程序投入運行的,用戶程序只有用RET語句結束,才能保證程序運行結束時能正確返回到監(jiān)控程序的斷點,保證監(jiān)控程序能繼續(xù)控制教學機的運行過程。例2:設計一個小程序,用次數(shù)控制在終端屏幕上輸出'0'到'9'十個數(shù)字符。在命令行提示符狀態(tài)下輸入:A2020↙屏幕將顯示:2020:從地址2020H開始輸入下列程序:該程序的執(zhí)行碼放在2020H起始的連續(xù)內(nèi)存區(qū)中。若送入源碼的過程中有錯,系統(tǒng)會進行提示,等待重新輸入正確匯編語句。在輸入過程中,在應輸入語句的位置直接打回車則結束輸入過程。用“G”命令運行程序在命令行提示符狀態(tài)下輸入:G2020↙執(zhí)行結果為:0123456789思考題:若把IN81,SHRR0,JRNC2028三個語句換成4個MVRRR0,R0語句,該程序執(zhí)行過程會出現(xiàn)什么現(xiàn)象?試分析并實際執(zhí)行一次。提示:該程序改變這三條語句后,若用T命令單條執(zhí)行,會依次顯示0~9十個數(shù)字。若用G命令運行程序,程序執(zhí)行速度快,端口輸出速度慢,這樣就會跳躍輸出。在命令行提示符狀態(tài)下輸G2020,屏幕顯示09。類似的,若要求在終端屏幕上輸出'A'到'Z'共26個英文字母,應如何修改例1中給出的程序?請驗證之。參考答案:在命令行提示符狀態(tài)下輸入:A2100↙屏幕將顯示:2100:從地址2100H開始輸入下列程序:(2100)MVRDR2,001A ;循環(huán)次數(shù)為26MVRDR0,0041 ;字符“A”的值(2104)OUT80 ;輸出保存在R0低位字節(jié)的字符DECR2 ;輸出字符個數(shù)減1JRZ210E ;判26個字符輸出完否,已完,則轉(zhuǎn)移到程序結束處PUSHR0 ;未完,保存R0的值到堆棧中(2108)IN81 ;查詢接口狀態(tài),判字符串行輸出完成否SHRR0JRNC2108 ;未完成,則循環(huán)等待POPR0 ;已完成,準備輸出下一字符,從堆?;謴蚏0的值INCR0 ;得到下一個要輸出的字符JR2104 ;轉(zhuǎn)去輸出字符(210E)RET用G命令執(zhí)行該程序,屏幕上顯示“A”~“Z”26個英文字母.例3:從鍵盤上連續(xù)打入多個屬于‘0’到‘9’的數(shù)字符并在屏幕上顯示,遇到非數(shù)字字符結束輸入過程。<1>在命令行提示符狀態(tài)下輸入:A2040↙屏幕將顯示:2040:從地址2040H開始輸入下列程序:(2040)MVRDR2,0030;用于判數(shù)字符的下界值MVRDR3,0039;用于判數(shù)字符的上界值(2044)IN81;判鍵盤上是否按了一個鍵,SHRR0;即串行口是否有了輸入的字符SHRR0JRNC2044;沒有輸入則循環(huán)測試IN80;輸入字符到R0MVRDR1,00FFANDR0,R1;清零R0的高位字節(jié)內(nèi)容CMPR0,R2;判輸入字符≥字符'0'否JRNC2053;為否,則轉(zhuǎn)到程序結束處CMPR3,R0;判輸入字符≤字符'9'否JRNC2053;為否,則轉(zhuǎn)到程序結束處OUT80;輸出剛輸入的數(shù)字符JMPA2044 ;轉(zhuǎn)去程序前邊2044處等待輸入下一個字符(2053)RET<2>在命令行提示符狀態(tài)下輸入:G2040↙光標閃爍等待鍵盤輸入,若輸入0-9十個數(shù)字符,則在屏幕上回顯;若輸入非數(shù)字符,則屏幕不再顯示該字符,出現(xiàn)命令提示符,等待新命令。思考題,本程序中為什么不必判別串行口輸出完成否?設計打入'A'~'Z'和'0'~'9'的程序,遇到其它字符結束輸入過程。(可回答可不回答)三:實驗編程要求1:查看存儲單元300F命令用“G”命令運行程序在命令行提示符狀態(tài)下輸入:G300F↙執(zhí)行上面輸入的程序光標閃爍等待輸入,用戶從鍵盤鍵入字符后,屏幕會顯示該字符。2:計算1到10的累加和。(自己編寫程序)在命令行提示符狀態(tài)下輸入:A2060↙屏幕將顯示:2060:從地址2060H開始輸入下列程序:(2060)MVRDR1,0000 ;置累加和的初值為0MVRDR2,00OA ;最大的加數(shù)MVRDR3,0000(2066)INCR3 ;得到下一個參加累加的數(shù)ADDR1,R3 ;累加計算CMPR3,R2 ;判是否累加完JRNZ2066 ;未完,開始下一輪累加RET<2>在命令行提示符狀態(tài)下輸入:G2060↙運行過后,可以用R命令觀察累加器的內(nèi)容。R1的內(nèi)容為累加和。結果為:R1=0037R2=00OAR3=00OA3:設計一個有讀寫內(nèi)存和子程序調(diào)用指令的程序,功能是讀出內(nèi)存中的字符,將其顯示到顯示器的屏幕上,轉(zhuǎn)換為小寫字母后再寫回存儲器原存儲區(qū)域。將被顯示的6個字符‘A’~‘F’送入到內(nèi)存20F0H開始的存儲區(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開始輸入下列程序:(自己編寫程序)(2080)MVRDR3,0006 ;指定被讀數(shù)據(jù)的個數(shù)MVRDR2,20F0 ;指定被讀、寫數(shù)據(jù)內(nèi)存區(qū)首地址(2084)LDRRR0,[R2] ;讀內(nèi)存中的一個字符到R0寄存器CALA2100 ;指定子程序地址為2100,調(diào)用子程序,完成顯示、轉(zhuǎn)換并寫回的功能DECR3 ;檢查輸出的字符個數(shù)JRZ208B;完成輸出則結束程序的執(zhí)行過程INCR2 ;未完成,修改內(nèi)存地址JR2084 ;轉(zhuǎn)移到程序的2086處,循環(huán)執(zhí)行規(guī)定的處理(208B)RET從地址2100H開始輸入下列程序:(2100)OUT80 ;輸出保存在R0寄存器中的字符MVRDR1,0020 ADDR0,R1;將保存在R0中的大寫字母轉(zhuǎn)換為小寫字母STRR[R2],R0 ;寫R0中的字符到內(nèi)存,地址同LOD所用的地址(2105)IN81 ;測試串行接口是否完成輸出過程SHRR0JRNC2105 ;未完成輸出過程則循環(huán)測試RET ;結束子程序執(zhí)行過程,返回主程序在命令行提示符狀態(tài)下輸入:G2080↙屏幕顯示運行結果為:ABCDEF在命令行提示符狀態(tài)下輸入:D20F0↙20F0H~20F5H內(nèi)存單元的內(nèi)容為:006100620063006400650066在命令行提示符狀態(tài)下輸入:G2080屏幕顯示運行結果為:ABCDEF在命令行提示符狀態(tài)下輸入:D20F020F0H~20F5H內(nèi)存單元的內(nèi)容為:0061006200630064006500664:設計一個程序在顯示器屏幕上循環(huán)顯示95個(包括空格字符)可打印字符。<1>在命令行提示符狀態(tài)下輸入:A20A0↙屏幕將顯示:20A0:從地址20A0H開始輸入下列程序:<2>在命令行提示符狀態(tài)下輸入:(自己編寫程序)A20A0;從內(nèi)存的20A0單元開始建立用戶的第一個程序20A0:MVRDR1,7E;向寄存器傳送立即數(shù)20A2:MVRDR0,20;20A4:OUT80;通過串行接口輸出R0低位字節(jié)內(nèi)容到顯示器屏幕20A5:PUSHR0;保存R0寄存器的內(nèi)容到堆棧中20A6:IN81;讀串行接口的狀態(tài)寄存器的內(nèi)容20A7:SHRR0;R0寄存器的內(nèi)容右移一位,最低位的值移入標志位C20A8:JRNC20A6;條件轉(zhuǎn)移指令,當標志位C不是1時就轉(zhuǎn)到20A6地址20A9:POPR0;從堆棧中恢復R0寄存器的原內(nèi)容20AA:CMPR0,R1;比較兩個寄存器的內(nèi)容是否相同,相同則標志位Z=120AB:JRZ20A0;條件轉(zhuǎn)移指令,當標志位Z為1時轉(zhuǎn)到200A0地址20AC:INCR0;把R0寄存器的內(nèi)容增加120AE:JR20A4;無條件轉(zhuǎn)移指令,一定轉(zhuǎn)移到20A4地址20AF:RET;子程序返回指令,程序結束<2>在命令行提示符狀態(tài)下輸入:G20A0↙運行過后,可以觀察到顯示器上會顯示出所有可打印的字符。上述例子,都是用監(jiān)控程序的A命令完成輸入源匯編程序的。在涉及到匯編語句標號的地方,不能用符號表示,只能在指令中使用絕對地址。使用內(nèi)存中的數(shù)據(jù),也由程序員給出數(shù)據(jù)在內(nèi)存中的絕對地址。顯而易見,對這樣的極短小程序矛盾并不突出,但很容易想到,對很大的程序,一定會有較大的困難。在用A命令輸入?yún)R編源語句的過程中,有一定用機經(jīng)驗的人,常常抱怨A命令中未提供適當?shù)木庉嫻δ?這并不是設計者的疏漏,因為我們并不準備在這種操作方式下支持設計較長的程序,這種工作應轉(zhuǎn)到提供了交叉匯編程序的PC機上去完成。相反的情況是,輸入上述一些小程序,用監(jiān)控程序的A命令完成,往往比用交叉匯編完成更簡捷。
3脫機運算器實驗實驗目的深入了解AM2901運算器的功能與具體用法,4片AM2901的級連方式,深化運算器部件的組成、設計、控制與使用等諸項知識。實驗說明脫機運算器實驗,是指讓運算器從教學計算機整機中脫離出來,此時,它的全部控制與操作均需通過兩個12位的微型開關來完成,這就談不上執(zhí)行指令,只能通過開關、按鍵控制教學機的運算器完成指定的運算功能,并通過指示燈觀察運算結果。下面先把前邊講過的、與該實驗直接有關的結論性內(nèi)容匯總如下。一.12位微型開關的具體控制功能分配如下:A口、B口地址:送給AM2901器件用于選擇源與目的操作數(shù)的寄存器編號;I8-I0:選擇操作數(shù)來源、運算操作功能、選擇操作數(shù)處理結果和運算器輸出內(nèi)容的3組3位的控制碼;SCi、SSH和SST:用于確定運算器最低位的進位輸入、移位信號的入/出和怎樣處理AM2901產(chǎn)生的狀態(tài)標志位的結果。開關位置說明:做脫機運算器實驗時,要用到提供24位控制信號的微動開關和提供16位數(shù)據(jù)的撥動開關。微動開關是紅色的,一個微動開關可以提供12位的控制信號,標有microswitch1和microswitch2;數(shù)據(jù)開關是黑色的,左邊的標有SWH的是高8位,右邊的標有SWL的是低8位。微動開關與控制信號對應關系見表(由左到右):Microswitch1Microswitch2I8-I6I5-I3I2-I0SSTSSHSCIBPORTAPORT開關檢測紅色微動開關是該實驗系統(tǒng)使用壽命最短的器件,開關好壞的檢測方法比較簡單,用戶將五個控制機器工作方式的開關置于“1XX00”,從左面起第二個和第三個的開關處于任意位置,然后將兩個微動開關上的24個小紐子依次置為1(開關撥到上方為1),看對應的指示燈是否亮,如果有一個或數(shù)個指示燈不亮,則一般是開關出了問題。實驗步驟將教學機左下方的5個撥動開關置為1XX00(單步、16位、脫機);先按一下“RESET”按鍵,再按一下“START”按鍵,進行初始化。接下來,按下表所列的操作在機器上進行運算器脫機實驗,將結果填入表中:其中D1取為0101H,D2取為1010H;通過兩個12位的紅色微型開關向運算器提供控制信號,通過16位數(shù)據(jù)開關向運算器提供數(shù)據(jù),通過指示燈觀察運算結果及狀態(tài)標志。運算I8-I0SSTSSHSCiBA壓START前壓START后ALU輸出CZVSALU輸出CZVS*D1+0->R001100011100100000000不用0101隨機01010000*D2+0->R1R0+R1->R00110000010010000000000011111000021210000RO-R1->R0R1-R0->R10110010010010001000100000F0F10000E0E1000R0∨R1->R00110110010010000000100000F0F10000F0F1000R0∧R1->R0R0≮R1->R00111100010010000000000010E0E100001011000┘(R0≮R1)->R0011111001001000000000001FEFE10000E0E10012*R0->R011100001100100000000不用FEFE1001FDFC0001R0/2->R04.實驗總結首先,我意識到動手對做實驗的重要性。再者,通過這次實驗,初步了解了AM2901運算器的基本結構,學會了分析指令執(zhí)行過程中運算的步驟,初步掌握微動開關及數(shù)據(jù)開關的設置,了解到撥動開關設置正確與否對實驗的影響,撥動開關若設錯,實驗會無法進行。注:用*標記的運算,表示D1、D2的數(shù)據(jù)是由撥動開關SW給出的,開關給的是二進制的信號,注意二進制和十六進制間的轉(zhuǎn)換。 按“START”按鍵之前,ALU輸出的是計算結果,參照ALU的操作周期的時序可知A、B口數(shù)據(jù)鎖存是在時鐘的下降沿,通用寄存器的接收是在低電平,所以要想寄存器接收ALU的計算結果必須按一次“START”按鍵。實驗要求1.實驗之前認真預習,包括操作步驟,實驗過程所用數(shù)據(jù)和運行結果等,否則實驗效率會很低,所學到的內(nèi)容也會大受影響;2.實驗過程當中,要仔細進行,防止損壞設備,分析可能遇到的各種現(xiàn)象,判斷結果是否正確,記錄運行結果;3.實驗之后,認真填寫實驗報告表格,可對遇到的各種現(xiàn)象的分析,實驗步驟和實驗結果,自己在這次實驗的心得體會與收獲。
4存儲器部件教學實驗實驗目的通過看懂教學計算機中已經(jīng)使用的幾個存儲器芯片的邏輯連接關系和用于完成存儲器容量擴展的幾個存儲器芯片的布線安排,在教學計算機上設計、實現(xiàn)并調(diào)試出存儲器容量擴展的實驗內(nèi)容。其最終要達到的目的是:深入理解計算機內(nèi)存儲器的功能、組成知識;2.深入地學懂靜態(tài)存儲器芯片的讀寫原理和用他們組成教學計算機存儲器系統(tǒng)的方法(即字、位擴展技術),控制其運行的方式;思考并對比靜態(tài)和動態(tài)存儲器芯片在特性和使用場合等方面的同異之處。實驗說明教學計算機存儲器系統(tǒng)由ROM和RAM兩個存儲區(qū)組成,分別由EPROM芯片(或EEPROM芯片)和RAM芯片構成。TEC-XP教學計算機中還安排了另外幾個存儲器器件插座,可以插上相應存儲器芯片以完成存儲器容量擴展的教學實驗,為此必須比較清楚地了解:TEC-XP教學機的存儲器系統(tǒng)的總體組成及其連接關系;TEC-XP教學機的有關存儲器芯片、I/O接口芯片的片選信號控制和讀寫命令的給出和具體使用辦法;RAM和EPROM、EEPROM存儲器芯片在讀寫控制、寫入時間等方面的同異之處,并正確建立連線關系和在程序中完成正確的讀寫過程;如何在TEC-XP教學機中使用擴展的存儲器空間并檢查其運行的正確性。實驗內(nèi)容要完成存儲器容量擴展的教學實驗,需為擴展存儲器選擇一個地址,并注意讀寫和OE等控制信號的正確狀態(tài);用監(jiān)控程序的D、E命令對存儲器進行讀寫,比較RAM(6116)、EEPROM(28系列芯片)EPROM(27系列芯片)在讀寫上的異同;用監(jiān)控程序的A命令編寫一段程序,對RAM(6116)進行讀寫,用D命令查看結果是否正確;用監(jiān)控程序的A命令編寫一段程序,對擴展存儲器EEPROM(28系列芯片)進行讀寫,用D命令查看結果是否正確;如不正確,分析原因,改寫程序,重新運行;實驗要求實驗之前,應認真預先準備,寫出實驗步驟和具體設計內(nèi)容,否則實驗效率會特別低,一次實驗時間根本無法完成實驗任務,即使基本做對了,也很難說學懂了些什么重要教學內(nèi)容;實驗過程中,應認真進行實驗操作,既不要因為粗心造成短路等事故而損壞設備,又要仔細思考實驗有關內(nèi)容,提高學習的主動性和創(chuàng)造性,把自己想不太明白的問題通過實驗理解清楚,爭取最好的實驗效果,力求達到教學實驗的主要目的;實驗之后,應認真思考總結,寫出實驗報告,包括實驗步驟和具體實驗結果,遇到的主要問題和分析與解決問題的思路。實驗報告中,還應寫出自己的學習心得和切身體會,也可以對教學實驗提出新的建議等。實驗報告要交給教師評閱并給出實驗成績。實驗步驟檢查FPGA下方的插針要按下列要求短接:標有“/MWR”“RD”的插針左邊兩個短接,標有“/MRD”“GND”的插針右邊兩個短接,標有ROMLCS和RAMLCS的插針短接。RAM(6116)支持即時讀寫,可直接用A、E命令向擴展的存儲器輸入程序或改變內(nèi)存單元的值。RAM中的內(nèi)容在斷電后會消失,重新啟動實驗機后會發(fā)現(xiàn)內(nèi)存單元的值發(fā)生了改變。1〉用E命令改變內(nèi)存單元的值并用D命令觀察結果。在命令行提示符狀態(tài)下輸入:E2020↙屏幕將顯示:2020內(nèi)存單元原值:按如下形式鍵入:2020原值:2222(空格)原值:3333(空格)原值:4444(空格)原值:5555↙在命令行提示符狀態(tài)下輸入:D2020↙屏幕將顯示從2020內(nèi)存單元開始的值,其中2020H~2023H的值為:2222333344445555〈3〉斷電后重新啟動教學實驗機,用D命令觀察內(nèi)存單元2020~2023的值。會發(fā)現(xiàn)原來置入到這幾個內(nèi)存單元的值已經(jīng)改變,用戶在使用RAM時,必須每次斷電重啟后都要重新輸入程序或修改內(nèi)存單元的值。2〉用A命令輸入一段程序,執(zhí)行并觀察結果。在命令行提示符狀態(tài)下輸入:A2000↙屏幕將顯示:2000:按如下形式鍵入:2000:MVRDR0,AAAA2002:MVRDR1,55552004:ANDR0,R12005:RET2006:↙在命令行提示符狀態(tài)下輸入:T2000↙R0的值變?yōu)锳AAAH,其余寄存器的值不變。T↙R1的值變?yōu)?555H,其余寄存器的值不變。T↙R0的值變?yōu)?000H,其余寄存器的值不變?!?〉在命令行提示符狀態(tài)下輸入:G2000運行輸入的程序。〈4〉在命令行提示符狀態(tài)下輸入:R↙屏幕顯示:R0=0000R1=5555R2=…RAM芯片可直接用A命令鍵入程序,但斷電會丟失,要再次調(diào)試該程序必須重新輸入,對那些較長的程序或經(jīng)常用到的程序可通過交叉匯編,在上位機生成代碼文件,每次加電啟動后不用重新輸入,只需通過PCEC16將代碼文件傳送給下位機即可。將擴展的ROM芯片(27或28系列或28的替代產(chǎn)品58C65芯片)插入標有“EXTROMH”和“EXTROML”的自鎖緊插座,要注意芯片插入的方向,帶有半圓形缺口的一方朝左插入。如果芯片插入方向不對,會導致芯片燒毀。然后鎖緊插座。將擴展芯片右邊的插針按下列方式短接:將EXTROML芯片右上方的標有“WE”和“A11”的插針下面兩個短接,將它右邊標有“TEC”“/CS”“FPGA”的三個插針左邊兩個短接,標有XTROMLCS的插針短接,標有“TEC”“OE”“GND”“FPGA”的四個插針上邊一排左邊的兩個短接;在第四步中用戶可以將右側標有“TEC”“/CS”“FPGA”的三個插針左邊兩個短接這表示擴展的ROM的內(nèi)存地址是從4000H開始,可用空間是4000H~5FFFH,用戶可在這個范圍內(nèi)輸入程序或改變內(nèi)存單元的值。也可以將這個插針斷開,將標有/CS的圓孔針與標有MEM/CS的一排圓孔針中的任意一個用導線相連;注意連接的地址范圍是多少,用戶可用的地址空間就是多少。將標有“DataBus15-8”和“DataBus7-0”的數(shù)據(jù)總線的指示燈下方的插針短接;將標有“AdressBus15-8”和“AdressBus7-0”的地址總線的指示燈下方的插針短接;下面以2764A為例,進行擴展EPROM實驗。AT28C64B的讀操作和一般的RAM一樣,而其寫操作,需要一定的時間,大約為1毫秒。因此,需要編寫一延遲子程序,在對EEPROM進行寫操作時,調(diào)用該子程序,以完成正確的讀寫。用E命令改變內(nèi)存單元的值并用D命令觀察結果。在命令行提示符狀態(tài)下輸入:E5000↙屏幕將顯示:5000內(nèi)存單元原值:按如下形式鍵入:5000原值:2424(按空格)原值:3636(按空格)原值:4848(按空格)原值:5050↙在命令行提示符狀態(tài)下輸入:D5000↙屏幕將顯示5000H~507FH內(nèi)存單元的值,從5000開始的連續(xù)四個內(nèi)存單元的值依次為2424363648485050?!?〉斷電后重新啟動,用D命令察看內(nèi)存單元5000~5003的值,會發(fā)現(xiàn)這幾個單元的值沒有發(fā)生改變,說明EEPROM的內(nèi)容斷電后可保存。AT28C64B存儲器不能直接用A命令輸入程序,單字節(jié)的指令可能會寫進去,雙字節(jié)指令的低位會出錯(建議試一試),可將編寫好的程序用編程器寫入片內(nèi);也可將程序放到RAM(6116)中,調(diào)用延時子程序,訪問AT28C64B中的內(nèi)存地址。下面給出的程序,在5000H~500FH單元中依次寫入數(shù)據(jù)0000H、0001H、...000FH。從2000H單元開始輸入主程序:(2000)MVRDR0,0000MVRDR2,0010 ;R2記錄循環(huán)次數(shù)MVRDR3,5000;R3的內(nèi)容為16位內(nèi)存地址(2006)STRR[R3],R0 ;將R0寄存器的內(nèi)容放到R3給出的內(nèi)存單元中CALA2200 ;調(diào)用程序地址為2200的延時子程序INCR0 ;R0加1INCR3 ;R3加1DECR2 ;R2減1JRNZ2006 ;R2不為0跳轉(zhuǎn)到2006HRET從2200H單元開始輸入延時子程序:(2200)PUSHR3MVRDR3,F(xiàn)FFF(2203)DECR3JRNZ2203POPR3RET運行主程序,在命令提示符下輸入:G2000程序執(zhí)行結束后,在命令提示符下輸入:D5000可看到從5000H開始的內(nèi)存單元的值變?yōu)?000:000000010002000300040005000600075008:00080009000A000B000C000D000E000F。思考:1)為何能用E命令直接寫AT28C64B的存儲單元,而A命令則有時不正確;E命令是儲存寄存器指令A是監(jiān)控器指令而E直接多個程序?qū)懭階T28C64B的存儲單元寫入的速度快A命令只能一次寫入執(zhí)行一條程序是延遲指令、所以用E命令直接寫A。T28C64B的存儲單元而A命令則有時不正確。2)修改延時子程序,將其延時改短,可將延時子程序中R3的內(nèi)容賦成00FF或0FFF等,再看運行結果。
5I/O口擴展實驗實驗目的學習串行口的正確設置與使用;實驗說明TEC-XP配置了兩個串行接口COM1和COM2,其中COM1口是系統(tǒng)默認的串行口,加電復位后,監(jiān)控程序?qū)ζ溥M行初始化,并通過該口與PC機或終端相連;而COM2口,留給用戶擴展用。查閱有關書籍,了解串行通信接口芯片8251的工作原理;了解8251復位、初始化、數(shù)據(jù)傳輸?shù)倪^程。提醒注意的是,每次對8251復位后(即按1次“RESET”按鍵),都需要對其進行初始化,然后再進行正常的數(shù)據(jù)傳輸;復位后,只能對其進行1次初始化,多次初始化將導致串口工作不正常。在使用COM2口時,需要將兩片8251芯片之間的插針用短路子短接(出廠時已短接),這樣才能為COM2正常工作提供所需的控制信號和數(shù)據(jù);另外,還需要為其分配數(shù)據(jù)口地址和控制口地址。本教學機,已將COM2口的C/與地址總線的最低位AB0相連,而其片選信號未連,只引出1個插孔,實驗時,應將該插孔與標有“I/O/CS”的7個插孔中的1個相連。實驗內(nèi)容為擴展I/O口選擇一個地址,即將與COM2口相連的8251的/CS與標有I/O/CS的一排插孔中的一個相連;將COM2口與終端或另一臺運行有PCEC16的PC機的串口相連;用監(jiān)控程序的A命令,編寫一段小程序,先初始化COM2口,在向COM2口發(fā)送一些字符,也可從COM2口接收一些字符,或?qū)崿F(xiàn)兩個串口的通信;實驗要求應了解監(jiān)控程序的A命令只支持基本指令,擴展指令應用E命令將指令代碼寫入到相應的存儲單元中;實驗步驟為擴展I/O口選擇一個地址:將與COM2口相連的8251的/CS與標有I/O/CS的插孔中地址為A0~AF的一個相連;注意,將兩片8251芯片之間的插針短接(出廠時以按默認方式短接);將教學機COM1口與一臺PC機相連,在PC機上啟動PCEC16.EXE;斷開COM1與PC的串口線,將其連接到另一臺PC機或同一臺PC的另一個串口,同樣啟動PCEC16.EXE;用另一根串口線將COM2口和第一臺PC或同一臺PC的另一個串口相連;在與COM1相連的PCEC上輸入程序,這是主PCEC可以輸入輸出,和COM2連接的是從PCEC只作輸出;用A、E命令編程進行COM2口的操作。(標有*的語句要用E命令直接寫入指令編碼)程序1:COM2口初始化在命令行提示符狀態(tài)下輸入:A2000↙從2000H單元開始輸入下面的程序A2000↙從2000H單元開始輸入下面的程序2000:MVRDR0,004E ;給R0賦值004E2002:OUTA1 ;將R0的值輸出到COM2口的8251中的寄存器中2003:MVRDR0,0037 ;給R0賦值00372005:OUTA1 ;將R0的值輸出到COM2口的8251中的寄存器中2006:RET在命令行提示符狀態(tài)下輸入G2000運行初始化程序,完成對COM2口的初始化。注意:每次按“RESET”按鍵后,在對COM2進行讀寫操作之前,都應運行該程序。需要注意的是,按一次“RESET”按鍵后,只能對COM2口進行一次初始化操作。程序2:從COM2口輸入數(shù)據(jù),然后在與COM1口相連的PC上顯示出數(shù)據(jù)。在命令行提示符狀態(tài)下輸入:A2040↙從2040H單元開始輸入下面的程序A2040↙從2040H單元開始輸入下面的程序2040:INA1 ;判鍵盤上是否按了一個鍵,2041:SHRR0 ;即串行口是否有了輸入的字符2042:SHRR02043:JRNC2040 ;沒有輸入則循環(huán)測試2044:INA0 ;從COM2口讀入字符到R02045:OUT80 ;將該字符從COM1口輸出2046:RET2047:↙2047:↙運行該程序,在命令行提示符狀態(tài)下輸入:G2040↙光標閃爍等待輸入,從與COM2口相連的PC的鍵盤輸入字符,則在與COM1口相連的PC的屏幕上回顯。程序3:從COM1口接收數(shù)據(jù),發(fā)送到與COM2口相連的PC機上回顯。在命令行提示符狀態(tài)下輸入:A2060↙從2060H單元開始輸入下面的程序(2060)IN81 ;判鍵盤上是否按了一個鍵,2061:SHRR0 ;即串行口是否有了輸入的字符2062:SHRR02063:JRNC2060;沒有,則循環(huán)等待2064:IN80 ;接收字符2065:OUTA0 ;將從鍵盤輸入的字符輸出到另一串口。2066:RET2067:↙2067:↙運行該程序,在命令行提示符狀態(tài)下輸入:G2060光標閃爍等待用戶輸入,從鍵盤輸入6,可在另一PC的屏幕上回顯出6。擴展實驗也可按另外一種方式完成,操作步驟如下:為擴展I/O口選擇一個地址:將與COM2口相連的8251的/CS與標有I/O/CS的插孔中地址為A0~AF的一個相連;注意,將兩片8251芯片之間的插針短接(出廠時以按默認方式短接);將一臺教學機COM1口與一臺PC機相連,在PC機上啟動PCEC16.EXE;將另一臺教學機COM1口與另一臺PC機相連,同樣啟動PCEC16.EXE;用一根串口線將第一臺的教學機的COM2口和另一臺教學機的COM2口相連;在兩臺PC機對應的PCEC上分別輸入一下程序:從2000H單元開始輸入下面的程序2000:MVRDR0,004E ;給R0賦值004E2002:OUTA1 ;將R0的值輸出到COM2口的8251中的寄存器中2003:MVRDR0,0037 ;給R0賦值00372005:OUTA1 ;將R0的值輸出到COM2口的8251中的寄存器中2006:IN81;檢查本機鍵盤是否按了一個鍵,2007:SHRR0 ;即串行口是否有了輸入的字符2008:SHRRO2009:JRNC200D;沒有,則轉(zhuǎn)去檢查擴展接口的鍵盤有沒有輸入200A:IN80 ;若本機鍵盤有輸入則接收該字符200B:OUT80;將鍵盤輸入的字符在本機輸出200C:OUTA0 ;將從鍵盤輸入的字符輸出經(jīng)擴展串口送到另一臺教學機輸出200D:INA1;檢查擴展串口相連的另一臺教學機對應的PC鍵盤上是否按鍵,200E:SHRRO;即串行口是否有了輸入的字符200F:SHRR02010:JRNC2006;沒有,則轉(zhuǎn)去判本機鍵盤是否有輸入2011:INA0;若有,則接收2012:OUT80;在本機輸出2013:JR20062014:RET該程序完成兩臺教學計算機的第2個串行接口擴展操作并完成該串口初始化,啟動兩臺教學機,都運行這個程序,則兩個鍵盤的輸入同時顯示在兩個屏幕上,實現(xiàn)的是雙機的雙向通訊功能。每臺教學機都只能檢查與操作自己的串行口,管不了另外那臺教學機。
6中斷實驗實驗目的 學習和掌握中斷產(chǎn)生、響應、處理等技術;實驗說明要求中斷隱指令中執(zhí)行關中斷功能,如果用戶中斷服務程序允許被中斷,必須在中斷服務程序中執(zhí)行EI開中斷命令。教學機的中斷系統(tǒng)共支持三級中斷,由三個無鎖按鍵確定從右到左依次為一、二、三級中斷,對應的P1、P0的編碼分別是01、10、11,優(yōu)先級也依次升高。這決定了它們的中斷向量(即中斷響應后,轉(zhuǎn)去執(zhí)行的程序地址)為XXX4、XXX8、XXXC;可以看到,每級中斷實際可用的空間只有四個字節(jié),故這個空間一般只存放一條轉(zhuǎn)移指令,而真正的用戶中斷服務程序則存放在轉(zhuǎn)移指令所指向的地址。用戶需擴展中斷隱指令、開中斷指令、關中斷指令、中斷返回指令及其節(jié)拍。實驗要求實驗前應了解什么是中斷向量;中斷隱指令不對應特定指令代碼,因而不能用指令代碼來判斷是否為新指令,在實際設計中,出了復位外,當節(jié)拍T3=1時,認為是擴展指令。這樣在擴展中斷隱指令時,節(jié)拍T3應為1。實驗內(nèi)容擴展中斷隱指令,為中斷隱指令分配節(jié)拍。中斷隱指令用到12個節(jié)拍,為了和一般指令相區(qū)別,應將其節(jié)拍T3設計為1。注意:在擴展中斷隱指令時要用到DC1、DC2的譯碼信號。擴展開中斷指令EI、關中斷指令DI、中斷返回指令IRET。確定中斷向量表地址。中斷向量表的高12位由硬件布線確定為(001001000000)。三級中斷對應的中斷向量為2404H、2408H、240CH。當有中斷請求且被響應后,將執(zhí)行存放在該中斷的中斷向量所指向的內(nèi)存區(qū)的指令。填寫中斷向量表。在上述的2404H、2408H、240CH地址寫入三條JR轉(zhuǎn)移指令,JR指令的OFFSET是偏移量,其值是要轉(zhuǎn)向的地址的值減去該條轉(zhuǎn)移指令的下一條指令的地址的值得到的,該值的范圍在-128~+127之間。但在PCEC16中輸入時,用戶不需要計算偏移量,直接輸入要轉(zhuǎn)向的絕對地址即可。編寫中斷服務程序。中斷服務程序可以放在中斷向量表之后,中斷服務程序可實現(xiàn)在程序正常運行時在計算機屏幕上顯示與優(yōu)先級相對應的不同字符;寫主程序??删帉懸凰姥h(huán)程序,要求先開中斷;實驗步驟擴展中斷隱指令和開、關中斷指令、中斷返回指令,為他們分配節(jié)拍并給出各節(jié)拍對應的控制信號。中斷隱指令的節(jié)拍和控制信號節(jié)拍功能說明/MIOREQ/WEABSciSSHI8-6I5-3I2-0SSTDC1DC21010STR→Q.DI#=01000000000000000000001110000111111110SP-1→AR、SP1000000000000000110010110000000111100PC→MEM、INTN#0000101000000000010001000000011011011111SP-1→AR、SP1000000010000000110010110000000111101Q→MEM0000000000000000010000100000010001011INTVL#、IB→PC100000001010000011000101000101000EI、DI、IRET指令的節(jié)拍和控制信號節(jié)拍指令編碼/MIOREQ/WEABSciSSHI8-6I5-3I2-0SSTDC1DC21000100010101010100011001001000000111000010001010101010001000001100000001100100010000000000000010000000000000010011EI01101110100000000000000001000000000110000DI011011111000000000000000010000000001110000110IRET111011111000100010001000100000110000000110100IRET111011110010000000000000010000000100000000111IRET111011111000100010001000100000110000000110101IRET11101111001000001010000011000111000000000可以參照我們提供的組合邏輯全指令的MACH程序,可直接下載MACHC.JED的程序到MACH器件中。分別將TIMINGGAL下邊的兩組3個的插針的左面兩個短接。任意選擇幾條指令觀察指令執(zhí)行及轉(zhuǎn)中斷執(zhí)行的節(jié)拍和各節(jié)拍對應的控制信號.置控制開關為11110(單步、手動置指令、組合邏輯、聯(lián)機、16位)1>選擇基本指令的A組指令中的SHR指令,觀察其節(jié)拍流程:置撥動開關SW=0000101100000000;(表示指令SHRR0)按RESET按鍵;節(jié)拍指示燈T4~T0顯示1000;(本拍在第1次復位后才會執(zhí)行)按START按鍵;節(jié)拍指示燈T4~T0顯示0000;(以上兩拍,為公共節(jié)拍,在手動置指令方式下無意義)按START按鍵;節(jié)拍指示燈T4~T0顯示0010;(本拍也是公共節(jié)拍,將指令編碼寫入指令寄存器IRH、IRL)按START按鍵;節(jié)拍指示燈T4~T0顯示0011;(本拍執(zhí)行SHR指令,完成SHRR0操作)按START按鍵;節(jié)拍指示燈T4~T0顯示0000;(本拍轉(zhuǎn)中斷處理,完成DI#操作)按START按鍵;節(jié)拍指示燈T4~T0顯示0010;(本拍完成中斷處理操作STR→Q)按START按鍵;節(jié)拍指示燈T4~T0顯示0110;(本拍完成中斷處理操作SP-1→AR、SP)按START按鍵;節(jié)拍指示燈T4~T0顯示0100;(本拍完成中斷處理操作PC→(AR),INTN#)按START按鍵;節(jié)拍指示燈T4~T0顯示0111;(本拍完成中斷處理操作SP-1→AR、SP)按START按鍵;節(jié)拍指示燈T4~T0顯示0101;(本拍完成中斷處理操作Q→(AR))按START按鍵;節(jié)拍指示燈T4~T0顯示1000;(本拍完成中斷處理操作INTV#,IB→PC)可以看到,A組指令(包括ADD、SUB、CMP、AND、XOR、SHR、SHL、INC、DEC、TEST、OR、MVRR、JR、JRC、JRNC、JRZ、JRNZ)的執(zhí)行共11拍,包括3拍公共節(jié)拍,一拍完成指令操作,另有7拍轉(zhuǎn)中斷處理。選擇基本指令的B組指令中的IN指令,觀察其節(jié)拍流程:置撥動開關SW=1000001000000000;(表示指令IN00)按RESET按鍵;節(jié)拍指示燈T4~T0顯示1000;(本拍在第1次復位后才會執(zhí)行)按START按鍵;節(jié)拍指示燈T4~T0顯示0000;(以上兩拍,為公共節(jié)拍,在手動置指令方式下無意義)按START按鍵;節(jié)拍指示燈T4~T0顯示0010;(本拍也是公共節(jié)拍,將指令編碼寫入指令寄存器IRH、IRL)按START按鍵;節(jié)拍指示燈T4~T0顯示0110;(本拍執(zhí)行IN指令的第一步,IRL→IB→AR)按START按鍵;節(jié)拍指示燈T4~T0顯示0100;(本拍執(zhí)行IN指令的第二步,(PORT)→R0)以下7拍轉(zhuǎn)中斷處理,節(jié)拍流程與A組指令的相同。可以看到,B組指令(包括JMPA、LDRR、IN、STRR、PSHF、PUSH、OUT、POP、MVRD、POP、RET)的執(zhí)行除3拍公共節(jié)拍外,指令完成需兩步,轉(zhuǎn)中斷處理后執(zhí)行7步。3〉選擇基本指令的D組指令中的CALA指令,觀察其節(jié)拍流程:置撥動開關SW=1100111000000000;(表示指令CALA)按RESET按鍵;節(jié)拍指示燈T4~T0顯示1000;(本拍在第1次復位后才會執(zhí)行)按START按鍵;節(jié)拍指示燈T4~T0顯示0000;(以上兩拍,為公共節(jié)拍,在手動置指令方式下無意義)按START按鍵;節(jié)拍指示燈T4~T0顯示0010;;(本拍也是公共節(jié)拍,將指令編碼寫入指令寄存器IRH、IRL)按START按鍵;節(jié)拍指示燈T4~T0顯示0110(本拍執(zhí)行CALA指令的第一步,PC→AR、PC+1→PC)按START按鍵;節(jié)拍指示燈T4~T0顯示0100;(本拍執(zhí)行CALA指令的第二步,(AR)→Q)按START按鍵;節(jié)拍指示燈T4~T0顯示0111;(本拍執(zhí)行CALA指令的第三步,SP-1→SP、AR)按START按鍵;節(jié)拍指示燈T4~T0顯示0101;(本拍執(zhí)行CALA指令的第四步,PC→(AR),Q→PC)以下7拍轉(zhuǎn)中斷處理,節(jié)拍流程與A、B組指令的相同。4〉選擇擴展指令的A組指令中的SBB指令,觀察其節(jié)拍流程:置撥動開關SW=0010000100000000;(表示指令SBB)按RESET按鍵;節(jié)拍指示燈T4~T0顯示1000;(本拍在第1次復位后才會執(zhí)行)按START按鍵;節(jié)拍指示燈T4~T0顯示0000;(以上兩拍,為公共節(jié)拍,在手動置指令方式下無意義按START按鍵;節(jié)拍指示燈T4~T0顯示0010;(本拍也是公共節(jié)拍,將指令編碼寫入指令寄存器IRH、IRL)按START按鍵;節(jié)拍指示燈T4~T0顯示0011;(本拍執(zhí)行SBB指令,DR-SR-/C→DR)以下7拍轉(zhuǎn)中斷處理,節(jié)拍流程與基本指令的A、B組指令相同5〉選擇擴展指令的C組指令中的LDRA指令,觀察其節(jié)拍流程:置撥動開關SW=1110010000000000;(表示指令LDRA)按RESET按鍵;節(jié)拍指示燈T4~T0顯示1000;(本拍在第1次復位后才會執(zhí)行)按START按鍵;節(jié)拍指示燈T4~T0顯示0000;(以上兩拍,為公共節(jié)拍,在手動置指令方式下無意義按START按鍵;節(jié)拍指示燈T4~T0顯示0010;(本拍也是公共節(jié)拍,將指令編碼寫入指令寄存器IRH、IRL)按START按鍵;節(jié)拍指示燈T4~T0顯示0110;(本拍執(zhí)行LDRA指令第一步,完成操作PC→AR,PC+1→PC)按START按鍵;節(jié)拍指示燈T4~T0顯示0111;(本拍執(zhí)行LDRA指令第二步,完成操作(AR)→AR)按START按鍵;節(jié)拍指示燈T4~T0顯示0101;(本拍執(zhí)行LDRA指令第三步,完成操作(AR)→AR)以下7拍轉(zhuǎn)中斷處理,節(jié)拍流程與擴展指令的A組指令相同6〉選擇擴展指令的D組指令中的IRET指令,觀察其節(jié)拍流程:置撥動開關SW=1110111100000000;(表示指令IRET)按RESET按鍵;節(jié)拍指示燈T4~T0顯示1000;(本拍在第1次復位后才會執(zhí)行)按START按鍵;節(jié)拍指示燈T4~T0顯示0000;(以上兩拍,為公共節(jié)拍,在手動置指令方式下無意義按START按鍵;節(jié)拍指示燈T4~T0顯示0010;(本拍也是公共節(jié)拍,將指令編碼寫入指令寄存器IRH、IRL)按START按鍵;節(jié)拍指示燈T4~T0顯示0110;(本拍執(zhí)行IRET指令第一步,完成操作SP→AR,SP+1→SP)按START按鍵;節(jié)拍指示燈T4~T0顯示0100;(本拍執(zhí)行IRET指令第二步,完成操作(AR)→FLAG)按START按鍵;節(jié)拍指示燈T4~T0顯示0111;(本拍執(zhí)行IRET指令第三步,完成操作SP→AR,SP+1→SP)按START按鍵;節(jié)拍指示燈T4~T0顯示0101;(本拍執(zhí)行IRET指令第四步,完成操作(AR)→PC)以下7拍轉(zhuǎn)中斷處理,節(jié)拍流程與擴展指令的A、D組指令相同7〉選擇幾條指令INC、JRS、MVRD、LDRX、STRX、CALA、IRET,單步運行,觀察其各節(jié)拍對應的控制信號節(jié)拍指令編碼/MIOREQ/WEABSciSSHI8-6I5-3I2-0SSTDC1DC21000100010101010100011001001000000111000010001010101010001000001100000001100100010000000000000010000000000000010011INC000010011000000DR0100011000011001000000JRS011001001000101010100000S10001010000100000110MVRD10001000100010101010100010000011000000011CALA11001110100010101010100010000011000000011LDRX11100101100010101010100010000011000000011STRX11100110100010101010100010000011000000011IRET111011111000100010001000100000110000000110100MVRD100010000010000DR0000011000111000000000CALA11001110001000000000000000000111000000000IRET111011110010000000000000010000000100000000111CALA110011101000000010000000110010110000000110111LDRX11100101001SR00000000001000101000000011STRX11100110001SR00000000001000101000000011IRET111011111000100010001000100000110000000110101CALA110011100000101010100000100000100000010000101LDRX111001010010000DR0000011000111000000000STRX111001100000000DR0000001000011000001000IRET1110111100100000101000001100011100000000010000100000000000000001000000000000111100101000000000000000000001110000110001011010000000100000001100101100000001110100000010100000000001000100000001101101111000000010000000110010110000000111010100000000000000000100001000000100011000100000001010000011000111000101000填寫中斷向量表。選擇3級中斷的中斷向量為2404H、2408H、240CH。中斷向量一共有16位,高12位由硬件布線決定為:001001000000,后四位為P1P000,P1P0由按
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年耳機原材料供應商質(zhì)量保證合同
- 2024馬鈴薯種植基地安全生產(chǎn)責任合同3篇
- 2024年股權激勵計劃書
- 2024年金融科技研發(fā)與創(chuàng)新服務合同
- 2024跨國企業(yè)廣告宣傳與推廣合同
- 2024年食品企業(yè)HACCP體系認證咨詢合同版B版
- 2024年航空公司客艙餐飲服務供應合同
- 2024輕質(zhì)隔墻板行業(yè)規(guī)范制定與執(zhí)行監(jiān)督協(xié)議3篇
- 2024年藥品銷售與售后服務協(xié)議3篇
- 2024年適用餐飲行業(yè)購銷協(xié)議范例版B版
- 山東省煙臺市2025屆高三上學期期末學業(yè)水平診斷政治試卷(含答案)
- 2025北京石景山初二(上)期末數(shù)學真題試卷(含答案解析)
- 商場停車場管理制度
- 北師大版四年級下冊數(shù)學課件第1課時 買文具
- 青貯產(chǎn)品銷售合同樣本
- 2024年冷庫倉儲服務協(xié)議3篇
- 2024-2025學年度第一學期四年級數(shù)學寒假作業(yè)
- 中考語文真題專題復習 小說閱讀(第01期)(解析版)
- 《陸上風電場工程概算定額》NBT 31010-2019
- 魯科版物理五四制八年級下冊全冊課件
- 水蓄冷與冰蓄冷地比較
評論
0/150
提交評論