




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章循環(huán)與分支程序設(shè)計(jì)學(xué)習(xí)目標(biāo):了解并掌握循環(huán)程序的構(gòu)造方法,尤其是對(duì)循環(huán)控制條件的設(shè)置以及可能出現(xiàn)的邊界情況的考慮。掌握起泡排序算法這種多重循環(huán)程序設(shè)計(jì)中的常用方法。交換標(biāo)志位的設(shè)置在此算法中更能提高效率。學(xué)會(huì)在數(shù)組排序算法中采用折半查找法來(lái)提高查找效率。學(xué)會(huì)使用跳躍表法實(shí)現(xiàn)CASE結(jié)構(gòu)?!?.1循環(huán)程序設(shè)計(jì)一、循環(huán)程序的結(jié)構(gòu)形式二、循環(huán)程序設(shè)計(jì)三、多重循環(huán)程序設(shè)計(jì)一、循環(huán)程序的結(jié)構(gòu)形式結(jié)束初始化控制條件Y循環(huán)體N修改部分先判斷,后循環(huán)一、循環(huán)程序的結(jié)構(gòu)形式初始化循環(huán)體修改部分Y控制條件N結(jié)束先循環(huán),后判斷prognam
segmentassume
cs:prognamstart:movrotate:ch,4movcl,4rolbx,clmoval,blandal,0fhaddal,30hcmpal,3ahjlprintitaddal,7hprintit:mov
dl,almov
ah,2int
21hdec
chjnz
rotatemov
ah,4chint
21hprognam
endsend
start例5.2
在ADDR單元存放著數(shù)Y的地址,試編制一程序把Y中1的個(gè)數(shù)存入COUNT單元中開(kāi)始1的個(gè)數(shù)計(jì)數(shù)器←0循環(huán)次數(shù)計(jì)數(shù)器CX←16Y左移一次CF=1NY1的個(gè)數(shù)計(jì)數(shù)器+1NCX
←CX-1=0YCOUNT
←1的個(gè)數(shù)計(jì)數(shù)器結(jié)束
循環(huán)次數(shù)固定,完全由循環(huán)計(jì)數(shù)器控制SEGMENTDW
1234HDATAYADDR
COUNT
DATA
CODEDW
YDB
?ENDSSEGMENTASSUME
CS:CODE,DS:DATAMOV
AX,DATAMOV
DS,AXMOV
DL,0MOV
BX,ADDRMOV
AX,[BX]MOV
CX,16START:REPEAT:SHL
AX,1JNC
NEXTINC
DLNEXT:
LOOP
REPEATEXIT0:
MOV
COUNT,DLMOV
AH,4CHINT
21HCODE
ENDS?????????END
START例5.2開(kāi)始1的個(gè)數(shù)計(jì)數(shù)器←0循環(huán)次數(shù)計(jì)數(shù)器CX←161的個(gè)數(shù)計(jì)數(shù)器+1結(jié)束NNCX
←CX-1=0YCOUNT
←1的個(gè)數(shù)計(jì)數(shù)器Y=0NY左移一次YCF=1
Y例5.2SEGMENTDW
1234HDATAYADDR
COUNT
DATA
CODEDW
YDB
?ENDSSEGMENTASSUME
CS:CODE,DS:DATAMOV
AX,DATAMOV
DS,AXMOV
DL,0MOV
BX,ADDRMOV
AX,[BX]MOV
CX,16START:REPEAT:?????????CMP
AX,0JZ
EXIT0SHL
AX,1JNC
NEXTINC
DLCODE
ENDSEND
START例5.2NEXT:
LOOJPMRPERPEPAETAT
EXIT0:
MOV
COUNT,DLMOV
AH,4CHINT
21H例在附加段中,有一個(gè)首地址為L(zhǎng)IST和未經(jīng) 排序的字?jǐn)?shù)組。在數(shù)組的第一個(gè)字中,存放 著該數(shù)組的長(zhǎng)度,數(shù)組的首地址已存放在DI 寄存器中,AX寄存器中存放著一個(gè)數(shù)。要求 編制一程序:在數(shù)組中查找該數(shù),如果找到 此數(shù),則把它從數(shù)組中刪除。循環(huán)程序設(shè)計(jì)del_ul
proc
nearcldpush
dimov
cx,es:[di]add
di,2repne
scaswje
deletepop
dijmp
short
exitdelete:jcxz
dec_cntnext_el:mov
bx,ex:[di]mov
es:[di-2],bxadd
di,2loop
next_eldec_cnt:pop
didec
word
ptr
es:[di]exit:retdel_up
endp例5.4將正數(shù)N插入一個(gè)已升序排列的字?jǐn)?shù)組的正確位置該數(shù)組的首地址和末地址分別為ARRAY_
HEAD和ARRAY_
END,其中所有的數(shù)均為正數(shù)。解法一:從數(shù)組的尾部開(kāi)始比較N較大,則在比較對(duì)象后插入,結(jié)束循環(huán)N較小,則把比較對(duì)象及其后元素后移一 個(gè)字循環(huán)結(jié)束的控制:?執(zhí)行插入操作后結(jié)束循環(huán)若N比所有元素都小,掃描整個(gè)數(shù)組后仍無(wú)法結(jié)束循環(huán),將-1加 在數(shù)組前可解決該問(wèn)題32DHE
?
E-
A2D3,
37,
49,N15,2?
-
23?,
3
37,
49,15,2
2,將N放在K的位置修改地址K后移一個(gè)字單元結(jié)束開(kāi)始(ARRAY_HEAD-2)←-1初始化變址寄存器SIYK<=NN例5.4Datareaxsegmentdw
?Array_head
dw3,5,15,23,37,49dw
105dw
32endssegmentArray_endnDatareaProgramassumecs:program,ds:datareaStart:mov
ax,datareamov
ds,axmov
ax,n???mov
array_head-2,mov
si,0??Insert:
mov??array_end[si+2],axmov
ah,4chint
21hProgram
ends?end
start例5.4Comp:?cmpovarbrxa,ya_rernady[_sein]d,[asxi]?
cmp
bjxl,eaixnsert?
jle
imnosvebrxt,array_end[movarray_end[si+2],bxsub
si,2jmp
comp例5.4將正數(shù)N插入一個(gè)已升序排列的字?jǐn)?shù)組的正確位置。該數(shù)組的首地址和末地址分別為ARRAY_
HEAD和
ARRAY_
END,其中所有的數(shù)均為正數(shù)。解法二:從數(shù)組的頭部開(kāi)始比較N較小,則在比較對(duì)象前插入,結(jié)束循環(huán)N較大,則把比較對(duì)象及其前元素前移一循環(huán)結(jié)束的控制:?個(gè)字可掃描整個(gè)數(shù)組,循環(huán)次數(shù)為數(shù)組元素個(gè)數(shù)執(zhí)行插入操作后結(jié)束循環(huán)若N比所有元素都小,形成新的頭;若N比所有元素都大,則被 置于尾部例5.4
例5設(shè)有數(shù)組X(X1,…,X10)和Y(Y1,…,Y10),編程計(jì)算數(shù)組Z
(Z1,…,Z10),其中:Z1
=
X1
+
Y1
Z2
=
X2
+
Y2
Z3
=
X3
-
Y3
Z4
=
X4
-
Y4
Z5
=
X5
-
Y5
Z6
=
X6
+
Y6
Z7
=
X7
-
Y7
Z8
=
X8
-
Y8
Z9
=
X9
+
Y9Z10
=
X10
+
Y10datarea
segmentx
dwx1,x2,x3,x4,x5,x6.x7,x8,x9,x10y
dwy1,y2,y3,y4,y5,y6,y7,y8,y9,y10logic_rule
dw
00dchdatareaprognamassumeendssegmentcs:prognam,ds:datareastart:mov
ax,datareamov
ds,axmov
bx,0mov
cx,10mov
dx,logic_rulenext:movshrz
dw
z1,z2,z3,z4,z5,z6,z7,z8,z9,z10
jcax,x[bx]dx,1subtractax,y[bx]addjmp
short
resultsubtract:subresult:movaddax,y[bx]z[bx],axbx,2loop
nextmovintah,4ch21hprognamendsend
start例5.5試編制一程序:從鍵盤(pán)輸入一行字
符,要求第一個(gè)鍵入的字符必須是空格符, 如不是,則退出程序;如是,則開(kāi)始接收
鍵入的字符并順序存放在首地址為BUFFER的緩沖區(qū)中(空格符不存入),直到接收到第二個(gè)空格符時(shí)退出程序。datareabufferflagdatareaprognamassumesegmentdb
80
dup(?)db
?endssegmentcs:prognam,ds:datareastart:mov
ax,datareamov
ds,axlea
bx,buffermov
flag,0next:
movintah,0121htest
flag,01hjnz
followcmp
al,20hjnz
exitmov
flag,1jmp
nextfollow:
cmp
al,20hjz
exit
mov
[bx],alinc
bxjmp
nextexit:
mov
ah,4chint
21hprognam
endsend
start三、多重循環(huán)程序設(shè)計(jì)例5.7有一個(gè)首地址為A的N字?jǐn)?shù)組,請(qǐng)編制程序使該數(shù)組中的數(shù)按照從大到小的次序整序?冒泡法從第一個(gè)元素開(kāi)始,依次對(duì)相鄰的兩個(gè)元素進(jìn)行比較,使前一個(gè)元素不大于后一個(gè)元素;將所有元素比較完之后,最大的元素排到了最后;然后,除掉最后一個(gè)元素之外的元素依上述方法再進(jìn)行比較,得到次大的元素排在后面;如此重復(fù),直至完成就實(shí)現(xiàn)元素從小到大的排序?這需要一個(gè)雙重循環(huán)程序結(jié)構(gòu)冒泡法的排序序號(hào)數(shù)比
較遍
數(shù)123413232161582851615815316158161641583232325885
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 尚品宅配全屋定制合同模板
- 肇慶市實(shí)驗(yàn)中學(xué)高三上學(xué)期語(yǔ)文高效課堂教學(xué)設(shè)計(jì):詩(shī)歌鑒賞(學(xué)案)
- 新疆司法警官職業(yè)學(xué)院《少兒趣味田徑》2023-2024學(xué)年第二學(xué)期期末試卷
- 石家莊信息工程職業(yè)學(xué)院《擒拿與格斗》2023-2024學(xué)年第一學(xué)期期末試卷
- 連鎖酒店股份制投資入股合同
- 咸陽(yáng)職業(yè)技術(shù)學(xué)院《企業(yè)級(jí)前端應(yīng)用開(kāi)發(fā)實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 江南大學(xué)《新媒體與社會(huì)變遷》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)江大學(xué)《信息論與編碼》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧傳媒學(xué)院《西醫(yī)兒科學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 開(kāi)封文化藝術(shù)職業(yè)學(xué)院《計(jì)算機(jī)輔助模具設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025銀行協(xié)議存款合同
- 《高級(jí)語(yǔ)言程序設(shè)計(jì)》課程思政教學(xué)案例設(shè)計(jì)-以循環(huán)結(jié)構(gòu)程序設(shè)計(jì)為例
- 2024年中國(guó)酸奶乳品市場(chǎng)調(diào)查研究報(bào)告
- 中醫(yī)治療盆腔炎
- 2023年高考英語(yǔ)試卷(新課標(biāo)Ⅰ卷)含答案解析
- DB32T 4878-2024居住區(qū)供配電設(shè)施建設(shè)標(biāo)準(zhǔn)
- 微專題含膜電池-2024高考化學(xué)一輪考點(diǎn)擊破
- BRC內(nèi)部審核檢查表(BRC內(nèi)審檢查表)
- 綜合應(yīng)用能力事業(yè)單位考試(綜合管理類A類)試題與參考答案(2025年)
- 周杰倫職業(yè)規(guī)劃
- 湖北省武漢市武昌區(qū)2025屆高考數(shù)學(xué)考前最后一卷預(yù)測(cè)卷含解析
評(píng)論
0/150
提交評(píng)論