九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

順序分支程序設(shè)計實用教案

上傳人:牛*** 文檔編號:74094922 上傳時間:2022-04-12 格式:PPTX 頁數(shù):37 大?。?0.65MB
收藏 版權(quán)申訴 舉報 下載
順序分支程序設(shè)計實用教案_第1頁
第1頁 / 共37頁
順序分支程序設(shè)計實用教案_第2頁
第2頁 / 共37頁
順序分支程序設(shè)計實用教案_第3頁
第3頁 / 共37頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《順序分支程序設(shè)計實用教案》由會員分享,可在線閱讀,更多相關(guān)《順序分支程序設(shè)計實用教案(37頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第第6章微型章微型(wixng)計算機(jī)計算機(jī)的程序設(shè)計的程序設(shè)計6.1程序設(shè)計步驟(bzhu)1376.2簡單程序1386.3分支程序1406.4循環(huán)程序1436.5子程序1466.6查表程序150第1頁/共37頁第一頁,共37頁。匯編語言(hu bin y yn)程序設(shè)計歸納如下7個步驟:(1) 分析問題: 分析問題就是全面理解問題,要把解決問題所需條件、原始數(shù)據(jù)、輸入和輸出信息、運行速度要求、運算精度要求和結(jié)果形式(xngsh)等搞清楚。(2) 建立數(shù)學(xué)模型: 在對問題全面理解后,需要建立數(shù)學(xué)模型,這是把問題向計算機(jī)處理方式轉(zhuǎn)化的第1步驟。建立數(shù)學(xué)模型是把問題數(shù)學(xué)化、公式化第2頁/共37頁

2、第二頁,共37頁。(3) 確定算法: 建立數(shù)學(xué)模型后,許多情況下還不能直接進(jìn)行程序設(shè)計,需要確定符合計算機(jī)運算的算法。 計算機(jī)的算法比較靈活,一般要優(yōu)選邏輯簡單、運算速度快、精度高的算法用于程序設(shè)計;此外,還要考慮占用內(nèi)存空間小、編程容易等特點。(4) 繪制程序流程圖: 程序流程圖是用箭頭線段、框圖及菱形(ln xn)圖等繪制的一種圖。用它能夠把程序內(nèi)容直接描述出來,第3頁/共37頁第三頁,共37頁。(5) 內(nèi)存空間分配: 匯編語言的重要特點之一是能夠直接用機(jī)器指令或偽指令為數(shù)據(jù)或代碼程序分配內(nèi)存空間。 86系列存儲器結(jié)構(gòu)是分段的,如代碼段、數(shù)據(jù)段、堆棧段或附加段,在程序設(shè)計時要考慮(kol)

3、分段結(jié)構(gòu),(6) 編制程序與靜態(tài)檢查: 編制程序就是按計算機(jī)語法規(guī)定書寫計算機(jī)解決問題的過程。編制程序首先關(guān)心的還是程序結(jié)構(gòu),它應(yīng)是模塊化和通用子程序結(jié)構(gòu),程序的結(jié)構(gòu)要層次簡單、清楚、易讀、易維護(hù)為好。第4頁/共37頁第四頁,共37頁。(7) 程序調(diào)試(實驗): 程序調(diào)試是程序設(shè)計最后一步,也是非常重要的一步。沒有調(diào)試過的程序,很難保證程序無錯誤,程序調(diào)試是不可缺省的。 例如在編輯、匯編、連接或用調(diào)試軟件(如DEBUG)調(diào)試時都可以(ky)發(fā)現(xiàn)錯誤并設(shè)法修改程序。第5頁/共37頁第五頁,共37頁。6.2 順序程序設(shè)計(shj) 沒有分支(fnzh)、循環(huán)等轉(zhuǎn)移指令的程序,會按指令書寫的前后順利

4、依次執(zhí)行,這就是順序程序 順序結(jié)構(gòu)是最基本的程序結(jié)構(gòu) 完全采用順序結(jié)構(gòu)編寫的程序并不多見第6頁/共37頁第六頁,共37頁。【例6.1】字加法(jif)用數(shù)據(jù)運算指令,對兩個(lin )16位數(shù)做加法運算。這兩個(lin )數(shù)從地址10050H開始連續(xù)存放,低位在小地址一端,結(jié)果放在這兩個(lin )數(shù)之后。(1) 分析題目:它是一個16位數(shù)相加的問題。在用加法指令時,必須要考慮低8位和低8位相加后產(chǎn)生的進(jìn)位問題。(2) 根據(jù)86系列指令系統(tǒng),可以直接對累加器AX做字操作,但在低位相加后,會影響標(biāo)志寄存器的進(jìn)位位CF,所以,要用帶進(jìn)位的加法指令。第7頁/共37頁第七頁,共37頁。流程圖第8頁/共

5、37頁第八頁,共37頁。程序(chngx)MOVAX,1000HMOVDS,AX ; DS1000HMOVSI,50H ; 被加數(shù)指針SI50HMOVDI,52H ; 加數(shù)指針DI52HMOVBX,54H; 和的指針BX54HCLC ; 清CFXORAX,AX ; 清AX冗余(rn y)MOVAX,SI ; 取一個字到AXADCAX,DI ; AXAX+DI+CFMOVBX,AX ; 存一個字到BXHLT ; 暫停第9頁/共37頁第九頁,共37頁。【例6.2】拆字節(jié)(z ji) 將內(nèi)存(10050)單元的內(nèi)容拆成兩段,每段4位,并將它們分別(fnbi)存入內(nèi)存(10051)和(10052)單元

6、。 即(10050)單元中的低4位放入(10051)的低4位,(10050)單元中的高4位放入(10052)的低4位,而(10051)和(10052)的高4位均為零。第10頁/共37頁第十頁,共37頁。流程圖第11頁/共37頁第十一頁,共37頁。MOV AX, 1000HMOV DS,AXMOV SI, 50H ;需拆字節(jié)的指針MOV AL,SIAND AL,0FH ;高4位清0MOV SI+1,AL ;保存(bocn)MOV AL,SIMOV CL,4SHR AL,CL ;高4位移到低4位MOV SI+2,AL ;保存(bocn)第12頁/共37頁第十二頁,共37頁。補(bǔ)充例題(lt):查表程

7、序采用查表法,實現(xiàn)(shxin)一位16進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼顯示第13頁/共37頁第十三頁,共37頁。例 數(shù)據(jù)(shj)段、代碼段 ;數(shù)據(jù)段ASCIIdb 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h ;對應(yīng)0 9的ASCII碼db 41h,42h,43h,44h,45h,46h ;對應(yīng)A F的ASCII碼hexdb 04h,0bh ;假設(shè)(jish)兩個數(shù)據(jù);代碼段mov bx,offset ASCII ;BX指向ASCII碼表mov al,hex ;AL取得一位16進(jìn)制數(shù) ;恰好就是ASCII碼表中的位移and al,0fh ;只有低4位是有效的,高4

8、位清0Xlat ;換碼:ALDS:BXALXLAT第14頁/共37頁第十四頁,共37頁。例 代碼段(續(xù))mov dl,al;入口參數(shù)(cnsh):DLALmov ah,2;02號DOS功能調(diào)用int 21h;顯示一個ASCII碼字符mov al,hex+1;轉(zhuǎn)換并顯示下一個數(shù)據(jù)and al,0fhxlatmov dl,almov ah,2int 21hXLAT第15頁/共37頁第十五頁,共37頁。chaobiao.asm源程序stack segment stackdb 100 dup(?)stack endsdata segment ;數(shù)據(jù)段ASCII db 30h,31h,32h,33h,3

9、4h,35h,36h,37h,38h,39h ;對應(yīng)(duyng)0 9的ASCII碼db 41h,42h,43h,44h,45h,46h ;對應(yīng)(duyng)A F的ASCII碼hexdb 04h,0bh ;假設(shè)兩個數(shù)據(jù)data endscode segment ;代碼段assume cs:code,ds:data,ss:stackstart: mov ax,datamov ds,ax第16頁/共37頁第十六頁,共37頁。mov bx,offset ASCII ;BX指向ASCII碼表mov al,hex ;AL取得一位16進(jìn)制數(shù) ;恰好就是ASCII碼表中的位移and al,0fh ;只有

10、低4位是有效(yuxio)的,高4位清0Xlat ;換碼:ALDS:BXALmov dl,al;入口參數(shù):DLALmov ah,2;02號DOS功能調(diào)用int 21h ;顯示一個ASCII碼字符mov al,hex+1 ;轉(zhuǎn)換并顯示下一個數(shù)據(jù)and al,0fhxlatmov dl,almov ah,2int 21hmov ax,4c00hint 21h ;返回;返回(fnhu)操作操作系統(tǒng)系統(tǒng)code endsend start第17頁/共37頁第十七頁,共37頁。6.3 分支(fnzh)程序設(shè)計 分支程序根據(jù)條件是真或假決定執(zhí)行與否 判斷的條件是各種指令,如CMP、TEST等執(zhí)行后形成的狀

11、態(tài)標(biāo)志 轉(zhuǎn)移指令Jcc和JMP可以(ky)實現(xiàn)分支控制 分支結(jié)構(gòu)有 單分支結(jié)構(gòu) 雙分支結(jié)構(gòu) 多分支結(jié)構(gòu)第18頁/共37頁第十八頁,共37頁。Jcc指令(zhlng)的分類(P133 表) Jcc指令不影響標(biāo)志,但要利用標(biāo)志(表2-4) 根據(jù)利用的標(biāo)志位不同(b tn),分成三種情況: 判斷單個標(biāo)志位狀態(tài) 比較無符號數(shù)高低(above, belowe) 比較有符號數(shù)大小(greater, less) Jcc指令實際雖然(surn)只有16條,但卻有30個助記符 采用多個助記符,目的是為了方便記憶和使用第19頁/共37頁第十九頁,共37頁。1、單分支(fnzh)結(jié)構(gòu) 條件成立跳轉(zhuǎn),否則順序(shn

12、x)執(zhí)行分支語句體 注意選擇正確的條件轉(zhuǎn)移指令和轉(zhuǎn)移目標(biāo)地址補(bǔ)充(bchng)例:求絕對值第20頁/共37頁第二十頁,共37頁。計算(j sun)AX中有符號數(shù)的絕對值cmp ax,0jge nonneg;條件滿足(AX0),轉(zhuǎn)移neg ax;條件不滿足,求補(bǔ)nonneg: mov result,ax ;保存(bocn)結(jié)果;不恰當(dāng)?shù)姆种?fnzh)(fnzh)cmp ax,0cmp ax,0jl yesnegjl yesneg;條件滿足(AXAX0 0),轉(zhuǎn)移jmp nonnegjmp nonnegyesneg:yesneg:neg axneg ax;條件滿足,求補(bǔ)nonneg:nonneg

