




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第六章分支與循環(huán)程序設(shè)計
6.1概述6.1.1匯編語言程序設(shè)計的步驟和特點
①分析問題,確定算法不管使用何種語言設(shè)計程序,這一環(huán)節(jié)是最重要且最容易被忽略的。這很象寫作文時的審題,搞不好就會是“下筆千言,離題萬里”。8086匯編語言程序設(shè)計1②合理組織數(shù)據(jù)除了處理計算用數(shù)據(jù)外,計算機處理的并不是要解決的問題本身,而是處理代表這些問題的數(shù)據(jù)。如何用數(shù)據(jù)代表要處理的問題?這就是數(shù)據(jù)組織問題。數(shù)據(jù)是否代表了要處理的問題,數(shù)據(jù)的組織是否方便程序處理?這就是數(shù)據(jù)組織是否合理的基本標準。數(shù)據(jù)組織得好,處理數(shù)據(jù)的程序就會相對簡單、清晰,相反會使程序變得很復(fù)雜和沒有條理。所以,數(shù)據(jù)的組織是程序總體設(shè)計的的重要內(nèi)容。8086匯編語言程序設(shè)計2③編制流程使用流程圖規(guī)劃程序可以使程序的線條清晰,修改代價小,便于和非專業(yè)人員討論。④過程定義如果把整個程序看作是一幢大樓,那么基于流程圖分解出的過程就是建筑這幢大樓的預(yù)制件。過程是程序整體功能的分頭實現(xiàn);好的程序應(yīng)該由功能和層次劃分合理的過程組成。8086匯編語言程序設(shè)計3⑤合理使用寄存器一般來說,能使用寄存器就不用存儲器單元;
SI和DI用于存儲器尋址;
CX用于循環(huán)控制;無須DX作端口訪問時,DX輔助AX作數(shù)據(jù)處理;尋址任務(wù)重,BX參與尋址,否則參與數(shù)據(jù)處理。8086匯編語言程序設(shè)計46.1.2程序的基本結(jié)構(gòu)
①
順序結(jié)構(gòu)順序結(jié)構(gòu)示意圖AB8086匯編語言程序設(shè)計5②分支結(jié)構(gòu)分支結(jié)構(gòu)示意圖ABYN?8086匯編語言程序設(shè)計6③循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)示意圖YN?DO8086匯編語言程序設(shè)計7例:將一位16進制數(shù)轉(zhuǎn)換成對應(yīng)的ASCⅡ碼數(shù)據(jù)段核心語句:
:TABLEDB30H,31H,….,39H,41H,….,46H :6.2
順序結(jié)構(gòu)的程序設(shè)計8086匯編語言程序設(shè)計8代碼段核心語句: :
LEA BX,TABLE MOV AL,HEX XOR AH,AH ADD BX,AX MOV AL,[BX] :可以看出,順序結(jié)構(gòu)依然可以是“智能”的。8086匯編語言程序設(shè)計9使用“換碼”指令程序可以簡化成: :
LEA BX,TABLE MOV AL,HEX XLAT :
XLAT的功能是:
AL←((BX)+(AL))8086匯編語言程序設(shè)計10
配合標志寄存器的各種轉(zhuǎn)移指令,是計算機智能的核心所在。轉(zhuǎn)移指令的實質(zhì)是對指令指針CS:IP的修改。6.3.1無條件轉(zhuǎn)移指令
JMP 目標地址目標地址使用標號。無條件轉(zhuǎn)移指令有段內(nèi)、段間和間接無條件轉(zhuǎn)移四種類型。6.3
分支結(jié)構(gòu)的程序設(shè)計8086匯編語言程序設(shè)計11JMP指令多用于配合條件轉(zhuǎn)移指令形成分支結(jié)構(gòu):
CMP AL,0 JNC POS MOV AH,0
JMP EXIT
POS: MOV AH,1EXIT:
………8086匯編語言程序設(shè)計12JMP指令的四種跳轉(zhuǎn)類型:①段內(nèi)直接轉(zhuǎn)移:編譯(匯編)之后操作數(shù)的變化:
成為與目標地址差的“位移量”(補碼);
優(yōu)化編譯(短轉(zhuǎn)移和長轉(zhuǎn)移)。②段內(nèi)相對轉(zhuǎn)移:指令將16位通用寄存器或字類型內(nèi)存單元中的數(shù)據(jù)用作目標地址偏移量。8086匯編語言程序設(shè)計13③段間直接: 目標段的偏移量送IP; 目標段的段基值送CS。④段間間接轉(zhuǎn)移:
JMPDWORDPTR當前段變量存儲轉(zhuǎn)移目標的地址指針。8086匯編語言程序設(shè)計146.3.2條件轉(zhuǎn)移指令配合標志位,是現(xiàn)代計算機智能的物理基礎(chǔ)。
JXX 目標地址XX表示轉(zhuǎn)移條件;目標地址使用標號。
8086CPU條件轉(zhuǎn)移指令有如下三類:
單條件轉(zhuǎn)移指令;
無符號數(shù)條件轉(zhuǎn)移指令;
帶符號數(shù)條件轉(zhuǎn)移指令。8086匯編語言程序設(shè)計15指令助憶符轉(zhuǎn)移條件功能描述JCCF=1JumpCarryJNCCF=0JumpNotCarryJOOF=1JumpOverflowJNOOF=0JumpNotOverflowJP/JPEPF=1JumpParityorJumpParityEvenJNP/JPOPF=0JumpNotParityorJumpParityOddJSSF=1JumpSign(negative)JNSSF=0JumpNoSign(positive)JZZF=1JumpZeroJNZZF=0JumpNotZero①單條件轉(zhuǎn)移指令8086匯編語言程序設(shè)計16②無符號數(shù)條件轉(zhuǎn)移指令指令助憶符轉(zhuǎn)移條件功能描述JE/JZZF=1JumpEqualorJumpZeroJNE/JNZZF=0JumpNotEqualorJumpNotZeroJA/JNBECF=0andZF=0JumpAboveorJumpNotBeloworEqualJAE/JNBCF=0JumpAboveorEqualorJumpNotBelowJB/JNAECF=1JumpBeloworJumpNotAboveorEqualJBE/JNACF=1orZF=1JumpBeloworEqualorJumpNotAbove上述條件轉(zhuǎn)移指令中有兩條用到了復(fù)合條件,功能更強;另外四條和單條件轉(zhuǎn)移指令的功能完全一樣,同一指令有多個命名旨在提高代碼的可讀性。8086匯編語言程序設(shè)計17③帶符號數(shù)條件轉(zhuǎn)移指令指令助憶符轉(zhuǎn)移條件功能描述JE/JZZF=1JumpEqualorJumpZeroJNE/JNZZF=0JumpNotEqualorJumpNotZeroJG/JNLEZF=0andSF=OFJumpGreaterorJumpNotLessorEqualJGE/JNLSF=OFJumpGreaterorEqualorJumpNotLessJL/JNGESF≠OFJumpLessorJumpNotGreaterorEqualJLE/JNGZF=1orSF≠OFJumpLessorEqualorJumpNotGreater
在8086CPU的指令系統(tǒng)中,所有條件轉(zhuǎn)移指令實現(xiàn)的流程轉(zhuǎn)移均為段內(nèi)短轉(zhuǎn)移。如果分支結(jié)構(gòu)過大,可結(jié)合無條件轉(zhuǎn)移指令來增大轉(zhuǎn)移范圍。8086匯編語言程序設(shè)計18JCXZ指令:
JCXZ指令所判斷的條件不是標志位的狀態(tài),而是CX寄存器中的數(shù)據(jù):若(CX)=0,則轉(zhuǎn)移至目標地址,否則順序執(zhí)行。JCXZ常用作下述結(jié)構(gòu)的循環(huán)控制:NEXT:
JCXZ OK …… DEC CX JMP NEXTOK:
8086匯編語言程序設(shè)計196.3.3分支程序設(shè)計舉例 例7.3.1關(guān)鍵點:使用帶符號數(shù)條件轉(zhuǎn)移指令。
CMPAL,0 ;條件判斷
JGL1 ;如果用錯指令將會怎樣? MOVBL,0FFH
;第二分支入口
JMPL2L1: MOVBL,0
;第一分支入口L2: …… 8086匯編語言程序設(shè)計20例7.3.2 CMP AL,AH JNA L1 MOV BH,0 JMP L3L1:CMP AL,BL JNA L2 MOV BH,1 JMP L3L2: MOV BH,2L3: ……8086匯編語言程序設(shè)計21
多次重復(fù)的操作,比如將1000個字節(jié)清0,如果不用循環(huán)結(jié)構(gòu),將寫上1000條語句。6.3.1循環(huán)控制指令①LOOP指令格式:LOOP 目的地址指令功能:(CX)←(CX)-1;若(CX)≠0,跳轉(zhuǎn)至目的地址;否則退出循環(huán)。6.3循環(huán)程序設(shè)計8086匯編語言程序設(shè)計22
②LOOPZ指令格式:LOOPZ 目的地址指令功能:(CX)←(CX)–1;若(CX)≠0
且ZF=1,跳轉(zhuǎn)至目的地址;否則退出循環(huán)。③LOOPNZ
指令格式:LOOPNZ 目的地址指令功能:(CX)←(CX)–1;若(CX)≠0
且ZF=0,跳轉(zhuǎn)至目的地址;否則退出循環(huán)。8086匯編語言程序設(shè)計236.3.2循環(huán)程序的結(jié)構(gòu)
①DO-UNTIL和DO-WHILE結(jié)構(gòu) ②循環(huán)程序段的組成部分 初始化部分; 循環(huán)體; 循環(huán)控制部分(LOOP等); 結(jié)束處理部分。8086匯編語言程序設(shè)計24例7.5.1
數(shù)據(jù)段部分:DATA SEGMENTARRY DB75,82,64,50,70,45,90LENGTH EQU$-ARRYNUM DB?DATA ENDS
8086匯編語言程序設(shè)計25例7.5.1
代碼部分:
XOR
AL,AL ;統(tǒng)計計數(shù)器清0
LEABX,ARRY ;BX指向ARRY首地址
MOVCX,LENGTH ;初始化循環(huán)計數(shù)器
JCXZL1 ;若計數(shù)值為0則退出循環(huán)L2: CMP[BX],60 JLL3 INCAL ;若成績大于等于60,則計數(shù)加1L3:INCBX ;BX指向ARRY數(shù)組中下一字節(jié)
LOOPL2 ;(CX)減1后不為0則繼續(xù)循環(huán)L1: MOVNUM,AL ;保存統(tǒng)計結(jié)果8086匯編語言程序設(shè)計26例7.5.2
數(shù)據(jù)段部分DATA SEGMENTSTR1 DB‘BBCABCDAC’LEN EQU$-STR1POS1 DB?DATA ENDS8086匯編語言程序設(shè)計27例7.5.2
代碼段關(guān)鍵語句: MOVBX,-1 ……L2:INCBX;BL存儲搜尋結(jié)果 CMPSTR1[BX],‘A’ LOOPNZL2 L1: JZL3 ;檢驗是否查找成功8
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司團隊信用管理制度
- 醫(yī)藥公司流向管理制度
- 2025年部編版初中道德與法治八年級下冊教案1.1.2 治國安邦的總章程
- 資源閉環(huán)優(yōu)化在智慧農(nóng)業(yè)中的應(yīng)用研究-洞察闡釋
- 滄州職業(yè)技術(shù)學(xué)院《中國文學(xué)通論》2023-2024學(xué)年第二學(xué)期期末試卷
- 常州大學(xué)懷德學(xué)院《Excel統(tǒng)計實踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 船舶自動化技術(shù)應(yīng)用-洞察闡釋
- 北京理工大學(xué)珠海學(xué)院《網(wǎng)絡(luò)英語》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年冰雪旅游項目投資政策與法律法規(guī)解讀報告
- 2025年Z世代消費行為研究:新消費品牌如何實現(xiàn)全渠道營銷報告
- 人工智能賦能教師數(shù)字素養(yǎng)提升
- C919機組培訓(xùn)-導(dǎo)航系統(tǒng)
- 汽車教練員測試題(含參考答案)
- 藥理學(xué)知到智慧樹章節(jié)測試課后答案2024年秋哈爾濱商業(yè)大學(xué)
- 智能病歷質(zhì)控系統(tǒng)需求說明
- 中控室安全生產(chǎn)制度模版(3篇)
- 山東省煙臺市萊州市一中2025屆高考數(shù)學(xué)押題試卷含解析
- 年產(chǎn)xxx結(jié)構(gòu)鋁單板項目可行性研究報告(立項說明)
- 控制心血管疾病的生活方式
- 人教版數(shù)學(xué)三年級下冊 第八單元綜合與實踐 我們的校園
- 叉車出租行業(yè)市場調(diào)研分析報告
評論
0/150
提交評論