下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)四:分支、循環(huán)程序設(shè)計(jì)一. 實(shí)驗(yàn)?zāi)康? 學(xué)習(xí)分支程序、循環(huán)結(jié)構(gòu)程序的設(shè)計(jì)和調(diào)試方法;2 學(xué)習(xí)子程序的定義和調(diào)試方法;3 掌握分支、循環(huán)、子程序等程序的基本結(jié)構(gòu)。二. 實(shí)驗(yàn)設(shè)備TDN 86/51或 TDN 86/88教學(xué)實(shí)驗(yàn)系統(tǒng)一臺(tái) 三. 實(shí)驗(yàn)內(nèi)容、步驟及要求1. 設(shè)計(jì)一數(shù)據(jù)塊間的搬移程序 數(shù)據(jù)塊搬移的基本原則為:對于兩個(gè)分離的數(shù)據(jù)塊,從首地址或從末地址開始傳送均可。對于有部分重疊的情況則:當(dāng)源數(shù)據(jù)塊首地址目的數(shù)據(jù)塊首地址時(shí),從數(shù)據(jù)塊首地址開始傳送數(shù)據(jù)。當(dāng)源數(shù)據(jù)塊首地址目的數(shù)據(jù)塊首地址時(shí),從數(shù)據(jù)塊末地址開始傳送數(shù)據(jù)。2求某數(shù)據(jù)區(qū)內(nèi)負(fù)數(shù)的個(gè)數(shù)設(shè)數(shù)據(jù)區(qū)的第一單元存放區(qū)內(nèi)單元數(shù)據(jù)的個(gè)數(shù),
2、從第二單元開始存放數(shù)據(jù),在區(qū)內(nèi)最后一個(gè)單元存放結(jié)果。為統(tǒng)計(jì)數(shù)據(jù)區(qū)內(nèi)負(fù)數(shù)的個(gè)數(shù),需要逐個(gè)判斷區(qū)內(nèi)的每一個(gè)數(shù)據(jù),然后將所有數(shù)據(jù)中凡是符號位為1的數(shù)據(jù)的個(gè)數(shù)累加起來,即得區(qū)內(nèi)所包含負(fù)數(shù)的個(gè)數(shù)。3學(xué)生成績名次表 將分?jǐn)?shù)為1100之間的10個(gè)成績存入首址為3000H的單元中,3000H+I表示學(xué)號為I的學(xué)生成績。編寫程序能在3100H開始的區(qū)域排出名次表,3100H+I為學(xué)號I的學(xué)生名次。 4. 求無符號字節(jié)序列中的最大值和最小值 設(shè)有一字節(jié)序列,其存儲(chǔ)首地址為3000H,字節(jié)數(shù)為08H。利用子程序的方法編程求出該序列中的最大值和最小值。四. 編程練習(xí)(A) 在3500H單元開始中輸
3、入數(shù)據(jù):09H(數(shù)據(jù)個(gè)數(shù))12H、80H、78H、C8H、00H、00H、FEH、99H、34H,編寫程序使其能分別求出數(shù)據(jù)區(qū)中的正數(shù)和負(fù)數(shù)以及零的個(gè)數(shù),正數(shù)的個(gè)數(shù)放在3510H單元中,負(fù)數(shù)的個(gè)數(shù)放在3511H單元中,零的個(gè)數(shù)放在3512H單元中. (B) 有三個(gè)8位二進(jìn)制數(shù)連續(xù)存放在03200H開始的內(nèi)存單元中,設(shè)它們之中至少有兩個(gè)數(shù)是相同的。編寫程序找出與另外兩數(shù)不同的數(shù),把該數(shù)所在的地址(段內(nèi)偏移地址)送到03204H單元,若三個(gè)數(shù)都相同則送0FFFFH到03204H單元。 (C) 設(shè)數(shù)據(jù)段SCORE單元開始連續(xù)存放著20個(gè)學(xué)生成績,編寫程序統(tǒng)計(jì)其中<60,60
4、69、7079、8089,>90分?jǐn)?shù)段的人數(shù),并把統(tǒng)計(jì)結(jié)果存放到從TOT開始的數(shù)據(jù)塊中。(數(shù)據(jù)為:64H,61H,5DH,55H,52H,51H,44H,45H,47H,48H,4DH,4FH,3CH,3FH,40H,41H,33H,56H,59H,30H).(D) 找出一個(gè)數(shù)據(jù)塊中的最大數(shù)。數(shù)據(jù)塊從偏移地址3002H開始存放,數(shù)據(jù)塊的長度以16位二進(jìn)制形式存放在3000H、3001H單元,把找出的最大數(shù)放到3100H單元中,并把存放最大值的偏移地址存入3101H和3102H的存儲(chǔ)單元中。假設(shè)數(shù)據(jù)塊中的數(shù)都是8位無符號數(shù)。(E) 的值(字節(jié)數(shù))分別由3000H、3001H、3002H單元
5、的數(shù)決定,對應(yīng)的結(jié)果分別存放在3005H、3006H、3007H單元中,完成下列方程: A (X>0)Y= 0 (X=0) B (X<0) (F) 的值(字節(jié)數(shù))分別由3200H、3201H、3202H單元的數(shù)決定,對應(yīng)的結(jié)果分別存放在3105H、3106H、3107H單元中,完成下列方程:
6、0; 90H (X>200) Y= 50H (X=100) 00H (X<50) 五軟件流程圖和程序清單A)DATAS SEGMENTORG 3500H BUFSIZE DB 9 ;單元數(shù)據(jù)個(gè)數(shù) NUM DB 12H,80H,78H,0C8H,00H,00H,0FEH,99H,34H ORG 3510H RESULT DB 3 DUP(0,0,0)DATAS ENDSCODES SEGMENT ASSUME CS:COD
7、ES,DS:DATASSTART: MOV AX,DATAS MOV DS,AX MOV DI,OFFSET NUM ;送數(shù)據(jù)地址到DI LEA BP,RESULT MOV SI,00H MOV CX,3500H ;循環(huán)次數(shù)AGAIN:TEST BYTE PTRDI,80H JZ COUNT ;ZF=1,此數(shù)據(jù)為非負(fù)數(shù),轉(zhuǎn)移 INC BYTE PTRBP+1 ;ZF=0,此數(shù)據(jù)為負(fù)數(shù) JMP DONECOUNT:CMP BYTE PTRDI,01H JNC NEXT INC BYTE PTRBP+2 ;CF=1,此數(shù)據(jù)為0 JMP DONENEXT: INC BYTE PTRBP ;CF=0,
8、此數(shù)據(jù)為正數(shù)DONE: INC DI LOOP AGAIN MOV AH,4CH INT 21HCODES ENDSEND START【調(diào)試說明】由圖可見:正數(shù)個(gè)數(shù)為3,負(fù)數(shù)個(gè)數(shù)為4,零的個(gè)數(shù)為2。與答案相符C)DATAS SEGMENT ORG 3700H SCORE DB 64H,61H,5DH,55H,52H,51H,44H,45H,47H,48H, 4DH,4FH,3CH,3FH,40H,41H,33H,56H,59H,30H ORG 3720H TOT DB 5 DUP(0,0,0,0,0) DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DAT
9、ASSTART: MOV AX,DATAS MOV DS,AX MOV CX,20 ;循環(huán)次數(shù) MOV SI,OFFSET SCORE ;分?jǐn)?shù)首地址送SIBBB:MOV BP,OFFSET TOT MOV AL,BYTE PTRSI CLC CMP AL,60 JNB S70 ;CF=0,大于60跳轉(zhuǎn) JMP DONES70: INC BP CMP AL,70 JNB S80 ;CF=0,大于70跳轉(zhuǎn) JMP DONES80: INC BP CMP AL,80 JNB S90 ;CF=0,大于80跳轉(zhuǎn) JMP DONES90: INC BP CMP AL,90 JNB S100 ;CF=0,大
10、于90跳轉(zhuǎn) JMP DONES100: INC BPDONE:INC BYTE PTRBP ;對應(yīng)分?jǐn)?shù)段人數(shù)加1 INC SI LOOP BBB MOV AH,4CH INT 21HCODES ENDSEND START【調(diào)試說明】由圖可見:<60,6069、7079、8089,>90分?jǐn)?shù)段的人數(shù)分別為2個(gè),6個(gè),4個(gè),5個(gè),3個(gè),與答案相符。D) DATAS SEGMENT ORG 3000H LEN DW 0020HNUM DB 12H,34H,34H,54H,65H,65H,53H,55H,09H,69H,0FCH,65H,0AAH,0FBH,98H,88H, 0C3H,44
11、H,12H,12H,45H,45H,76H,76H,32H,32H,76H,76H,0B7H,86H,21H,09H ORG 3030H MAX DB ? ADDRESS DW ?DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS MOV DS,AX LEA SI,NUM MOV AL,00H MOV CX,LEN ;循環(huán)次數(shù) MOV ADDRESS,3002H CLC BBB: CMP AL,BYTE PTRSI ;講AL中數(shù)據(jù)與(SI)中數(shù)據(jù)比較 JNB NEXT CLC ;CF=1,CF清零,記錄數(shù)據(jù)地址 MOV AL,BYTE PTRSI MOV ADDRESS,SINEXT:INC SI LOOP BBB MOV MAX,AL ;將AL中最大數(shù)存入指定地址 MOV AH,4CH INT 21HCODES ENDS END
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025兩人合伙人退伙合同書
- 大學(xué)生認(rèn)識(shí)實(shí)習(xí)報(bào)告合集五篇
- 讓真情自然流露話題作文500字六年級10篇
- 2024事業(yè)單位后勤服務(wù)人員勞動(dòng)合同6篇
- 2025電視租賃合同房屋租賃合同
- 師德師風(fēng)自查報(bào)告小學(xué)教師7篇
- 五年級建議書范文匯編四篇
- 2025個(gè)人借款合同格式
- 萬能檢討書匯編15篇
- 網(wǎng)課上課心得體會(huì)(10篇)
- 國家學(xué)生體質(zhì)健康標(biāo)準(zhǔn)評分表
- 燒傷科普講座課件
- 2024年中國鐵路南寧局集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 心外科疾病知識(shí)講座
- 商務(wù)ktv項(xiàng)目計(jì)劃書
- 《微機(jī)系統(tǒng)與匯編語言》-課程設(shè)計(jì)-實(shí)時(shí)時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)
- 智能電網(wǎng)建設(shè)與發(fā)展趨勢
- 門診部預(yù)約診療制度
- 收發(fā)管理工作流程
- 幼兒園中班數(shù)學(xué)活動(dòng)《數(shù)數(shù)有幾個(gè)》
- 基于PLC的變頻恒壓供水控制系統(tǒng)設(shè)計(jì)
評論
0/150
提交評論