實(shí)驗(yàn)五順序、分支結(jié)構(gòu)程序設(shè)計(jì).ppt_第1頁
實(shí)驗(yàn)五順序、分支結(jié)構(gòu)程序設(shè)計(jì).ppt_第2頁
實(shí)驗(yàn)五順序、分支結(jié)構(gòu)程序設(shè)計(jì).ppt_第3頁
實(shí)驗(yàn)五順序、分支結(jié)構(gòu)程序設(shè)計(jì).ppt_第4頁
實(shí)驗(yàn)五順序、分支結(jié)構(gòu)程序設(shè)計(jì).ppt_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

實(shí)驗(yàn)五 順序、分支結(jié)構(gòu)程序設(shè)計(jì),實(shí)驗(yàn)?zāi)康?1掌握順序、分支結(jié)構(gòu)程序設(shè)計(jì)的基本方法。_ 2掌握無條件轉(zhuǎn)移指令和條件轉(zhuǎn)移指令的使用。_ 3熟悉匯編語言程序設(shè)計(jì)的基本結(jié)構(gòu)和常用指令的使用。_ 4進(jìn)一步熟悉匯編語言的上機(jī)過程和DEBUG_的使用。 實(shí)驗(yàn)學(xué)時(shí) 2 學(xué)時(shí) 實(shí)驗(yàn)器材 PC 微機(jī)及軟件。 實(shí)驗(yàn)原理 1順序結(jié)構(gòu) 順序結(jié)構(gòu)的程序,指令逐條依次被執(zhí)行,指令指針 IP內(nèi)容為線性增加。實(shí)現(xiàn)這種結(jié)構(gòu)的指令有傳送類、運(yùn)算類和位移類。因此,順序結(jié)構(gòu)的程序只能完成簡單的功能,例如,計(jì)算表達(dá)式的值、順序查表等。,2分支結(jié)構(gòu) 程序中出現(xiàn)二中選一的分支稱為二路分支,三中選一的分支稱為三路分支,還有四中選一,N 中選一稱為多路分支。實(shí)現(xiàn)分支的要素有兩點(diǎn): (1)使用能影響狀態(tài)標(biāo)志的指令,如算術(shù)邏輯運(yùn)算類指令、移位指令和位測試指令等,將狀態(tài)標(biāo)志設(shè)置為能正確反映條件成立與否的狀態(tài)。 (2)使用條件轉(zhuǎn)移類指令對狀態(tài)位進(jìn)行測試判斷,確定程序如何轉(zhuǎn)移,形成分支。 實(shí)驗(yàn)內(nèi)容與步驟 1 已知字節(jié)變量 X,Y 存放于 VARX,VARY 存儲(chǔ)單元中, 利用公式求 Z的值,并將結(jié)果存放于 RESULT 存儲(chǔ)單元中。公式:Z=(X+Y)*8-X)/2 。 參考程序如下:(程序名:SY5-1.ASM) data SEGMENT varx DW 0006h vary DW 0007h result DW ? data ENDS code SEGMENT ASSUME CS:code,DS:data start: MOV AX,data MOV DS,AX,MOV AX,varx ; AX - X ADD AX,vary ; AX - X+Y MOV CL,3 SAL AX,CL ; AX - (X+Y)*8 SUB AX,varx ; DL - (X+Y)*8-X SAR AX,1 ; DL - (X+Y)*8-X)/2 MOV result,AX MOV AH,4ch INT 21h ; 退出程序 code ENDS END start (1)輸入程序并檢查無誤,經(jīng)匯編、連接后產(chǎn)生正確的可執(zhí)行文件 SY5-1.EXE。 (2)執(zhí)行可執(zhí)行文件,可以看到執(zhí)行正常,但是沒有任何輸出,可以使用 DEBUG來調(diào)試。,(3)用 DEBUG 的 U CS:0000 查看 MOV AX,XXXX(DATA)語句,即得到數(shù)據(jù)段段地址 DS=XXXX。 (4)單步運(yùn)行以上程序到最后一條指令,計(jì)算出了(X+Y)*8-X)/2 的內(nèi)容(0031H),調(diào)試過如下: C: DEBUG SY5-1.EXE 一_U_ ;反匯編_ 13F9:0000_B8F813_ MOV_AX,13F8_ 13F9:0003_8ED8_ MOV_DS,AX_ 13F9:0005_8B1E0000_ MOV_BX,0000_ 13F9:0009_031E0200_ ADD_BX,0002_ 13F9:000D_B103_ MOV_CL,03_ 13F9:000F_D3E3_ SHL_BX,CL_ 13F9:0011_2B1E0000_ SUB_BX,0000_ 13F9:0015_D1FB_ SAR_BX,1_ 13F9:0017_891E0400_ MOV_0004,BX_ 13F9:001B_B44C_ MOV_AH,4C_ 13F9:001D_CD21_ INT_21_ ;源程序結(jié)束 一_R_ AX=0000 BX=0000 CX=002F DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=13E8 ES=13E8 SS=13F8 CS=13F9 IP=0000 NV UP EI PL NZ NA PO NC 13F9:0000 DBF813 MOV AX,13F8 一_T_,AX=13F8_BX=0000_CX=002FDX=0000_SP=0000_BP=0000_SI=0000_DI=0000_ DS=13E8_ES=13E8_SS=13F8_CS=13F9_IP=0003_NV_UP_EI_PL_NZNAPO_NC_ 13F9:0003_8ED8_ MOV_DS,AX_ 一_T_ AX=13F8_BX=0000_CX=002FDX=0000_SP=0000_BP=0000_SI=0000_DI=0000 DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=0005_NV_UP_EI_PL_NZNAPO_NC_ 13F9:0005_8B1E0000_ MOV_BX,0000_ DS:0000=0006_ 一_T_ AX=13F8_BX=0006_CX=002FDX=0000_SP=0000_BP=0000_SI=0000_DI=0000_ DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=0009_NV_UP_EI_PL_NZNAPO_NC_ 13F9:0009_031E0200_ ADD_BX,0002_ DS:0002=0007_ 一_T_ AX=13F8_BX=000D_CX=002F_DX=0000_SP=0000_BP=0000_SI=0000_DI=0000_ DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=000D_NV_UP_EI_PL_NZNAPO_NC_ 13F9:000D_B103_ MOV_CL,03_ 一_T_,AX=13F8_BX=000D_CX=0003_DX=0000_SP=0000_BP=0000_SI=0000_DI=0000_ DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=000F_NV_UP_EI_PL_NZNAPO_NC_ 13F9:000F_D3E3_ SHL_BX,CL_ 一_T_ AX=13F8_BX=0068_CX=0003DX=0000_SP=0000_BP=0000_SI=0000_DI=0000_ DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=0011_NV_UP_EI_PL_NZNAPO_NC_ 13F9:0011_2B1E0000_ SUB_BX,0000_ 一_T_ AX=13F8_BX=0062_CX=0003DX=0000_SP=0000_BP=0000_SI=0000_DI=0000_ DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=0015_NV_UP_EI_PL_NZNAPO_NC_ 13F9:0015_D1FB_ SAR_BX,1_ 一_T_ AX=13F8_BX=0031_CX=0003DX=0000_SP=0000_BP=0000_SI=0000_DI=0000_ DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=0017_NV_UP_EI_PL_NZNAPO_NC_ 13F9:0017_891E0400_ MOV_0004,BX_DS:0004=0000_ 一_T_ AX=13F8_BX=0031_CX=0003DX=0000_SP=0000_BP=0000_SI=0000_DI=0000_ DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=001B_NV_UP_EI_PL_NZNAPO_NC_ 13F9:001B_B44C_ MOV_AH,4C_ 一_T_,AX=4CFB_BX=0031_CX=0003_DX=0000_SP=0000_BP=0000_SI=0000_DI=0000_ DS=13F8_ES=13E8SS=13F8_CS=13F9_IP=001D_NV_UP_EI_PL_NZNAPO_NC_ 13F9:001D_CD21_ INT_21_ 一 D 0000 0005 ;數(shù)據(jù)段三個(gè)字內(nèi)容分別為 X,Y,Z 13F8:0000 06 00 07 00 31 00_ .1._ 2假設(shè)有一組數(shù)據(jù):5,-4,0,3,100,-51,請編一程序,判斷:每個(gè)數(shù)大于_0,等于_0,還是小于_0;并輸出其判斷結(jié)果。,即:_,1_當(dāng)_x0_ _0_當(dāng)_x=0_ -1_當(dāng)_x0_,(1)編程提示: 首先將原始數(shù)據(jù)裝入起始地址為_XX_的字節(jié)存儲(chǔ)單元中。 將判斷結(jié)果以字符串的形式存放在數(shù)據(jù)區(qū)中,以便在顯示輸出時(shí)調(diào)用。 其中判斷部分可采用_CMP_指令,得到一個(gè)分支結(jié)構(gòu),分別輸出“y=0”,_“y=1”,_“y=-1” 。 程序中存在一個(gè)循環(huán)結(jié)構(gòu),循環(huán)_6_次,調(diào)用6_次分支結(jié)構(gòu)后結(jié)束。 參考程序如下:(程序名:SY5-2.ASM) data,SEGMENT x DB 5,-4,0,3,100,-51 A1 DB 1,13,10,$ A2 DB 0,13,10,$ A3 DB -1,13,10,$ data ENDS code SEGMENT main PROC FAR ASSUME CS: code , DS: data start: PUSH DS MOV AX,0 PUSH AX MOV AX,data MOV DS,AX LEA SI,x MOV CX,06h again: MOV AL,SI,CMP AL,0 JGE LOOP1 LEA DX,A3 JMP NEXT LOOP1: JE LOOP2 LEA DX,A1 JMP NEXT LOOP2: LEA DX,A2 NEXT: MOV AH,09h INT 21h INC SI DEC CX JNE again RET main ENDP code ENDS END start,(2)輸入程序并檢查無誤、經(jīng)匯編、連接后產(chǎn)生正確的可執(zhí)行文件 SY5-2.EXE。 (3)用 DEBUG 的 U 命令查看 MOV AX,XXXX(DAT

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論