資源描述:
《22-盧曉軍(計算機組成原理實驗二)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、實驗二基礎(chǔ)匯編語言程序設(shè)計一、實驗?zāi)康模?.學(xué)習(xí)和了解TEC-2000十六位機監(jiān)控命令的用法:2.學(xué);M和了解TEC-2000十六位機的指令系統(tǒng);3.學(xué)習(xí)簡單的TEC-2000十六位機匯編程序設(shè)計;二、實驗內(nèi)容:1.使用監(jiān)控程序的R命令顯示/修改寄存器內(nèi)容、D命令顯示存儲器內(nèi)容、E命令修改存儲器內(nèi)容;2.使用A命令寫一小段匯編程序,U命令反匯編剛輸入的程序,用G命令連續(xù)運行該程序,用T命令單步運行并觀察程序單步執(zhí)行情況;三實驗要求^用該教學(xué)機之前,應(yīng)先熟悉其的各個組成部分,及使用方法。四、十六位教學(xué)機的匯編語言程序設(shè)計舉例【例1】設(shè)計一個小程序,在屏幕
2、上輸出顯示字符‘6’A2000R0,0036802000:MVRD2002:OUT2003:RET2004:地址從16進制2000(內(nèi)存RAM區(qū)的起始地址)開始把字符‘6’的ASCII碼送入R0在屏幕上輸出城示字符‘6’,80為中行接口地址每個川戶程序都必須川RET指令結(jié)束(按回車鍵即結(jié)朿輸入過程)這就建立了一個從主存2000h地址幵始的小程序。在這種方式下,所有的數(shù)字都約定使用16進制數(shù),故數(shù)字后不用跟字符h,每個用戶程序的最后一個語句一定為RET匯編語句。因為監(jiān)控程序是選用類似子程序調(diào)用方式使實驗者的程序投入運行的,用戶程序只冇用RKT語句結(jié)朿,才能
3、保證程序運行結(jié)朿時能正確返回到監(jiān)控程序的斷點,保證監(jiān)控程序能繼續(xù)控制教學(xué)機的運行過程?!鲞筪郵⑽t縛Z83:ret>r,ll:irnMZ4884R3=HFBSF:Z7的FO2000l:ren?18:8的0Kll=mr的的R13=rrFFR14^B0eR15=BFFF肋的明36HURD8636>1ivirni3:misf=27明fc=2明2mvttttki2:mmM3=rrnhi仁ris=bfffOUT明明R7=FFFF肋=812B的01明的B7=rrrrR8=ei20F二明01明11i7=rrrrr^niMii2020MVRDR2,000AMVRDR0,
4、0030OUT80DECR2JRZ202EPUSHR02028IN81silkR0JRNC2028【例2】設(shè)計一個小程序,用次數(shù)控制在終端屏幕上輸出’0’至lj’9’十個數(shù)字符A2020送入輸出字符個數(shù)“0”字符的ASCII碼送寄存器K0輸出保存在R0低位字節(jié)的字符輸出字符個數(shù)減1判10個字符輸出完否,已完,則轉(zhuǎn)到程序結(jié)朿處未完,保存肋的值到堆棧中查詢接U狀態(tài),判字符串行輸出完成否,未完成,則循環(huán)等待POPKO;已完成,準(zhǔn)備輸出下一字符并從堆棧恢ffKO的值INCR0;得到F—個要輸出的字符JR2024:轉(zhuǎn)去輸出字符202ERET這個程序只使用基本匯編語
5、句。理解屮的一個難點,是程序當(dāng)屮判串行n是否完成一個字符的輸出過程并循環(huán)等待的三個匯編語句。具體解釋見有關(guān)辦行接口講解部分的內(nèi)容。該程序的執(zhí)行碼放在2020起始的連續(xù)內(nèi)存區(qū)中。若送入源碼的過程中冇錯,系統(tǒng)會進行提示,等待重新打入正確匯編語句。在輸入過程中,在應(yīng)打入語句的位置直接打回車則結(jié)朿輸入過程。接下來可用G2020命令運行該程序。思考題:若耍求在終端屏幕上輸出‘A’到‘Z’共26個英文字母,應(yīng)如何修改例1中給出的程序?詰驗證之。將第五行實驗代碼改為“JRZ210E”08E8B4EKM5678S>com.icMterAr
6、clUtegt鶬m【例3]從鍵盤上連續(xù)打入多個誠于’0’到’9’的數(shù)字符并在屏幕上顯示,A20402040MVRDR2,0030川子判數(shù)字符的下界值MVRDR3,003A用于判數(shù)字符的上界值2044TN81判鍵盤上是否按了一個鍵,SHRR0即串行U是否宥了輸入的字符SHRR0JRNC2044沒冇輸入則循環(huán)測試IN80輸入字符到R0MVRDKl,OOFFANDR0,R1淸零R0的髙位字節(jié)內(nèi)容CMPR0,R2判輸入字符會字符’0’否JRNC2053為否,則轉(zhuǎn)到程序結(jié)束處CMPR0,R3判輸入字符<字符’g’否JRC2053為否,則轉(zhuǎn)到程序結(jié)束處OUT80輸出
7、剛輸入的數(shù)字符JMPA2044轉(zhuǎn)去程序前邊2044處等待輸入卜'一個字符2053RET程,思考題:木程序屮為何不必判斷串行門輸出完成否?設(shè)計打入‘A’?‘Z’和‘0’?‘9’的程序,遇-Jt?它字符結(jié)束輸入過程。>II2MSi789?coMMnd!X123456此DOVDcommndf52M8IOC67W>>92M!OWS>【例4】計算1到10的累加和。A20602060MVRDMVRDMVRDRl,R2,R3,0000000A0000:置累加和的初值為0:Jft大的加數(shù)2066INCR3;得到下一個參加累加的數(shù)ADDRl,R3:累加計算C.VIPR3,
8、R2;判是否累加完JRNZRET2066;未完,開始F—輪累加運行過后,可以用K