微機(jī)原理設(shè)計(jì)第7章(3)章節(jié)_第1頁(yè)
微機(jī)原理設(shè)計(jì)第7章(3)章節(jié)_第2頁(yè)
微機(jī)原理設(shè)計(jì)第7章(3)章節(jié)_第3頁(yè)
微機(jī)原理設(shè)計(jì)第7章(3)章節(jié)_第4頁(yè)
微機(jī)原理設(shè)計(jì)第7章(3)章節(jié)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第7章分支結(jié)構(gòu)程序設(shè)計(jì)

本章內(nèi)容提示本章將詳細(xì)介紹轉(zhuǎn)移類指令的應(yīng)用,并介紹分支結(jié)構(gòu)程序的基本形式、設(shè)計(jì)方法與設(shè)計(jì)實(shí)例7.1

轉(zhuǎn)移類指令

7.2

分支結(jié)構(gòu)程序設(shè)計(jì)7.1轉(zhuǎn)移類指令7.1.1

無(wú)條件轉(zhuǎn)移指令

7.1.2

條件轉(zhuǎn)移指令

返回本章首頁(yè)7.1.1無(wú)條件轉(zhuǎn)移指令JMPlabel;程序轉(zhuǎn)向label標(biāo)號(hào)指定的地址JMP指令分成4種類型:⑴段內(nèi)直接短轉(zhuǎn)移JMPSHORTOPR

;IP〈—(IP)+8位偏移量⑵段內(nèi)直接近轉(zhuǎn)移JMPNEARPTROPR

;IP〈——(IP)+16位偏移量⑶段內(nèi)間接轉(zhuǎn)移JMPR16/M16

;IP←R16/MEM16

不修改CS的內(nèi)容。

例如:JMPAX ;IP←AXJMPWORDPTR[2000H]

;IP←[2000H]⑷段間直接轉(zhuǎn)移格式JMPFARPTRLABEL

;IP〈——LABEL的偏移地址;CS〈——LABEL所在段的段地址例如:CODE1SEGMENTCODE2SEGMENTASSUMECS:CODE1ASSUMECS:CODE2START:∶BEGIN:∶∶JMPFARPTRPRINPRIN:∶NEXT:∶JMPFARPTRNEXT∶∶CODE2ENDSCODE1ENDSENDSTART⑸段間間接轉(zhuǎn)移格式JMPDWORDPTROPR

;IP〈—(EA),CS〈—(EA+2)用一個(gè)雙字存儲(chǔ)單元表示要跳轉(zhuǎn)的目標(biāo)地址:低位字送IP,高位字送CS。

例如:

MOVWORDPTR[BX],0MOVWORDPTR[BX+2],1500HJMPDWORDPTR[BX];轉(zhuǎn)到1500H:07.1.2條件轉(zhuǎn)移指令JCCLABEL

;條件滿足,轉(zhuǎn)移:IP←(IP)+8位偏移量;條件不滿足,順序執(zhí)行不影響標(biāo)志位,但要利用標(biāo)志位

可分為四類:1、判斷單個(gè)標(biāo)志位狀態(tài)2、比較兩個(gè)無(wú)符號(hào)數(shù)

3、比較兩個(gè)帶符號(hào)數(shù)

4、JCXZ特殊指令JCXZ計(jì)數(shù)器CX為0轉(zhuǎn)移

JCXZlabel

;CX=0,發(fā)生轉(zhuǎn)移:IP←(IP)+8位偏移量;CX≠0,順序執(zhí)行

MOVCX,100AGAIN:JCXZNEXT;判斷(CX)是否為0MOVSB

;傳送一個(gè)字節(jié)DECCX

;傳送次數(shù)減1JMPAGAINNEXT:…...7.2分支程序的結(jié)構(gòu)和程序設(shè)計(jì)7.2.1

分支程序的結(jié)構(gòu)形式7.2.2

分支結(jié)構(gòu)的程序設(shè)計(jì)返回本章首頁(yè)7.2.1分支程序的結(jié)構(gòu)形式8086指令系統(tǒng)有許多條件轉(zhuǎn)移指令,說(shuō)明8086系統(tǒng)有很強(qiáng)的邏輯判斷能力,能根據(jù)邏輯判斷選擇執(zhí)行不同程序段選擇程序的結(jié)構(gòu)有兩種形式:雙分支結(jié)構(gòu)和多分支結(jié)構(gòu)

