分支及循環(huán)程序設計實驗_第1頁
分支及循環(huán)程序設計實驗_第2頁
分支及循環(huán)程序設計實驗_第3頁
分支及循環(huán)程序設計實驗_第4頁
分支及循環(huán)程序設計實驗_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、深 圳 大 學 實 驗 報 告 課程名稱: 微機原理技術(shù) 實驗項目名稱: 分支及循環(huán)程序設計實驗 學院: 信息工程學院 專業(yè): 電子信息工程 指導教師: 代明軍 報告人: 吳曉欣 學號: 2013800464 班級: 電子4班 實驗時間: 2015年 實驗報告提交時間: 2015年6月24日 教務部制一 實驗目的與要求:1. 掌握分支程序的結(jié)構(gòu)。 2. 掌握分支程序的設計、調(diào)試方法。 3. 加深對循環(huán)結(jié)構(gòu)的理解。 4. 掌握循環(huán)結(jié)構(gòu)程序設計的方法以及調(diào)試方法。二、實驗設備 PC機一臺,TD-PITE實驗裝置或TD-

2、PITC實驗裝置一套。三、  實驗內(nèi)容 (1)設計一數(shù)據(jù)塊間的搬移程序。設計思想:程序要求把內(nèi)存中一數(shù)據(jù)區(qū)(稱為源數(shù)據(jù)塊)傳送到另一存儲區(qū)(成為目的數(shù)據(jù)塊)。源數(shù)據(jù)塊和目的數(shù)據(jù)塊在存儲中可能有三種情況,如圖所示。 對于兩個數(shù)據(jù)塊分離的情況,如圖2.14(a),數(shù)據(jù)的傳送從數(shù)據(jù)塊的首地址開始,或從數(shù)據(jù)塊的末地址開始均可。但是對于有重疊的情況,則要加以分析,否則重疊部分會因“搬移”而遭到破壞,可有如下結(jié)論: 當源數(shù)據(jù)塊首地址目的塊首地址時,從數(shù)據(jù)塊末地址開始傳送數(shù)據(jù),如圖2.14(b)所示。 當源數(shù)據(jù)塊首地址目的塊首地址時,從數(shù)據(jù)塊首地址

3、開始傳送數(shù)據(jù),如圖2.14(c)所示實驗代碼及解析:SSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV CX, 0010H /定義CX(搬移字節(jié)數(shù))的值為16MOV SI, 3100H/定義源數(shù)據(jù)首地址為SI,值為3100HMOV DI, 3200H/定義目的數(shù)據(jù)首地址為DI,值為3200HCMP SI,DI/比較,將SI值3100H與DI值3200H相減JA A2/若SI>DI,跳轉(zhuǎn)至A2子程序,若否,繼續(xù)執(zhí)行ADD SI,CX/將CX的值與SI相加,結(jié)果存于SI中ADD DI,CXDE

4、C SI/SI值減1,得到數(shù)據(jù)塊末位地址DEC DIA1:MOV AL, SIMOV DI,AL/將SI地址的值賦給DIDEC SI/指向上一個地址DEC DIDEC CXJNE A1/判斷,若結(jié)果不為0則轉(zhuǎn)移至A1循環(huán)JMP A3/若結(jié)果為0,跳轉(zhuǎn)至A3A2:MOV AL,SI MOV DI,AL/將SI地址的值賦給DI INC SI/指向下一個地址 INC DI DEC CX JNE A2/判斷,若結(jié)果不為0,則繼續(xù)循環(huán)A2A3:JMP A3CODEENDSEND START注意:本實驗由于已設定DI>SI,所以運行時不會執(zhí)行A2,可以設定SI、DI的值使SI>DI,則為從數(shù)據(jù)

5、塊首位搬移的情況。 實驗步驟 1. 按流程圖編寫實驗程序,經(jīng)編譯、鏈接無誤后裝入系統(tǒng)。 2. 用E命令在以SI為起始地址的單元中填入16個數(shù)。 3. 運行程序,待程序運行停止。 4. 通過D命令查看DI為起始地址的單元中的數(shù)據(jù)是否與SI單元中數(shù)據(jù)相同。 5. 改變SI、DI的值,觀察在三種不同的數(shù)據(jù)塊情況下程序的運行情況,并驗證程序的功能。  (2).  計算S12×33×44×5N(N1),直到N(N1)項大于20

6、0為止。 編寫實驗程序,計算上式的結(jié)果,參考流程圖如圖2.16所示。  實驗代碼: SSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV DX, 0001H MOV BL,02HA1:MOV AL, BL INC BLMUL BL /BL與AL的值相乘,存于AXADD DX,AX /結(jié)果存于DXCMP AX,00C8H/比較N(N+1)與200的大小JNA A1 /若上面相減結(jié)果<=200,A1循環(huán)A2:JMP A2CODE ENDSEND START實驗步驟&

7、#160;(1) 編寫實驗程序,編譯、鏈接無誤后裝入系統(tǒng)。               (2)運行程序,待程序運行停止。                           

8、60;  (3)運算結(jié)果存儲在寄存器DX中,查看結(jié)果是否正確。 (4)改變N(N1)的值為300,即改上面A1程序中的CMP AX,00C8H 為CMP AX,012CH來驗證程序功能是否正確。  (3)求某數(shù)據(jù)區(qū)內(nèi)負數(shù)的個數(shù) 設數(shù)據(jù)區(qū)的第一單元存放區(qū)內(nèi)單元數(shù)據(jù)的個數(shù),從第二單元開始存放數(shù)據(jù),在區(qū)內(nèi)最后一個單元存放結(jié)果。為統(tǒng)計數(shù)據(jù)區(qū)內(nèi)負數(shù)的個數(shù),需要逐個判斷區(qū)內(nèi)的每一個數(shù)據(jù),然后將所有數(shù)據(jù)中凡是符號位為1的數(shù)據(jù)的個數(shù)累加起來,即得到區(qū)內(nèi)所包含負數(shù)的個數(shù)。 實驗程序流程圖如圖2.17所示。 SSTACKSEGMENT

9、 STACKDW 64 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV DI,3000H /數(shù)據(jù)區(qū)首地址定為3000HMOV CL, DI/CL指向數(shù)據(jù)區(qū)首地址,存數(shù)據(jù)個數(shù)XOR CH,CH /將CH清零MOV BL,CH/將BL清零INC DI/指向下一位,即第一個存放數(shù)據(jù)的地址A1:MOV AL, DI TEST AL,80H /檢測數(shù)據(jù)首位是否為1 JE A2/若首位為0則轉(zhuǎn)移至A2 INC BL /若首位為1,即為負數(shù),BL加1A2:INC DI/正數(shù),BL不加1,直接指向下一個地址 LOOP A1 MOV DI,BL A3:JMP

10、 A3CODEENDSEND START 實驗步驟 (1)按實驗流程編寫實驗程序。 (2)編譯、鏈接無誤后裝入系統(tǒng)。 (3)鍵入E3000,輸入數(shù)據(jù)如下:     300006   (數(shù)據(jù)個數(shù))  300188       300284      300382  300490    300599 &

11、#160;  300697                                            (4)先運行程序,待程序運行停止。 (5)查看3007內(nèi)存單元或寄存器BL中的內(nèi)容,結(jié)果應為06。 (6)可以進行反復測試來驗證程序的正確性。四、實驗數(shù)據(jù)記錄(1)數(shù)據(jù)間搬移(

溫馨提示

  • 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

提交評論