9A文計(jì)算機(jī)組成原理試驗(yàn)_第1頁(yè)
9A文計(jì)算機(jī)組成原理試驗(yàn)_第2頁(yè)
9A文計(jì)算機(jī)組成原理試驗(yàn)_第3頁(yè)
9A文計(jì)算機(jī)組成原理試驗(yàn)_第4頁(yè)
9A文計(jì)算機(jī)組成原理試驗(yàn)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、MeiWei 81 重點(diǎn)借鑒文檔】 實(shí)驗(yàn)一基礎(chǔ)匯編語(yǔ)言程序設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康模?1、學(xué)習(xí)和了解 TEC-RP16 教學(xué)實(shí)驗(yàn)系統(tǒng)監(jiān)控命令的用法。 2、學(xué)習(xí)和了解 TEC-RP16 教學(xué)實(shí)驗(yàn)系統(tǒng)的指令系統(tǒng)。 3、學(xué)習(xí)簡(jiǎn)單的 TEC-RP16 教學(xué)實(shí)驗(yàn)系統(tǒng)匯編程序設(shè)計(jì)。 二、預(yù)習(xí)要求: 1、學(xué)習(xí) TEC-RP16 機(jī)監(jiān)控命令的用法。 2、學(xué)習(xí) TEC-RP16 機(jī)的指令系統(tǒng)、匯編程序設(shè)計(jì)及監(jiān)控程序中子程序調(diào)用。 3、學(xué)習(xí) TEC-RP16 機(jī)的使用,包括開關(guān)、指示燈、按鍵等。 4、了解實(shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)步驟和要求。 三、實(shí)驗(yàn)步驟: 在教學(xué)計(jì)算機(jī)硬件系統(tǒng)上建立與調(diào)試匯編程序有幾種操作辦法。 第一種辦法,是

2、使用監(jiān)控程序的 A命令,逐行輸入并直接匯編單條的匯編語(yǔ)句,之后使 用G命令運(yùn)行這個(gè)程序。缺點(diǎn)是不支持匯編偽指令,修改已有程序源代碼相對(duì)麻煩一些,適 用于建立與運(yùn)行短小的匯編程序。 第二種辦法, 是使用增強(qiáng)型的監(jiān)控程序中的 W命令建立完整的匯編程序, 然后用 M 命令 對(duì)建立起來(lái)的匯編程序執(zhí)行匯編操作,接下來(lái)用G 命令運(yùn)行這個(gè)程序。適用于比較短小的程 序。此時(shí)可以支持匯編偽指令,修改已經(jīng)在內(nèi)存中的匯編程序源代碼的操作更方便一些。 第三種辦法, 是使用交叉匯編程序 ASEC,首先在 PC機(jī)上, 用PC機(jī)的編輯程序建立完整 的匯編程序,然后用 ASEC 對(duì)建立起來(lái)的匯編程序執(zhí)行匯編操作,接下來(lái)把匯編

3、操作產(chǎn)生的 二進(jìn)制的機(jī)器指令代碼文件內(nèi)容傳送到教學(xué)機(jī)的內(nèi)存中, 就可以運(yùn)行這個(gè)程序了。 適用于規(guī) 模任意大小的程序。 在這里我們只采用第一種方法。 在TEC-RP16機(jī)終端上調(diào)試匯編程序要經(jīng)過(guò)以下幾步: 1、使教學(xué)計(jì)算機(jī)處于正常運(yùn)行狀態(tài)(具體步驟見(jiàn)附錄聯(lián)機(jī)通訊指南)。 2、使用監(jiān)控命令輸入程序并調(diào)試。 用監(jiān)控命令 A 輸入?yún)R編程序 A或A 主存地址 如:在命令行提示符狀態(tài)下輸入: A20RR ;表示該程序從 20RRH (內(nèi)存 RAM 區(qū)的起始地址)地址開始 屏幕將顯示: 20RR: MeiWei_81 重點(diǎn)借鑒文檔】 MeiWei 81 重點(diǎn)借鑒文檔】 輸入如下形式的程序: 20RR:MVR

4、DR0 , AAAA ;MVRD 與 R0之間有且只有一個(gè)空格,其他指令相同 20RR:MVRDR1 , 5555 20RR:ADDR0 , R1 20RR:ANDR0 , R1 20RR:RET ;程序的最后一個(gè)語(yǔ)句,必須為 RET指令 20RR:(直接敲回車鍵,結(jié)束 A 命令輸入程序的操作過(guò)程) 若輸入有誤, 系統(tǒng)會(huì)給出提示并顯示出錯(cuò)地址, 用戶只需在該地址重新輸入正確的指令 即可。 用監(jiān)控命令 U調(diào)出輸入過(guò)的程序并顯示在屏幕上 U或U 主存地址 如:在命令行提示符狀態(tài)下輸入: U20RR 在相應(yīng)的地址會(huì)得到輸入的指令及其操作碼 注意: 連續(xù)使用不帶參數(shù)的 U 命令時(shí),將從上一次反匯編的最

