微機原理實驗之_分支程序、循環(huán)程序設計_第1頁
微機原理實驗之_分支程序、循環(huán)程序設計_第2頁
微機原理實驗之_分支程序、循環(huán)程序設計_第3頁
微機原理實驗之_分支程序、循環(huán)程序設計_第4頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、實驗三 分支程序、循環(huán)程序設計實驗一、實驗目的1. 掌握分支程序的結構。2. 掌握分支程序的設計、調(diào)試方法。3. 加深對循環(huán)結構的理解。4. 掌握循環(huán)結構程序設計的方法以及調(diào)試方法。二、實驗設備PC 機一臺, TD-PITE 實驗裝置一套。三、實驗內(nèi)容:設計一數(shù)據(jù)塊間的搬移程序。設計思想: 程序要求把內(nèi)存中一數(shù)據(jù)區(qū)(稱為源數(shù)據(jù)塊) 傳送 到另一存儲區(qū)(稱為目的數(shù)據(jù)塊) 。源數(shù)據(jù)塊和目的數(shù)據(jù)塊在存儲中可能有三種情況,如圖1 所示。圖 3-1 源數(shù)據(jù)塊與目的數(shù)據(jù)塊在存儲中的位置情況對于兩個數(shù)據(jù)塊分離的情況,如圖3-1 (a),數(shù)據(jù)的傳送從數(shù)據(jù)塊的首地址開始,或從數(shù)據(jù)塊的末地址開始均可。但是對于有重

2、疊的情況,則要加以分析,否則重疊部分會因“搬移而遭到破壞,可有如下結論:當源數(shù)據(jù)塊首地址v目的塊首地址時,從數(shù)據(jù)塊末地址開始傳送數(shù)據(jù),如圖3-1 (b)所示。當源數(shù)據(jù)塊首地址目的塊首地址時,從數(shù)據(jù)塊首地址開始傳送數(shù)據(jù),如圖3-1 (c)所示。參考流程:如圖 3-2 所示。圖 3-2 程序流程圖實驗程序STACKSEGMENT STACKDW 64 DUP(?)STACKENDSCODESEGMENTASSUME CS:CODESTART:MOV CX, 0010HMOV SI, 3100HMOV DI, 3200HCMP SI, DIJA A2ADD SI, CXADD DI, CXDEC S

3、IDEC DIA1:MOV AL, SI MOV DI, AL DEC SIDEC DIDEC CX JNE A1JMP A3A2:MOV AL, SI MOV DI, AL INC SIINC DIDEC CXJNE A2A3: JMP A3CODE ENDSEND START實驗步驟1. 按流程圖編寫實驗程序,經(jīng)編譯、鏈接無誤后裝入系統(tǒng);2. 用E命令在以SI為起始地址的單元中填入16個數(shù);3. 運行程序,然后再停止運行;4. 通過 D 命令查看 DI 為起始地址的單元中的數(shù)據(jù)是否與 SI 單元中數(shù)據(jù)相同;5. 通過改變 SI、DI 的值,觀察在三種不同的數(shù)據(jù)塊情況下程序的運行情況,并驗證

4、程序的 功能。2.計算 S= 1 + 2X3 + 3M + 4X5 + N(N + 1),直到 N(N + 1)項大于 200 為止。 編寫實驗程序,計算上式的結果,參考流程圖如圖 3-3 所示。圖 3-3 程序流程圖 實驗程序 STACK SEGMENT STACKDW 64 DUP(?) STACK ENDSCODE SEGMENT ASSUME CS:CODE; 結果存于 DX 中START: MOV DX,0001H MOV BL,02H A1: MOV AL,BL INC BL MUL BL ADD DX,AXCMP AX,00C8H;判斷 N(N+1) 與 200 的大小JNA A

5、1A2: JMP A2CODE ENDSEND START實驗步驟(1) 編寫實驗程序,編譯、鏈接無誤后裝入系統(tǒng);(2) 運行程序,然后再停止程序運行;( 3)運算結果存儲在寄存器 DX 中,查看結果是否正確;(4)可以改變N ( N + 1)的條件來驗證程序功能是否正確,但要注意,結果若大于FFFFH將產(chǎn)生數(shù)據(jù)溢出。2. 求某數(shù)據(jù)區(qū)內(nèi)負數(shù)的個數(shù) 設數(shù)據(jù)區(qū)的第一單元存放區(qū)內(nèi)單元數(shù)據(jù)的個數(shù), 從第二單元開始存放數(shù)據(jù), 在區(qū)內(nèi)最后一個 單元存放結果。 為統(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ù)。 實驗

6、程序流程圖如圖 3-4 所示。圖 3-4 程序流程圖實驗程序STACKSEGMENT STACKDW 64 DUP(?)STACKENDSCODESEGMENTASSUME CS:CODESTART:MOV DI, 3000H;數(shù)據(jù)區(qū)首地址MOV CL, DI;取數(shù)據(jù)個數(shù)XOR CH, CHMOV BL, CHINC DI;指向第一個數(shù)據(jù)A1:MOV AL, DITEST AL, 80H;檢查數(shù)據(jù)首位是否為JE A2INC BL;負數(shù)個數(shù)加 1A2:INC DILOOP A1MOV DI, BL;保存結果A3:JMP A3CODEENDSEND START1實驗步驟(1)按實驗流程編寫實驗程序;(2)編譯、鏈接無誤后裝入系統(tǒng);(3)鍵入 E3000 ,輸入數(shù)據(jù)如下:3000 = 06 (數(shù)據(jù)個數(shù))3001=123002=883003

溫馨提示

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

評論

0/150

提交評論