13、:mov result,axmov result,ax;保存結(jié)果第21頁/共37頁第二十一頁,共37頁。2、雙分支(fnzh)結(jié)構(gòu)條件(tiojin)成立跳轉(zhuǎn)執(zhí)行第2個分支語句體,否則順序執(zhí)行第1個分支語句體注意第1個分支體后一定要有一個JMP指令跳到第2個分支體后補(bǔ)充(bchng)例:顯示BX的最高位第22頁/共37頁第二十二頁,共37頁。顯示(xinsh)BX的最高位shl bx,1;BX最高位移入CF標(biāo)志jc one;CF1,即最高位為1,轉(zhuǎn)移(zhuny)mov dl,30h;CF0,即最高位為0:DL30H0jmp two;一定要跳過另一個分支體one:mov dl,31h;DL 3

14、1H1two:mov ah,2int 21h;顯示可以(ky)用JNC替換JC第23頁/共37頁第二十三頁,共37頁。顯示(xinsh)BX的最高位(續(xù))shl bx,1;BX最高位移入CF標(biāo)志(biozh)jnc one;CF0,即最高位為0,轉(zhuǎn)移mov dl,31h;CF1,即最高位為1:DL31H1jmp two;一定要跳過另一個分支體one:mov dl,30h ;DL 30H0two:mov ah,2int 21h;顯示轉(zhuǎn)換(zhunhun)為單分支結(jié)構(gòu)第24頁/共37頁第二十四頁,共37頁。顯示(xinsh)BX的最高位(另解)mov dl,0 ;DL30H0shl bx,1;BX