(1)雙分支結(jié)構(gòu)(2)雙分支結(jié)構(gòu)(3)多分支結(jié)構(gòu)程序設(shè)計(jì)7.2.2分支結(jié)構(gòu)程序設(shè)計(jì)1.簡(jiǎn)單的雙分支程序設(shè)計(jì)

例:內(nèi)存中字節(jié)單元X

,存有帶符號(hào)數(shù)據(jù),計(jì)算它的絕對(duì)值放入RESULT單元。分析:正數(shù)的絕對(duì)值是它本身,負(fù)數(shù)的絕對(duì)值是它的相反數(shù);8086指令系統(tǒng)有專門(mén)的求相反數(shù)指令DATA SEGMENTXDB-25RESULTDB?DATA ENDSCODE SEGMENT ASSUMEDS:DATA,CS:CODESTART: MOVAX,DATA MOVDS,AX;初始化

MOVAL,X;X取到AL中TESTAL,80H;測(cè)試AL正負(fù)

JZNEXT

;為正,轉(zhuǎn)NEXTNEGAL ;否則AL求補(bǔ)NEXT:MOVRESULT,AL ;送結(jié)果

MOVAH,4CH INT 21H ;返回DOSCODEENDS

ENDSTART

;匯編結(jié)束2.多分支程序設(shè)計(jì)若干個(gè)條件,每一條件對(duì)應(yīng)一基本操作從若干分支中選擇一個(gè)分支執(zhí)行多分支結(jié)構(gòu)實(shí)現(xiàn)的方法有:條件選擇法、轉(zhuǎn)移表法和地址表法

條件選擇法一個(gè)條件選擇指令可實(shí)現(xiàn)兩路分支多個(gè)條件選擇指令就可以實(shí)現(xiàn)多路分支適用于分支數(shù)較少的情況。用條件轉(zhuǎn)移指令實(shí)現(xiàn)程序分支例:編寫(xiě)計(jì)算下面函數(shù)值的程序:

1 X>0Y=0 X=0-1 X<0

設(shè)輸入數(shù)據(jù)為X、輸出數(shù)據(jù)Y,且皆為字節(jié)變量。DATA SEGMENTXDB-25YDB?DATA ENDSCODE SEGMENT ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX ;初始化 MOVAL,X ;X取到AL中CMPAL,0 ;Al中內(nèi)容和0比較JGEBIG

;大于等于0,轉(zhuǎn)BIGMOVBL,-1 ;否則為負(fù)數(shù),-1送BLJMPEXIT

;轉(zhuǎn)到結(jié)束位置BIG:JEEE

;(Al)是否為0,為0轉(zhuǎn)EEMOVBL,1 ;否則為大于0,1送BLJMPEXIT

;轉(zhuǎn)到結(jié)束位置

EE:MOVBL,0 ;0送BLEXIT:MOVY,BL ;BL中內(nèi)容送Y單元

MOVAH,4CHINT21H ;程序結(jié)束CODEENDSENDSTART

;匯編結(jié)束例:試編一程序,求三個(gè)帶符號(hào)字?jǐn)?shù)據(jù)中的最大值,并將最大值存入MAX字單元中。 設(shè)三個(gè)帶符號(hào)數(shù)分別在三個(gè)字變量X、Y、Z中存儲(chǔ)。STASEGMENTSTACK DB200DUP(0)STAENDSDATASEGMENTX DW00ABHY DW–5Z DW200MAX DW?DATAENDSCODESEGMENTASSUMEDS:DATA,SS:STA,CS:CODESTART:MOVAX,DATA MOV DS,AX MOV AX,X CMP AX,Y ;X>Y?

JG L1 MOV AX,Y ;Y>Z?

CMP AX,Z JG EXITL2:MOV AX,Z JMP EXITL1:

CMP AX,Z ;X>Z?

JLE L2EXIT:

MOV M

溫馨提示

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

評(píng)論

0/150

提交評(píng)論