微機(jī)原理實(shí)驗(yàn)442901_第1頁
微機(jī)原理實(shí)驗(yàn)442901_第2頁
微機(jī)原理實(shí)驗(yàn)442901_第3頁
微機(jī)原理實(shí)驗(yàn)442901_第4頁
微機(jī)原理實(shí)驗(yàn)442901_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論