15、最高位移入CF標(biāo)志(biozh)jnc two;CF0,即最高位為0,轉(zhuǎn)移mov dl,1;CF1,即最高位為1:DL31H1two:mov ah,2int 21h;顯示 編寫(binxi)分支程序,需留心分支的開始和結(jié)束第25頁/共37頁第二十五頁,共37頁。顯示(xinsh)BX的最高位(無分支)mov dl,0shl bx,1;BX最高位移(wiy)入CF標(biāo)志adc dl,30h;CF0,DL030h030H0;CF1,DL030h131H1two:mov ah,2int 21h;顯示第26頁/共37頁第二十六頁,共37頁。【例6.3】求AX累加器和BX寄存器中兩個無符號(fho)數(shù)之差

16、的絕對值,結(jié)果放在內(nèi)存(2800)單元中。(1) 分析題目:AX累加器和BX寄存器中的數(shù)是不知道的。顯然應(yīng)該先解決哪一個值稍大些,然后再用大數(shù)減小數(shù)的方法,才可求得絕對值。(2) 根據(jù)指令系統(tǒng)中的比較指令,編出判斷大小的環(huán)節(jié),即可解決問題,第27頁/共37頁第二十七頁,共37頁。 CLC; 清除(qngch)CFSUBAX,BX; AXAX-BXJCAA ; CF轉(zhuǎn)AA去執(zhí)行(即AXBX時轉(zhuǎn)移)MOVDI,2800H; 結(jié)果指針DI2800H 冗余MOVDI,AX; 結(jié)果送到2800H和2801H單元HLT; 暫停AA:SUBBX,AX; BXBX-AX?MOVDI,2800H ;冗余MOVD

