上海大學計算機組成原理實驗報告8級_第1頁
上海大學計算機組成原理實驗報告8級_第2頁
上海大學計算機組成原理實驗報告8級_第3頁
上海大學計算機組成原理實驗報告8級_第4頁
上海大學計算機組成原理實驗報告8級_第5頁
全文預覽已結(jié)束

下載本文檔

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

文檔簡介

1、上海大學計算機學院計算機組成原理二實驗報告8姓名: 學號: 教師:xxx時間:xxx 地點:xxx 機位:xxx實驗名稱:程序轉(zhuǎn)移機制(綜合實驗)一、實驗目的:1. 學習實現(xiàn)程序轉(zhuǎn)移的硬件機制;2. 掌握堆棧寄存器的使用;3. 深入理解PC寄存器自動加1和打入初值功能對計算機程序的深遠影響;4. 掌握代碼的分段連續(xù)存放技術(shù)和實現(xiàn)二、實驗原理:程序轉(zhuǎn)移:分支和循環(huán)總是可以相互替代,所以也常說程序段內(nèi)的執(zhí)行流程有順序和轉(zhuǎn)移兩種,而程序段之間的調(diào)用也只是把執(zhí)行流程轉(zhuǎn)移到了另外一個程序段上。所以,任何復雜的程序流程,在硬件實現(xiàn)機制上只有兩種情況:順序執(zhí)行和轉(zhuǎn)移。硬件實現(xiàn)這兩種情況的技術(shù)很簡單:PC寄存

2、器的自動加1功能實現(xiàn)程序順序執(zhí)行,PC寄存器的打入初值功能實現(xiàn)程序轉(zhuǎn)移。實驗箱系統(tǒng)的程序轉(zhuǎn)移硬件機制:當LDCP有效(0)時,PC被打入新值(賦初值),實現(xiàn)程序的轉(zhuǎn)移。這一刻DBUS上的值就是轉(zhuǎn)移的目標地址(被打入PC),這個地址同轉(zhuǎn)移指令所在地址的關(guān)系決定了轉(zhuǎn)移類型。子程序調(diào)用和保護斷點:子程序的調(diào)用和返回是兩次轉(zhuǎn)移,特殊點在于:返回時轉(zhuǎn)移的目標一定是調(diào)用時轉(zhuǎn)移的出發(fā)點。為實現(xiàn)這個特點,在調(diào)用轉(zhuǎn)移時必須把出發(fā)地址(斷點)保存起來。這個“保存”還必須有兩個要求:1.不被一般用戶所知或改變。2.返回轉(zhuǎn)移時能方便地找到它。第一個要求決定了它不能被保存在數(shù)據(jù)存儲區(qū)或程序存儲區(qū),第二個要求決定了返回指

3、令的目標地址獲得方法與其它轉(zhuǎn)移指令完全不同,返回指令的目標地址一定從這個特殊的“保存區(qū)”得到,指令本身不需要再帶目標地址,而其他轉(zhuǎn)移指令必須自帶目標地址。再考慮到子程序調(diào)用的“可嵌套性”,這個“保護區(qū)”里的數(shù)據(jù)應該有“先入后出”特點,這與“貨?!敝卸逊诺呢浳锵嗨?,故稱其為“堆棧”。ST寄存器結(jié)構(gòu)和子程序調(diào)用與返回控制信號:實驗箱子程序調(diào)用和返回的結(jié)構(gòu)由PC電路和ST電路組成。調(diào)用轉(zhuǎn)移時,PC的當前值(斷點)經(jīng)下面的245送上DBUS,進入ST保存;然后給PC打入子程序入口地址(調(diào)用指令攜帶的目標地址)完成轉(zhuǎn)子程序。返回轉(zhuǎn)移時,返回指令開啟ST的輸出,并給出PC打入信號(無條件轉(zhuǎn)移),于是ST保