5、后一條語(yǔ)句之后接著繼續(xù) 反匯編。 通過(guò)這一步進(jìn)一步檢查程序是否有除了語(yǔ)法外的其它錯(cuò)誤。 通過(guò)監(jiān)控命令 G(連續(xù)執(zhí)行)或 T/P(單步執(zhí)行)執(zhí)行程序 G/T/P或G/T/P 主存地址 如:在命令行提示符狀態(tài)下輸入: G20RR 程序運(yùn)行結(jié)束后,可以看到程序的運(yùn)行結(jié)果,屏幕顯示各寄存器的值,其中R0 和R1的 值均為 5555H ,說(shuō)明程序運(yùn)行正確。 修改或顯示寄存器或內(nèi)存值的命令。R、 D、 E命令的使用 1)用 R命令查看寄存器內(nèi)容或修改寄存器的內(nèi)容 a.在命令行提示符狀態(tài)下輸入: R;顯示寄存器的內(nèi)容 注意: 寄存器的內(nèi)容在運(yùn)行程序或執(zhí)行命令后會(huì)發(fā)生變化。 b.在命令行提示符狀態(tài)下輸入: R

6、R0;修改寄存器 R0的內(nèi)容,被修改的寄存器與所賦值之間可以無(wú)空格,也可有一個(gè) 或數(shù)個(gè)空格 主機(jī)顯示 : 寄存器原值 :_ 在該提示符下輸入新的值 0036 MeiWei_81 重點(diǎn)借鑒文檔】 【MeiWei 81 重點(diǎn)借鑒文檔】 再用 R命令顯示寄存器內(nèi)容,則 R0的內(nèi)容變?yōu)?0036。 2)用 D 命令顯示存儲(chǔ)器內(nèi)容 在命令行提示符狀態(tài)下輸入: D20RR 會(huì)顯示從 20RRH 地址開始的連續(xù) 128個(gè)字的內(nèi)容; 連續(xù)使用不帶參數(shù)的 D命令,起始地址會(huì)自動(dòng)加 128(即 80H)。 3)用 E命令修改存儲(chǔ)器內(nèi)容 在命令行提示符狀態(tài)下輸入: E20RR 屏幕顯示 : 20RR地址單元的原有內(nèi)

7、容 :光標(biāo)閃爍等待輸入 輸入 0000 依次改變地址單元 20RR-20RR 的內(nèi)容為 :11112222333344445555 注意: 用E命令連續(xù)修改內(nèi)存單元的值時(shí),每修改完一個(gè),按一下空格鍵,系統(tǒng)會(huì)自動(dòng) 給出下一個(gè)內(nèi)存單元的值,等待修改;按回車鍵則退出 E 命令。 四、實(shí)驗(yàn)內(nèi)容: 1、輸入下列各匯編程序段,將結(jié)果調(diào)試出來(lái),并回答問(wèn)題。 程序 1: A20RR 20RR:IN81 SHRR0 SHRR0 JRNC20RR IN80 OUT80 RET 注意: 在十六位機(jī)中,基本 I/O 接口的地址是確定的,數(shù)據(jù)口的地址為80,狀態(tài)口的地址為 81。 問(wèn)題: 該程序段的功能是什么? 從鍵盤

8、上接收一個(gè)字符并在屏幕上輸出顯示該字符 程序 2: A2060 2060: MVRDR1,0000 MVRDR2,00OA 【MeiWei_81 重點(diǎn)借鑒文檔】 MeiWei 81 重點(diǎn)借鑒文檔】 MVRDR3,0000 2066: INCR3 ADDR1,R3 CMPR3,R2 JRNZ2066 RET 問(wèn)題: 該程序段的功能是什么? 計(jì)算1到10的累加和 如何察看結(jié)果?結(jié)果是什么? 輸入G2060結(jié)果為: R1=0037R2=00OAR3=00OA 請(qǐng)用一字長(zhǎng)的指令替換程序中的MOVR3 , 0寫出該語(yǔ)句。 Movr3 , r1 程序 3: 用次數(shù)控制在終端屏幕上輸出 0到 9十個(gè)數(shù)字符。

9、 A2020 2020: MVRDR2,00OA ;送入輸出字符個(gè)數(shù) MVRDR0,0030 ; “ 0字”符的 ASCII碼送寄存器 R0 OUT80 ;輸出保存在 R0低位字節(jié)的字符 DECR2 ;輸出字符個(gè)數(shù)減 1 JRZ202E;判 10個(gè)字符輸出完否 ,已完,則轉(zhuǎn)到程序結(jié)束處 PUSHR0 ;未完,保存 R0的值到堆棧中 2028:IN81 ;查詢接口狀態(tài),判字符串行輸出完成否 , SHRR0; JRNC2028 ;未完成 ,則循環(huán)等待 POPR0;已完成 ,準(zhǔn)備輸出下一字符并從堆?;謴?fù) R0的值 INCR0 ;得到下一個(gè)要輸出的字符 JR2024;轉(zhuǎn)去輸出字符 202E:RET 五