17、I,BXHLT第28頁/共37頁第二十八頁,共37頁。修改(xigi):MOVDI,2800H; 結(jié)果指針DI2800H CLC; 清除CFSUBAX,BX; AXAX-BXJCAA ; CF轉(zhuǎn)AA去執(zhí)行(即AXBX時轉(zhuǎn)移(zhuny)MOVDI,AX; 結(jié)果送到2800H和2801H單元HLT ; 暫停AA:NEG AX ;求補(bǔ)MOVDI,AXHLT第29頁/共37頁第二十九頁,共37頁?!纠?.4】 從外設(shè)71H號中取一個數(shù)M,判斷其值是否在10和20之間,即10M20。如果M20H,則送0FFH給外設(shè)73H;如果M10,則送00H給外設(shè)73H;如果10M20,則送88H給外設(shè)73H。(1

18、) 分析題目(tm):根據(jù)題意,我們可以看出這是一個需要兩次判斷M大小的問題。我們可以先判M是否大于10,再判M是否大于20。(2) 根據(jù)解決問題的思路,我們先畫出程序流程圖,如圖6.6所示。 流程圖來看,兩個分支都要“回歸”原程序。第30頁/共37頁第三十頁,共37頁。流程圖第31頁/共37頁第三十一頁,共37頁。例6.4 程序(chngx)START:INAL,71H; 將71H端口的字節(jié)(z ji)讀入ALCLC ; 清除CFCMPAL,10; 將AL的內(nèi)容和10相比較JCLP1 ; 小于10轉(zhuǎn)LP1CMPAL,20; 將AL的內(nèi)容和20相比較JCLP2 ; 10AL20轉(zhuǎn)LP2MOVB

19、L,0FFH; 將0FFH送入BL寄存器LP3:OUT73H,BL; 將0FFH輸出到73H端口HLT ; 暫停LP1: MOVBL,00 JMPLP3LP2: MOVBL,88H JMPLP3第32頁/共37頁第三十二頁,共37頁。3、多分支(fnzh)結(jié)構(gòu)多分支結(jié)構(gòu)(jigu)是多個條件對應(yīng)各自的分支語句體,哪個條件成立就轉(zhuǎn)入相應(yīng)分支體執(zhí)行AH=0fuction0YNAH=1fuction1YNAH=2fuction2YNcmp ah,0 jz function0cmp ah,1 jz function1cmp ah,2 jz function2第33頁/共37頁第三十三頁,共37頁。小節(jié)

20、(xioji): 程序設(shè)計(chn x sh j)步驟 順序程序設(shè)計(chn x sh j) 分支程序設(shè)計(chn x sh j) (復(fù)習(xí)條件轉(zhuǎn)移指令)下周二下午下周二下午7、8節(jié),節(jié),4班實驗,班實驗,硬件硬件(yn jin)實驗室(實驗室(9-408)請一定帶鞋套!請一定帶鞋套!第34頁/共37頁第三十四頁,共37頁。XLAT指令(zhlng)的功能第35頁/共37頁第三十五頁,共37頁。條件轉(zhuǎn)移(zhuny)指令的含義JZ/JEJump on Zero/EqualJNZ/JNEJump on Not Zero/EqualJSJump on SignJNSJump on Not SignJ

21、P/JPEJump on Parity(奇偶)/Parity Even(偶數(shù)(u sh))JNP/JPOJump on Not Parity/Parity Odd(奇數(shù))JOJump on OverflowJNOJump on Not OverflowJC/JB/JNAEJump on Carry/Below/Not Above or EqualJNC/JNB/JAEJump on Not Carry/Not Below/Above or EqualJBE/JNAJump on Below or Equal/Not AboveJNBE/JAJump on Not Below or Equal/AboveJL/JNGEJump on Less/Not Greater or EqualJNL/JGEJump on Not Less/Greater or EqualJLE/JNGJump on Less or Equal/Not GreaterJNLE/JGJump on Not Less or Equal/Greater第36頁/共37頁第三十六頁,共37頁。感謝您的觀看(gunkn)!第37頁/共37頁第三十七頁,共37頁。

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!