22-盧曉軍(計(jì)算機(jī)組成原理實(shí)驗(yàn)二)_第1頁
22-盧曉軍(計(jì)算機(jī)組成原理實(shí)驗(yàn)二)_第2頁
22-盧曉軍(計(jì)算機(jī)組成原理實(shí)驗(yàn)二)_第3頁
22-盧曉軍(計(jì)算機(jī)組成原理實(shí)驗(yàn)二)_第4頁
22-盧曉軍(計(jì)算機(jī)組成原理實(shí)驗(yàn)二)_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)二基礎(chǔ)匯編語言程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康模?. 學(xué)習(xí)和了解tec-2000十六位機(jī)監(jiān)控命令的用法:2. 學(xué);m和了解tec-2000十六位機(jī)的指令系統(tǒng);3. 學(xué)習(xí)簡(jiǎn)單的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è)組成部分,及使用方法。四、十六位教學(xué)機(jī)的匯編語言程序設(shè)計(jì)舉例【例1】設(shè)計(jì)一個(gè)小程序,在屏幕上輸出顯示字符6 a 2000r

2、0, 0036 802000: mvrd 2002: out 2003: ret 2004:地址從16進(jìn)制2000 (內(nèi)存ram區(qū)的起始地址)開始把字符6的ascii碼送入r0在屏幕上輸出城示字符6,80為中行接口地址每個(gè)川戶程序都必須川ret指令結(jié)束(按回車鍵即結(jié)朿輸入過程)這就建立了一個(gè)從主存2000h地址幵始的小程序。在這種方式下,所有的數(shù)字都約定使用16進(jìn)制數(shù), 故數(shù)字后不用跟字符h,每個(gè)用戶程序的最后一個(gè)語句一定為ret匯編語句。因?yàn)楸O(jiān)控程序是選用類似子 程序調(diào)用方式使實(shí)驗(yàn)者的程序投入運(yùn)行的,用戶程序只冇用rkt語句結(jié)朿,才能保證程序運(yùn)行結(jié)朿時(shí)能正 確返回到監(jiān)控程序的斷點(diǎn),保證監(jiān)控程

3、序能繼續(xù)控制教學(xué)機(jī)的運(yùn)行過程。吖d郵t縛z83: ret>r,ll:irn mz4884 r3=hfb sf:z7的 fo2000 l:ren »18:8的0 kll=mr 的的 r13=rrff r14b0e r15=bfff肋的明36 hurd8636>1ivirni3:mi sf=27明 fc=2明2mvtttt ki2:mm m3=rrn hi仁ris=bfffout 明明r7=ffff 肋=812b 的01明的b7=rrrr r8=ei20f二明01明11i7=rrrrrnimii2020mvrdr2, 000amvrdr0, 0030out80decr2jrz

4、202epushr02028in81silkr0jrnc2028【例2】設(shè)計(jì)一個(gè)小程序,用次數(shù)控制在終端屏幕上輸出 0至lj 9十個(gè)數(shù)字符 a 2020送入輸出字符個(gè)數(shù) “0”字符的ascii碼送寄存器k0 輸出保存在r0低位字節(jié)的字符 輸出字符個(gè)數(shù)減1判10個(gè)字符輸出完否,已完,則轉(zhuǎn)到程序結(jié)朿處 未完,保存肋的值到堆棧中 查詢接u狀態(tài),判字符串行輸出完成否,未完成,則循環(huán)等待popko;已完成,準(zhǔn)備輸出下一字符并從堆?;謋f ko的值incr0;得到f個(gè)要輸出的字符jr2024:轉(zhuǎn)去輸出字符202e ret這個(gè)程序只使用基本匯編語句。理解屮的一個(gè)難點(diǎn),是程序當(dāng)屮判串行n是否完成一個(gè)字符的輸出

5、過 程并循環(huán)等待的三個(gè)匯編語句。具體解釋見有關(guān)辦行接口講解部分的內(nèi)容。該程序的執(zhí)行碼放在2020起始的連續(xù)內(nèi)存區(qū)中。若送入源碼的過程中冇錯(cuò),系統(tǒng)會(huì)進(jìn)行提示,等待重 新打入正確匯編語句。在輸入過程中,在應(yīng)打入語句的位置直接打回車則結(jié)朿輸入過程。接下來可用g 2020命令運(yùn)行該程序。思考題:若耍求在終端屏幕上輸出a到z共26個(gè)英文字母,應(yīng)如何修改例1中給出的程序?詰 驗(yàn)證之。將第五行實(shí)驗(yàn)代碼改為“jrz 210e”08 e8b4ekm5678s>com.ic<uoi for 1k ,by co>mter arclutegt鶬m【例3從鍵盤上連續(xù)打入多個(gè)誠于 0到 9的數(shù)字符并在屏

6、幕上顯示,a 20402040mvrdr2, 0030川子判數(shù)字符的下界值mvrdr3, 003a用于判數(shù)字符的上界值2044tn81判鍵盤上是否按了一個(gè)鍵,shrr0即串行u是否宥了輸入的字符shrr0jrnc2044沒冇輸入則循環(huán)測(cè)試in80輸入字符到r0mvrdkl, ooffandr0, r1淸零r0的髙位字節(jié)內(nèi)容cmpr0, r2判輸入字符會(huì)字符 0否jrnc2053為否,則轉(zhuǎn)到程序結(jié)束處cmpr0, r3判輸入字符字符 g否jrc2053為否,則轉(zhuǎn)到程序結(jié)束處out80輸出剛輸入的數(shù)字符jmpa2044轉(zhuǎn)去程序前邊2044處等待輸入卜'一個(gè)字符2053ret程,思考題:木程