10、、思考題: 若把 IN81,SHRR0,JRNC2028 三個(gè)語(yǔ)句換成 4個(gè)MVRRR0 ,R0語(yǔ)句 ,該程序執(zhí)行過(guò)程會(huì)出現(xiàn) 什么現(xiàn)象 ?試分析并實(shí)際執(zhí)行一次。 程序改變這三條語(yǔ)句后,若用 T命令單條執(zhí)行,會(huì)依次顯示 0,9十個(gè)數(shù)字。若用 G命令運(yùn)行 程序,由于程序運(yùn)行速度快, 端口串行輸出的速度很慢, 這樣新會(huì)丟失某些輸出的字行; 如, MeiWei_81 重點(diǎn)借鑒文檔】 【MeiWei 81 重點(diǎn)借鑒文檔】 在命令行提示符狀態(tài)下輸入 G2020命令后,屏幕可能的顯示為 059或 069,而不是 023456789 全部的 10個(gè)字符。 若要求在終端屏幕上輸出 A到Z共 26個(gè)英文字母,應(yīng)如

11、何修改程序 ?請(qǐng)驗(yàn)證之。 A2100 MVRDR2,001A MVRDR0,0041 OUT80 DECR2 JRZ210E PUSHR0 IN81 SHRR0 JRNC2108 POPR0 INCR0 JR2104 RET 2、試編寫程序完成兩個(gè)雙字長(zhǎng)的數(shù)相加并驗(yàn)證之。 3、設(shè)計(jì)一個(gè)有讀寫內(nèi)存和子程序調(diào)用指令的程序,功能是讀出內(nèi)存中的字符,將其顯示到 顯示器的屏幕上,轉(zhuǎn)換為小寫字母后再寫回存儲(chǔ)器原存儲(chǔ)區(qū)域。 E20FO 屏幕將顯示: 20F0: 按下列格式輸入: 20Fo: 41 20F1: 42 20F2: 43 20F3: 44 20F4: 45 20F5: 45 2) 在命令行提示符狀

12、態(tài)下輸入 A2080 屏幕將顯示: 2080: 從地址 2080 開始輸入下列程序: (2080)MVDR3,06:指定技讀數(shù)據(jù)的個(gè)數(shù) MVDR,9 20:指定被讀、寫數(shù)據(jù)內(nèi)存區(qū)首地址 MVDR,8 F0 (2086)LODR0:使內(nèi)存中的一個(gè)字符到 R0 寄存器 MVDR,B 21;指定于程序地址為 2100 MVDR,A 00 CALL;調(diào)用于程序,完成顯示、轉(zhuǎn)換并寫回的功能 DECR;3 檢查輸出的字符個(gè)數(shù) MeiWei_81 重點(diǎn)借鑒文檔】 【MeiWei 81 重點(diǎn)借鑒文檔】 JZ2092;完成輸出則結(jié)束程序的執(zhí)行過(guò)程 INCR8;未完成,修改內(nèi)存地址 JR2086:轉(zhuǎn)移到程序的 2

13、086 處,循環(huán)執(zhí)行規(guī)定的處理 (2092)RET A2100 輸入用到的子程序到內(nèi)存 2100 開始的存儲(chǔ)區(qū) OUT00:輸出保存在 R0 寄存器中的字符 MVDR,1 20:轉(zhuǎn)換保存在 R0 中的大寫字母為小寫字母 ADDR,0 B1 STOR0;寫 R0 中的字符到內(nèi)存,地址同 LOD所用的地址 (2105)IN01 ;測(cè)試串行接口是否完成輸出過(guò)程 SHRR0 JNC2105;末完成輸出過(guò)程則循環(huán)試 RET:結(jié)束子程序執(zhí)行過(guò)程,返回主程序 3) 在命令行提示符狀態(tài)下輸入: G2080 屏幕顯示運(yùn)行結(jié)果為: ABCDEF 11 個(gè)寄存器內(nèi)容及狀態(tài)標(biāo)志 2080: MVDR,3 06 4)

14、在命令行提示符狀態(tài)下輸入: D20F0 20F0 20F5 內(nèi)存單元的內(nèi)容為: 6l6263646566 4、設(shè)計(jì)一個(gè)程序在顯示器屏幕上循環(huán)顯示95個(gè)(包括空格字符)可打印字符。 A20A0 ;從內(nèi)存的 20A0 單元開始建立用戶的第一個(gè)程序 20A0:MVRDR1,7E ;向寄存器傳送立即數(shù) 20A2:MVRDR0,20 ; 20A4:OUT80 ;通過(guò)串行接口輸出 R0低位字節(jié)內(nèi)容到顯示器屏幕 20A5:PUSHR0 ;保存 R0寄存器的內(nèi)容到堆棧中 20A6:IN81 ;讀串行接口的狀態(tài)寄存器的內(nèi)容 20A7:SHRR0 ; R0寄存器的內(nèi)容右移一位,最低位的值移入標(biāo)志位C 20A8:JRNC20A6 ;條件轉(zhuǎn)移指令,當(dāng)標(biāo)志位 C 不是 1時(shí)就轉(zhuǎn)到 20A6地

溫馨提示

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

評(píng)論

0/150

提交評(píng)論