找最大值并統(tǒng)計(jì)個(gè)數(shù)匯編實(shí)驗(yàn)報(bào)告(共4頁(yè))_第1頁(yè)
找最大值并統(tǒng)計(jì)個(gè)數(shù)匯編實(shí)驗(yàn)報(bào)告(共4頁(yè))_第2頁(yè)
找最大值并統(tǒng)計(jì)個(gè)數(shù)匯編實(shí)驗(yàn)報(bào)告(共4頁(yè))_第3頁(yè)
找最大值并統(tǒng)計(jì)個(gè)數(shù)匯編實(shí)驗(yàn)報(bào)告(共4頁(yè))_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上找最大值&統(tǒng)計(jì)負(fù)數(shù)個(gè)數(shù)一、程序設(shè)計(jì)要求1 統(tǒng)計(jì)并且顯示負(fù)數(shù)的個(gè)數(shù)。2 找出真值最大的數(shù),并以十六進(jìn)制的形式,顯示在屏幕上,顯示格式為:MAX= H3 數(shù)據(jù)自己在數(shù)據(jù)段進(jìn)行定義,個(gè)數(shù)至少為8個(gè)。二、程序設(shè)計(jì)思路主程序設(shè)計(jì)思路:第一步:將BUF單元的第一個(gè)數(shù)賦給MAX,將記錄負(fù)數(shù)個(gè)數(shù)的計(jì)數(shù)器COUNT置為0第二步:從BUF中第一個(gè)數(shù)開(kāi)始,與MAX比較,如果比MAX大則將其賦給MAX;再判斷該數(shù)是否為負(fù)數(shù),若是將COUNT加1。重復(fù)此過(guò)程直至比較完所有數(shù)。第三步:調(diào)用與實(shí)驗(yàn)二相同的子函數(shù)將MAX轉(zhuǎn)化成十六進(jìn)制數(shù)輸出,同時(shí)輸出COUNT。三、程序設(shè)計(jì)流程圖四、源程序;-;程序

2、功能:統(tǒng)計(jì)并顯示負(fù)數(shù)的個(gè)數(shù),找出真值最大的數(shù)以十六進(jìn)制數(shù)顯示在屏幕上;-.486DATASEGMENTUSE16 ;數(shù)據(jù)段定義BUF DB 8H,3H,-1,7H,-6,5H,2H,4H,-34,88LL EQU$-BUFMAX DB ?COUNT DB 0MESG1 DB The number of negtive number is:$MESG2 DB 0DH,0AH,MAX=,4 DUP(?),H,0DH,0AH,$DATA ENDS;-CODESEGMENTUSE16 ;代碼段ASSUMECS:CODE,DS:DATABEG: ;數(shù)據(jù)段初始化 MOVAX,DATA MOVDS,AX M

3、OVCX,LL ;BUF單元數(shù)據(jù)個(gè)數(shù)-CX MOV AL,BUF ;BUF單元第一個(gè)數(shù)-MAX MOV MAX,AL MOVBX,OFFSET BUF ;BX間址BUF單元AGA: MOVAL,BX CMPAL,MAX ;比較MAX和AL的大小,若小轉(zhuǎn)NEXT JL NEXT MOV MAX,AL ;AL中的數(shù)大于MAX時(shí)將AL-MAXNEXT: ADD AL,0 ;判斷AL中的數(shù)是否為負(fù)數(shù) JNS LAST INC COUNTLAST: INC BX LOOP AGA ;重復(fù)AGA至比完所以數(shù) MOVAH,9 ;顯示提示信息 MOVDX,OFFSET MESG1 INT21H ; BUF中只

4、有9個(gè)數(shù)故由此顯示負(fù)數(shù)的個(gè)數(shù) MOVDL,COUNT CMPDL,10 JC NEXT2 ADDDL,7NEXT2: ADDDL,30H MOV AH,2 INT21H MOVDL,MAX ;MAX-DX MOVDH,0 ;調(diào)用N2_16ASC子程序 CALLN2_16ASC ;將MAX轉(zhuǎn)化成十六進(jìn)制數(shù)置于MESG2中 MOVAH,9 MOVDX,OFFSET MESG2 INT21H MOVAH,4CH INT21H;-;子程序功能:將DX中的數(shù)的十六進(jìn)制數(shù)的ACSII碼放入MESG2中;-N2_16ASCPROC SAL EDX,16 ;左移16位,為實(shí)現(xiàn)從高位取4位數(shù)準(zhǔn)備 MOV SI,

5、OFFSET MESG2+6 ;MESG2+6的地址-SI MOV COUNT,4 ;計(jì)數(shù)LAST1: ROL EDX,4 ;循環(huán)左移4位 AND DL,0FH ;將DL的高4為清零,;保證DL中只存在4位二進(jìn)制數(shù) CMP DL,10 ;將4位的十六進(jìn)制數(shù)轉(zhuǎn)化成ACSII碼 JC NEXT1 ADD DL,7NEXT1: ADD DL,30H ;將得到的ACSII-SI MOV SI,DL INC SI ;計(jì)數(shù) DEC COUNT JNZ LAST1 RETN2_16ASC ENDP;-CODEENDS END BEG五、測(cè)試用例及結(jié)果分析運(yùn)行程序,結(jié)果如下:分析:BUF單元中存儲(chǔ)的數(shù)據(jù)是:8H,3H,-1,7H,-6,5H,2H,4H,-34,88。統(tǒng)計(jì)的負(fù)數(shù)個(gè)數(shù)為3,最大數(shù)為88,其十六進(jìn)制形式為0058H。六、實(shí)驗(yàn)總結(jié)所遇問(wèn)題及解決方法:?jiǎn)?題1:輸出的最大數(shù)始終為00FFH.。原 因: 比較BUF中的數(shù)和MAX中的數(shù)時(shí),用條件轉(zhuǎn)移指令JC,沒(méi)有考慮負(fù)數(shù)在計(jì)算機(jī)以補(bǔ)碼形式存在,而CMP指令是兩個(gè)數(shù)補(bǔ)碼差,用JC指令時(shí)最大的數(shù)永遠(yuǎn)是-1。解決方法: 用有符號(hào)條件轉(zhuǎn)移指令JL,該指令是比較兩個(gè)數(shù)真值的大小。問(wèn) 題2:統(tǒng)計(jì)負(fù)數(shù)的個(gè)數(shù)出錯(cuò)。原

溫馨提示

  • 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)論