7、序屮為何不必判斷串行門輸出完成否?設(shè)計(jì)打入az和09的程序, 遇-jt它字符結(jié)束輸入過程。>ii2msi789«commnd!x123456此 dovd commndf5 2m8ioc67w>>9 2m!ows>【例4】計(jì)算1到10的累加和。 a 20602060mvrdmvrdmvrdrl,r2,r3,0000000a0000:置累加和的初值為0 :jft大的加數(shù)2066incr3;得到下一個(gè)參加累加的數(shù)addrl,r3:累加計(jì)算c.vipr3,r2;判是否累加完jrnzret2066;未完,開始f輪累加運(yùn)行過后,可以用k命令看中的累加結(jié)果。r7=ffff

8、肋項(xiàng) 128r:8061 m:8801 f)2:0的a r3:的02 sp=2781 »=rerr iwsmm rii=ffff riz邛的0 ri3=ffff 267: 8813 add rl, r3 >| 2668>rpc:2067rm-26bdr6:的相r15=bfffr7=ffff r8=0120 f=0的0的11mk1 rl:的3? r2:000a>=nn rieeeee iii:rrrr268:的 18 0880 nurd>13相ft sp=2781 r12=mbb r13=ffffm. 的的po2060r11=2612r6=8m0r15=bfff

9、r7=ffff r8=0120|u=hff «2=mw b13=rrff bm=260d r15=bfrf j 肪22866k2=m0a r3=的01 sp=2781 pc=2066 r6=8040=ffff b12=8b00 r13=ffff rh=260d b15=bfff r3®y co«hter arcbitcctwc lab.94【例5】設(shè)計(jì)一個(gè)有讀寫內(nèi)存和子程序調(diào)用指令的程序,功能是讀出rt存屮的字符,將3x顯示到顯示 器的屏幕上,轉(zhuǎn)換為小寫字母后再寫回存儲(chǔ)器原存儲(chǔ)區(qū)域。e 20f0 (送入將被顯示的6個(gè)字符a,f到內(nèi)存20f0開始的存儲(chǔ)區(qū)域中)004

10、1 0042 0043 0044 0045 0046a 20802080mvrdmvrdr3, 0006r2, 20f0指定被讀數(shù)據(jù)的個(gè)數(shù) 指定被讀,寫數(shù)據(jù)內(nèi)存區(qū)首地址20841邏r0, r2讀內(nèi)存中的一個(gè)字符到k0寄存器cala2100調(diào)用于程序,完成顯示。轉(zhuǎn)換并寫回的功能decr3檢斉輸出的字符個(gè)數(shù)jrz208b完成輸出則結(jié)束程序的執(zhí)行過程tncr2未完成,修改內(nèi)存地址jr2084轉(zhuǎn)移到程序的2086處,循環(huán)執(zhí)行規(guī)定的處理208breta 2100:輸入用到的于程序到內(nèi)存2100開始的存儲(chǔ)區(qū)2100out80輸出保存在r0寄存器中的字符mvrdrl, 0020addr0, r1:將保存在r

11、0中的大寫字母轉(zhuǎn)換為小寫字母strrr2, r0;寫r0屮的字符到存,地址同lod所用的地址2105in81測(cè)試串行接n是否完成輸出過程shrr0jrnc2105未完成輸出過程則循環(huán)測(cè)試ret結(jié)朿子程序執(zhí)行過程,返m主程序運(yùn)行過程屮,可以直接看到屏幕上顯示的a容,運(yùn)行過后,再用d 20f0命令看內(nèi)存的20f0區(qū)域屮保 存的運(yùn)行結(jié)果:0061 0062 0063 0064 0065 0066i8:bmz 0000側(cè)3 nn測(cè)利咖0:供5006300640065的的ffffcbfe0820刪18320的的ffffeeeeeenrrrrmeeeeeffffbbbb醐ffff明48ffffeeeebb

12、bbffffmmeweffffbbeammffff明m«®«b ffff 肋bbmm ffff eeea ®«00 ffef eeeemb8 ffff 擁的0066mb0ffff6側(cè)7f9f7100ezbibbbb45fdffffeeeefef7ffff0028ffffffff0888fffftin6bb2fff7ff?fm2bfeffmi8的8f?f?ffff的的ffffffffmnfffdffffezeeffffffff的bifff?ffff刪4ffffffff的的ffff必fa#k#c«d»6«> *d 人(i,上述5個(gè)例子,都是用監(jiān)控程序的a命令完成輸入源匯編程序的。在涉及到匯編語句標(biāo)號(hào)的地方,不 能用符號(hào)表示,只能在指令屮使用絕對(duì)地址.使用p、j存屮的數(shù)據(jù),也由程序員給出數(shù)據(jù)在p、j存屮的絕對(duì)地 址。顯而場(chǎng)見,對(duì)這樣的極短小程序矛盾并不突岀,但很容場(chǎng)想到,對(duì)很大的程序,一定會(huì)冇較大的困難。在用a命令輸入?yún)R編源語句的過程中,有一定用機(jī)經(jīng)驗(yàn)的人,常常抱怨a命令中未提供適當(dāng)?shù)木庉嫻?能,這并不是設(shè)計(jì)者的疏漏,因?yàn)槲覀儾⒉粶?zhǔn)備在這種操作方式下支持設(shè)計(jì)較長(zhǎng)的程序,這種工作應(yīng)轉(zhuǎn)到 提供了交叉匯編程序的pc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論