




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)二 基礎(chǔ)匯編語言程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康模?學(xué)習(xí)和了解TEC-2000 十六位機(jī)監(jiān)控命令的用法;2學(xué)習(xí)和了解TEC-2000 十六位機(jī)的指令系統(tǒng);3學(xué)習(xí)簡單的TEC-2000 十六位機(jī)匯編程序設(shè)計(jì);實(shí)驗(yàn)內(nèi)容:1使用監(jiān)控程序的R 命令顯示/修改寄存器內(nèi)容、D 命令顯示存儲(chǔ)器內(nèi)容、E 命令修改存儲(chǔ)器內(nèi)容;2使用A 命令寫一小段匯編程序,U 命令反匯編剛輸入的程序,用G 命令連續(xù)運(yùn)行該程序,用T 命令單步運(yùn)行并觀察程序單步執(zhí)行情況;實(shí)驗(yàn)要求在使用該教學(xué)機(jī)之前,應(yīng)先熟悉其的各個(gè)組成部分,及使用方法。實(shí)驗(yàn)步驟1關(guān)閉電源,將大板上的COM1 口與PC 機(jī)的串口相連;2接通電源,在PC 機(jī)上運(yùn)行PCEC.EXE
2、 文件,設(shè)置所用PC 機(jī)的串口為“1”, 其它的設(shè)置一般不用改動(dòng),直接回車即可;3置控制開關(guān)為00101(連續(xù)、內(nèi)存讀指令、組合邏輯、16 位、聯(lián)機(jī)),開關(guān)撥向上方表示“1”,撥向下方表示“0”;4按一下“RESET ”按鍵,再按一下“START ”按鍵,主機(jī)上顯示: TEC-2000 CRT MONITOR Version 2.0 April 2001 Computer Architectur Lab., Tsinghua University Programmed by He Jia > 5用R 命令查看寄存器內(nèi)容或修改寄存器的內(nèi)容1)在命令行提示符狀態(tài)下輸入:R ;顯示寄存器的內(nèi)容
3、注:寄存器的內(nèi)容在運(yùn)行程序或執(zhí)行命令后會(huì)發(fā)生變化。2)在命令行提示符狀態(tài)下輸入:R R0 ;修改寄存器R0 的內(nèi)容,被修改的寄存器與所賦值之間可以無空格,也可有一個(gè)或數(shù)個(gè)空格主機(jī)顯示: 寄存器原值:_ 在該提示符下輸入新的值0036 再用R 命令顯示寄存器內(nèi)容,則R0 的內(nèi)容變?yōu)?036 。6用D 命令顯示存儲(chǔ)器內(nèi)容在命令行提示符狀態(tài)下輸入:D 2000 會(huì)顯示從2000H 地址開始的連續(xù)128 個(gè)字的內(nèi)容;連續(xù)使用不帶參數(shù)的D 命令,起始地址會(huì)自動(dòng)加128 (即80H )。 7用E 命令修改存儲(chǔ)器內(nèi)容在命令行提示符狀態(tài)下輸入:E 2000 屏幕顯示: 2000 地址單元的原有內(nèi)容:光標(biāo)閃爍等
4、待輸入輸入 0000 依次改變地址單元20012005 的內(nèi)容為:1111 2222 3333 4444 5555 注意:用E 命令連續(xù)修改內(nèi)存單元的值時(shí),每修改完一個(gè),按一下空格鍵,系統(tǒng)會(huì)自動(dòng)給出下一個(gè)內(nèi)存單元的值,等待修改;按回車鍵則退出E 命令。用D 命令顯示這幾個(gè)單元的內(nèi)容D 2000 可以看到這六個(gè)地址單元的內(nèi)容變?yōu)?000 1111 2222 3333 4444 5555 。8.用A 命令鍵入一段匯編源程序,主要是向累加器送入數(shù)據(jù)和進(jìn)行運(yùn)算,執(zhí)行程序并觀察運(yùn)行結(jié)果。1)在命令行提示符狀態(tài)下輸入:A 2000 ;表示該程序從2000H (內(nèi)存RAM 區(qū)的起始地址)地址開始屏幕將顯示:
5、2000:輸入如下形式的程序:2000: MVRD R0,AAAA ;MVRD 與R0 之間有且只有一個(gè)空格,其他指令相同2002: MVRD R1,5555 2004: ADD R0,R1 2005: AND R0,R1 2006: RET ;程序的最后一個(gè)語句,必須為RET 指令2007: (直接敲回車鍵,結(jié)束A 命令輸入程序的操作過程)若輸入有誤,系統(tǒng)會(huì)給出提示并顯示出錯(cuò)地址,用戶只需在該地址重新輸入正確的指令即可。2)用U 命令反匯編剛輸入的程序在命令行提示符狀態(tài)下輸入:U 2000 在相應(yīng)的地址會(huì)得到輸入的指令及其操作碼注:連續(xù)使用不帶參數(shù)的U 命令時(shí),將接著從上一次反匯編的最后一條
6、語句之后繼續(xù)反匯編。3)用G 命令運(yùn)行前面剛鍵入源程序G 2000程序運(yùn)行結(jié)束后,可以看到程序的運(yùn)行結(jié)果,屏幕顯示各寄存器的值,其中R0 和R1 的值均為5555H ,說明程序運(yùn)行正確。4)用P 或T 命令,單步執(zhí)行這段程序,觀察指令執(zhí)行結(jié)果在命令行提示符狀態(tài)下輸入:T 2000 寄存器R0 被賦值為AAAAH T 寄存器R1 被賦值為5555H T 做加法運(yùn)算,和放在R0,R0 的值變?yōu)镕FFFH T 做與運(yùn)算,結(jié)果放在R0,R0 的值變?yōu)?555H 用P 命令執(zhí)行過程同上。注:T 總是執(zhí)行單條指令,但執(zhí)行P 命令時(shí),則把每一個(gè)CALL 語句連同被調(diào)用的子程序一次執(zhí)行完成。T、P 命令每次執(zhí)
7、行后均顯示所有通用寄存器及狀態(tài)寄存器的內(nèi)容,并反匯編出下一條將要執(zhí)行的指令。7舉例編寫匯編程序, 用“A”命令輸入,運(yùn)行并觀察結(jié)果1)例子1:設(shè)計(jì)一個(gè)小程序, 從鍵盤上接收一個(gè)字符并在屏幕上輸出顯示該字符。<1> 在命令行提示符狀態(tài)下輸入:A 2000 ; 屏幕將顯示:2000: 輸入如下形式的程序:2000: IN 81 ;判鍵盤上是否按了一個(gè)鍵2001:SHR R0 ;即串行口是否有了輸入的字符2002:SHR R0 2003:JRNC 2000 ;未輸入完則循環(huán)測試2004:IN 80 ;接收該字符2005: OUT 80 ;在屏幕上輸出顯示字符6 2006: RET ;每個(gè)
8、用戶程序都必須用RET 指令結(jié)束2007: ;(按回車鍵即結(jié)束輸入過程)注:在十六位機(jī)中,基本I/O 接口的地址是確定的,數(shù)據(jù)口的的值為80,狀態(tài)口的地址為81。<2> 用“G”命令運(yùn)行程序在命令行提示符狀態(tài)下輸入:G 2000執(zhí)行上面輸入的程序光標(biāo)閃爍等待輸入,用戶從鍵盤鍵入字符后,屏幕會(huì)顯示該字符。該例建立了一個(gè)從主存2000H 地址開始的小程序。在這種方式下, 所有的數(shù)字都約定使用16 進(jìn)制數(shù),故數(shù)字后不用跟字符H。每個(gè)用戶程序的最后一個(gè)語句一定為RET 匯編語句。因?yàn)楸O(jiān)控程序是選用類似子程序調(diào)用方式使實(shí)驗(yàn)者的程序投入運(yùn)行的, 用戶程序只有用RET 語句結(jié)束, 才能保證程序運(yùn)
9、行結(jié)束時(shí)能正確返回到監(jiān)控程序的斷點(diǎn), 保證監(jiān)控程序能繼續(xù)控制教學(xué)機(jī)的運(yùn)行過程。2)例2:設(shè)計(jì)一個(gè)小程序, 用次數(shù)控制在終端屏幕上輸出'0' 到'9' 十個(gè)數(shù)字符。<1> 在命令行提示符狀態(tài)下輸入:A 2020 屏幕將顯示:2020: 從地址2020H 開始輸入下列程序: 2020:MVRD R2,00OA ;送入輸出字符個(gè)數(shù)2022:MVRD R0,0030 ;“0”字符的ASCII 碼送寄存器R0 2024:OUT 80 ;輸出保存在R0 低位字節(jié)的字符2025:DEC R2 ;輸出字符個(gè)數(shù)減1 2026:JRZ 202E ;判10 個(gè)字符輸出完否
10、,已完,則轉(zhuǎn)到程序結(jié)束處2027:PUSH R0 ;未完,保存R0 的值到堆棧中2028:IN 81 ;查詢接口狀態(tài),判字符串行輸出完成否, 2029:SHR R0 ; 202A:JRNC 2028 ;未完成, 則循環(huán)等待202B:POP R0 ;已完成, 準(zhǔn)備輸出下一字符并從堆?;謴?fù)R0 的值202C:INC R0 ;得到下一個(gè)要輸出的字符202D:JR 2024 ;轉(zhuǎn)去輸出字符202E:RET 202F: 該程序的執(zhí)行碼放在2020H 起始的連續(xù)內(nèi)存區(qū)中。若送入源碼的過程中有錯(cuò), 系統(tǒng)會(huì)進(jìn)行提示, 等待重新輸入正確匯編語句。在輸入過程中, 在應(yīng)輸入語句的位置直接打回車則結(jié)束輸入過程。<
11、;2> 用“G”命令運(yùn)行程序在命令行提示符狀態(tài)下輸入:G 2020 執(zhí)行結(jié)果為:0123456789 思考題: 類似的, 若要求在終端屏幕上輸出'A' 到'Z' 共26 個(gè)英文字母,應(yīng)如何修改例1 中給出的程序? 請驗(yàn)證之。A 20202020:MVRD R2,001A ;送入輸出字符個(gè)數(shù)262022:MVRD R0,0041 ;“A”字符的ASCII 碼送寄存器R0 2024:OUT 80 ;輸出保存在R0 低位字節(jié)的字符2025:DEC R2 ;輸出字符個(gè)數(shù)減1 2026:JRZ 202E ;判26 個(gè)字符輸出完否,已完,則轉(zhuǎn)到程序結(jié)束處2027:PU
12、SH R0 ;未完,保存R0 的值到堆棧中2028:IN 81 ;查詢接口狀態(tài),判字符串行輸出完成否, 2029:SHR R0 ; 202A:JRNC 2028 ;未完成, 則循環(huán)等待202B:POP R0 ;已完成, 準(zhǔn)備輸出下一字符并從堆?;謴?fù)R0 的值202C:INC R0 ;得到下一個(gè)要輸出的字符202D:JR 2024 ;轉(zhuǎn)去輸出字符202E:RET 202F: 例子3: 從鍵盤上連續(xù)打入多個(gè)屬于0到9的數(shù)字符并在屏幕上顯示, 遇非數(shù)字符結(jié)束輸入過程。<1> 在命令行提示符狀態(tài)下輸入:A 2040屏幕將顯示:2040:從地址2040H 開始輸入下列程序: (2040)MV
13、RD R2, 0030 ; 用于判數(shù)字符的下界值MVRD R3, 0039 ;用于判數(shù)字符的上界值(2044) IN 81 ; 判鍵盤上是否按了一個(gè)鍵, SHR R0 ; 即串行口是否有了輸入的字符SHR R0JRNC 2044 ; 沒有輸入則循環(huán)測試IN 80 ; 輸入字符到R0 MVRD R1,00FFAND R0,R1 ;清零R0 的高位字節(jié)內(nèi)容CMP R0, R2 ; 判輸入字符字符'0' 否JRNC 2053 ; 為否, 則轉(zhuǎn)到程序結(jié)束處CMP R3, R0 ; 判輸入字符字符'9' 否JRNC 2053 ; 為否, 則轉(zhuǎn)到程序結(jié)束處OUT 80 ;
14、輸出剛輸入的數(shù)字符JMPA 2044 ; 轉(zhuǎn)去程序前邊2044 處等待輸入下一個(gè)字符 (2053) RET<2> 在命令行提示符狀態(tài)下輸入:G 2040 光標(biāo)閃爍等待鍵盤輸入,若輸入0-9 十個(gè)數(shù)字符,則在屏幕上回顯;若輸入非數(shù)字符,則屏幕不再顯示該字符,出現(xiàn)命令提示符,等待新命令。思考題, 本程序中為什么不必判別串行口輸出完成否? 設(shè)計(jì)打入'A''Z'和'0''9' 的程序, 遇其它字符結(jié)束輸入過程。A 2040(2040)MVRD R2, 0041 ; 用于判字母符的下界值MVRD R3, 005A ;用于判字母符
15、的上界值MVRD R4,0030;用于判數(shù)字符的下界值MVRD R5,0039;用于判數(shù)字符的下界值MVRD R6, 0061 ; 用于判字母符的下界值MVRD R7, 007A ;用于判字母符的上界值(204C) IN 81 ; 判鍵盤上是否按了一個(gè)鍵, SHR R0 ; 即串行口是否有了輸入的字符SHR R0JRNC 204C ; 沒有輸入則循環(huán)測試IN 80 ; 輸入字符到R0 MVRD R1,00FFAND R0,R1 ;清零R0 的高位字節(jié)內(nèi)容(2054)CMP R0, R2 ; 判輸入字符字符'A' 否JRNC 205A ; 為否, 則轉(zhuǎn)到程序結(jié)束處CMP R3, R0 ; 判輸入字符'Z'字符 否JRNC 205A ; 為否, 則轉(zhuǎn)到程序結(jié)束處JMPA 2064(205A)CMP R0, R6 ; 判輸入字符字符'A' 否JRNC 2060 ; 為否, 則轉(zhuǎn)到程序結(jié)束處CMP R7, R0 ; 判輸入字符'Z'字符 否JRNC 2060 ; 為否, 則轉(zhuǎn)到程序結(jié)束處JMPA 2064(2060)CMP R0, R4 ; 判輸入字符字符'0' 否JRNC 2067 ; 為否, 則轉(zhuǎn)到程序結(jié)束處CMP R5, R0 ; 判輸入字符字符'9' 否JRNC 2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)生您的企業(yè)想法
- 四川省成都市武侯區(qū)西川中學(xué)2024-2025學(xué)年九年級下學(xué)期3月月考數(shù)學(xué)試卷(含答案)
- 綠色建筑認(rèn)證體系在綠色建筑節(jié)能改造中的應(yīng)用與案例分析報(bào)告
- 公安特勤合同樣本
- 聚焦市場:2025年醫(yī)療器械國產(chǎn)化替代政策下的市場拓展策略報(bào)告
- 安徽省合肥市重點(diǎn)中學(xué)2025屆高考沖刺模擬英語試題含解析
- 2025屆湖北省武漢市新洲一中陽邏校區(qū)高三第四次模擬考試英語試卷含解析
- 2025屆江西省宜春市樟樹中學(xué)高考臨考沖刺英語試卷含解析
- 2025屆遼寧省葫蘆島市興城高級中學(xué)高三最后一卷英語試卷含答案
- 業(yè)務(wù)人員手冊
- 猩紅熱課件完整版本
- 肌肉骨骼康復(fù)學(xué)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 農(nóng)業(yè)保險(xiǎn)理賠服務(wù)操作流程手冊
- 《交換與路由技術(shù)》 課件全套 曹炯清 第1-9部分 學(xué)習(xí)環(huán)境的搭建- 綜合實(shí)訓(xùn)與技能比賽
- 第30屆WMO初測2年級B試卷
- 2024《整治形式主義為基層減負(fù)若干規(guī)定》全文課件
- 反訴狀(業(yè)主反訴物業(yè))(供參考)
- 10SMS202-2 埋地矩形雨水管道及其附屬構(gòu)筑物(磚、石砌體)
- 《教育向美而生-》讀書分享課件
- 網(wǎng)課智慧樹知道《老年醫(yī)學(xué)概論(浙江大學(xué))》章節(jié)測試答案
- 中國法律史-第三次平時(shí)作業(yè)-國開-參考資料
評論
0/150
提交評論