4、存的斷點經(jīng)由DBUS打入PC,實現(xiàn)子程序返回。三、實驗內(nèi)容:1、用手動方式實現(xiàn)子程序調(diào)用轉(zhuǎn)移過程(轉(zhuǎn)子時PC值11H,子程序入口地址50H,且放在A寄存器)。2、用手動方式實現(xiàn)子程序返回轉(zhuǎn)移過程。3、編程實現(xiàn)OUT寄存器交替顯示11和55,交替頻率為可以清晰辨識,且不小于每秒一次(實驗箱的工作頻率為:114.8Hz。)。4、修改3的程序,當CYIN孔送入1時OUT寄存器顯示FF并停機。四、 實驗步驟:一、 用手動方式實現(xiàn)子程序調(diào)用轉(zhuǎn)移過程(轉(zhuǎn)子時PC值11H,子程序入口地址50H,且放在A寄存器):(1) 接線:ELP,STEN,X2,X1,X0,AEN,PCOE(2) 打開電源,調(diào)整進入手動

5、模式。(3) 將AEN置0,在K23K16打入00010001,STEP,即將11H寫到A中。PCOESTENX2X1X011011 (4) 將ELP置0,X2X1X0置為000,STEP,即將11H打入PC單元 。(5)將STEN置0,X2X1X0置為100,STEP,即將PC中11H打入ST。(6)循環(huán)(3), (4),將50H打入PC。二、用手動方式實現(xiàn)子程序返回轉(zhuǎn)移過程:1將ST設為允許輸出,PC設為允許寫STENELPX2X1X0110102.按下小鍵盤STEP脈沖鍵,將ST的值送入到PC寄存器中。三、編程實現(xiàn)OUT寄存器交替顯示11和55,交替頻率為可以清晰辨識,且不小于每秒一次(

6、實驗箱的工作頻率為:114.8Hz。):1在windows環(huán)境運行CP226軟件(如雙擊圖標),進入它的主界面2在 “源程序” 編輯中,打入如下指令:L1:MOV A,#11HOUTCALL 50HMOV A,#55HOUTCALL 50HJMP L1ORG 50HMOV A,#05HDELAY:SUB A,#01HJZ EXITJMP DELAYEXIT:RETEND3.在“匯編”中點擊“匯編下載”,然后點擊“全速運行”,觀察現(xiàn)象。四、修改3的程序,當CYIN孔送入1時OUT寄存器顯示FF并停機:1在windows環(huán)境運行CP226軟件(如雙擊圖標),進入它的主界面2在 “源程序” 編輯中,

7、打入如下指令:L3:MOV A,#11H OUT MOV A,#16HL1:JC L5 SUB A,#01H JZ L2 JMP L1L2:JC L5MOV A,#55H OUT MOV A,#16HL4:SUB A,#01H JZ L3 JMP L4L5:MOV A, #FFH OUTEND3.在“匯編”中點擊“匯編下載”,然后點擊“全速運行”,觀察現(xiàn)象4.用導線接JIR2和JIR3至開關(guān)處,將它們置0時,觀察現(xiàn)象五、實驗現(xiàn)象:1. 按下小鍵盤STEP脈沖鍵,ST寄存器顯示11;按下STEP鍵,IN處燈亮,再按下,PC寄存器顯示11。2. 按下小鍵盤STEP脈沖鍵,PC寄存器顯示50。3. 點擊“全速運行”,OUT寄存器循環(huán)顯示11和55。4. 點擊“全速運行”,OUT寄存器循環(huán)顯示11和55,當JIR2和JIR3都置0時,OUT寄存器顯示FF,不再循環(huán)。六、體會通過這次實驗,我學習到了實現(xiàn)程序轉(zhuǎn)移的硬件機制,再次實用cp226集成開發(fā)環(huán)境,有進一步熟悉了其使用方法。在做第一、二個實驗時,由于操作不是非常熟練,于是再多練習熟識其原理后,總算順利結(jié)束。第三個實驗其實比較順利,匯編也得到了改進。七、思考題若要求11和55各顯示50次后停機,應該如何修改程序?ORG 00HMOV A,#50L1:MOV R0,AMOV A,#11HOU

溫馨提示

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

評論

0/150

提交評論