九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

[詳細(xì)講解]匯編語(yǔ)言 完全數(shù) 課程設(shè)計(jì)報(bào)告書

  • 資源ID:135305309       資源大?。?span id="24d9guoke414" class="font-tahoma">78KB        全文頁(yè)數(shù):12頁(yè)
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說(shuō)明有答案則都視為沒有答案,請(qǐng)知曉。

[詳細(xì)講解]匯編語(yǔ)言 完全數(shù) 課程設(shè)計(jì)報(bào)告書

課程設(shè)計(jì)任務(wù)書學(xué)生姓名 王 麗 專業(yè)班級(jí) 軟件0302班 指導(dǎo)老師 陳天祥 工作單位 武漢理工大學(xué) 題 目:打印完全數(shù)一個(gè)數(shù),若約數(shù)(不含它本身)的和恰好等于它本身就稱為完全數(shù) 初始條件:理論:學(xué)完匯編課程,掌握匯編語(yǔ)言的使用。實(shí)踐:計(jì)算機(jī)實(shí)驗(yàn)室提供計(jì)算機(jī)及軟件環(huán)境。如果自己有計(jì)算機(jī)可以在其上進(jìn)行設(shè)計(jì)。要求完成的主要任務(wù):1. 本次課程設(shè)計(jì)著重于理論設(shè)計(jì),同時(shí)培養(yǎng)動(dòng)手能力。要求運(yùn)用自己所學(xué)知識(shí)進(jìn)行設(shè)計(jì)實(shí)現(xiàn),體現(xiàn)自己的知識(shí)掌握水平。所作設(shè)計(jì)需進(jìn)行論證,一方面是從理論上進(jìn)行推理驗(yàn)證,另一方面是實(shí)驗(yàn)論證。2. 閱讀有關(guān)的參考資料,熟悉開發(fā)工具,運(yùn)用軟件工程設(shè)計(jì)方法,進(jìn)行系統(tǒng)總體分析與設(shè)計(jì), 規(guī)劃出系統(tǒng)的總體機(jī)構(gòu),每個(gè)功能的分布情況,以形成系統(tǒng)的框架設(shè)計(jì)。3. 程序用匯編語(yǔ)言開發(fā)完成, 嚴(yán)禁抄襲(發(fā)現(xiàn)后抄襲者和被抄襲者一律不及格)。4.完成整個(gè)程序的設(shè)計(jì)及調(diào)試、測(cè)試工作后,應(yīng)提供相應(yīng)的課程設(shè)計(jì)報(bào)告書及程序總體分析與算法設(shè)計(jì)和源程序代碼等。5課程設(shè)計(jì)報(bào)告書內(nèi)容:(1) 設(shè)計(jì)題目 (2) 設(shè)計(jì)要求 (3) 設(shè)計(jì)思路及程序清單 (5) 運(yùn)行結(jié)果 (6) 心得體會(huì)6要求按格式規(guī)范撰寫課程設(shè)計(jì)報(bào)告文檔, 文檔中包括系統(tǒng)結(jié)構(gòu)圖,代碼設(shè)計(jì)說(shuō)明以及各功能模塊程序的設(shè)計(jì)說(shuō)明和各功能選項(xiàng)的使用要求及條件,各輸入輸出數(shù)據(jù)的約束條件及代碼的使用等。7課程設(shè)計(jì)報(bào)告格式應(yīng)盡可能規(guī)范,易讀易懂,說(shuō)明問題;學(xué)生自己排版、打印全部課程設(shè)計(jì)報(bào)告書內(nèi)容;學(xué)生要按指定時(shí)間上交課程設(shè)計(jì)報(bào)告書。時(shí)間安排:1、12月26日至12月27日 接受課程設(shè)計(jì), 閱讀有關(guān)的參考資料,熟悉開發(fā)工具,運(yùn)用軟件工程設(shè)計(jì)方法,對(duì)設(shè)計(jì)題目進(jìn)行總體分析與算法設(shè)計(jì)。.2、12月28日至12月29日 編寫程序, 到實(shí)驗(yàn)室進(jìn)行程序調(diào)試。3、12月30日至12月31日 繼續(xù)到實(shí)驗(yàn)室進(jìn)行程序調(diào)試、完善。撰寫課程設(shè)計(jì)報(bào)告書,到實(shí)驗(yàn)室進(jìn)行編緝排版, 交課程設(shè)計(jì)報(bào)告書。指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日1. 設(shè)計(jì)題目 打印完全數(shù)2. 設(shè)計(jì)要求用匯編程序MASM,編寫一個(gè)程序,打印10000以內(nèi)的完全數(shù)。若一個(gè)數(shù)的約數(shù)(不含它本身)的和恰好等于它本身,則該數(shù)是完全數(shù)。用循環(huán)除法(除數(shù)從2到被檢測(cè)數(shù))循環(huán)判斷210000的數(shù)是否是完全數(shù)。根據(jù)題目,運(yùn)用所學(xué)的匯編知識(shí)和程序設(shè)計(jì)知識(shí),完善設(shè)計(jì)思路,盡量使程序完整,具有模塊化,易懂;熟悉匯編程序環(huán)境,掌握匯編命令和匯編語(yǔ)言,增強(qiáng)動(dòng)手能力;增強(qiáng)獨(dú)立解決問題的能力。3. 設(shè)計(jì)思路3.1原始條件及參數(shù):被除數(shù)以雙字為單位,高16位保存在DX中,低16位保存在AX中,初始值為2;檢測(cè)范圍用n 來(lái)限定除數(shù)以字位單位,用count表示,保存在BX中,初始值為2約數(shù)和保存在CX中,初始值為13.2算法設(shè)計(jì)及流程圖:3.2.1 主程序算法及流程圖:初始條件:設(shè)i為被除數(shù),j為除數(shù),t為余數(shù),c為約數(shù)和Int i=2 ; /被除數(shù)從2開始循環(huán)體:While (i<=10000) /求10000以內(nèi)的完全數(shù) int j=2 , c=1; /除數(shù)從2開始,約數(shù)和初始為1While ( j<=i ) /除數(shù)小于被除數(shù) t = i mod j ; /求模If ( t=0) c=j+c; /如果能夠整除,保存約數(shù)和j+ ; /除數(shù)自增if (c=i) print i ; /打印完數(shù)i+ ; /被除數(shù)自增退出:Exit 開始 2>n1>cx , 2>countn>ax , 0>dxax/bx>dx, bx=ax Print i cx=axdx=0cx+bx>cx ,Inc countNNN結(jié)束Inc n n =100003.2.2 print子程序算法及流程圖初始條件:被除數(shù)保存在AX中,將除數(shù)設(shè)置為10 將BX,CX壓入堆棧,保護(hù)現(xiàn)場(chǎng)循 環(huán) 體:被除數(shù)除以10, 將余數(shù)壓入堆棧,堆棧中數(shù)目加1 繼續(xù)除以10,直到被除數(shù)不可以再除 彈出堆棧中的內(nèi)容退 出:Exit 初始值:n>ax將bx,cx壓入堆棧,保存數(shù)據(jù)0ah>cx,0>dx0>dxdiv cx將dx 壓入堆棧bx +1>bxcmp ax,0ax=0dx以ASCII碼形式輸出結(jié)束NY4. 程序清單data segment n dw 10000 ;求10000以內(nèi)的完數(shù) count dw ? ;作為除數(shù)data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov n,2 ;從2開始判斷是否視完數(shù)l1: mov count,2 ;cx保留約數(shù)和,初始值為1 mov cx,1 ;bx作為除數(shù),從2開始l2: mov ax,n push ax ;保存現(xiàn)場(chǎng),保留ax的值 mov dx,0 ;被除數(shù)的高16位置0 div bx cmp dx,0 jnz l3 ;dx保存余數(shù),若余數(shù)不為0,則轉(zhuǎn)向l3,繼續(xù)除下一個(gè)除數(shù) add cx,bx ;若余數(shù)為0,則把除數(shù)相加l3: inc count ;除數(shù)加1 pop ax ;ax出棧 cmp ax,count jnz l2 ;比較被除數(shù)和除數(shù),若相等,則轉(zhuǎn)向l2, cmp n,cx jnz l4 ;比較約數(shù)和與被除數(shù)是否相等,若相等,轉(zhuǎn)向l4,測(cè)試下一個(gè)數(shù) mov dx,0 mov ax,n call print ;調(diào)用子程序,打印完數(shù),每顯示一個(gè)完數(shù),緊跟一個(gè)空格 mov dl,' ' mov ah,02h int 21hl4: inc n ;測(cè)試210000的完數(shù)cmp n,10000 jnz l1 mov ah,4ch int 21h print proc ;打印子程序push cx ;保護(hù)現(xiàn)場(chǎng) push bx mov cx,0ah ;cx作除數(shù),以10為基數(shù) mov bx,0 ;bx作計(jì)數(shù)器,計(jì)算壓入堆棧的完數(shù)個(gè)數(shù) print_l1: mov dx,0 div cx push dx ;將余數(shù)壓入堆棧保留 inc bx ;壓入數(shù)目增加1 cmp ax,0 jnz print_l1 ;反復(fù)調(diào)用print_11,直到被除數(shù)不能再除 print_l2: pop dx ;循環(huán)彈出余數(shù) add dl,30h ;余數(shù)以ASCII碼的表示 mov ah,02h int 21h ;輸出調(diào)用 dec bx ;堆棧中數(shù)的個(gè)數(shù)減1 jnz print_l2 ;彈出堆棧中所有的數(shù) pop bx ;還原現(xiàn)場(chǎng) pop cx retprint endp ;子程序結(jié)束code ends end start ;程序結(jié)束 5. 運(yùn)行結(jié)果該程序是:查找10000以內(nèi)的完全數(shù),文件名為wanshu.asm,執(zhí)行結(jié)果如下:6. 心得體會(huì)在程序設(shè)計(jì)的過程中,我體會(huì)到了一些程序設(shè)計(jì)的基本方法和設(shè)計(jì)技巧,這些有助于拓寬我的解題思路,一定程度上幫助我解決設(shè)計(jì)上存在的問題。在此過程中,除數(shù),被除數(shù),約數(shù)和的初始值的定義至關(guān)重要。由于本程序要反復(fù)除以除數(shù),并把余數(shù)與0比較,把約數(shù)進(jìn)行相加,因此應(yīng)該盡量控制程序作除法運(yùn)算的次數(shù),達(dá)到最快的運(yùn)行速度。在此程序中,我把除數(shù)的初始值設(shè)置為2,約數(shù)和的初始值設(shè)置為1,避免了被除數(shù)屢次除以1以及約數(shù)屢次從1開始相加。每測(cè)試一個(gè)數(shù)字,除數(shù)都從2開始,循環(huán)除,直至達(dá)到被除數(shù)本身(根據(jù)題目要求,除數(shù)達(dá)到”被除數(shù)/2”即可滿足循環(huán)條件)。這影響了程序的運(yùn)行速度,是這個(gè)程序的一個(gè)缺陷。編寫程序要注意格式的規(guī)范性。在此過程中,我的程序出現(xiàn)了前后不對(duì)應(yīng)的情況,系統(tǒng)提示程序沒有結(jié)束,經(jīng)過檢查才發(fā)現(xiàn),最后缺少一個(gè)結(jié)束語(yǔ)句。匯編的每一段都應(yīng)該有開始和結(jié)束的標(biāo)志;同時(shí),使用匯編的語(yǔ)句時(shí)要注意簡(jiǎn)潔和清晰,當(dāng)一種操作可以用不同的語(yǔ)句表示時(shí)(如loop 相當(dāng)于dec 和jnz兩個(gè)語(yǔ)句的組合),要比較不同代碼的優(yōu)缺點(diǎn),被選擇使用的語(yǔ)句應(yīng)該能表現(xiàn)程序的結(jié)構(gòu)性。由于要求打印10000以內(nèi)的完數(shù),理論上除數(shù)至少應(yīng)該到達(dá)5000,用8位二進(jìn)制表示此數(shù)是遠(yuǎn)遠(yuǎn)不夠的。但如果除數(shù)用16位表示,被除數(shù)將占用32位。受到機(jī)器及運(yùn)行環(huán)境的限制,無(wú)法使用386以上機(jī)型中的EBX,EAX,ECX,EDX等寄存器,因此,我采用DX,AX分別保存被除數(shù)的高16位和低16位,對(duì)于除法運(yùn)算的結(jié)果,使用系統(tǒng)默認(rèn)處理。商保存在AX中,余數(shù)保存在DX中;同時(shí),利用累加器CX的特殊功能,用其保存約數(shù)和,以方便計(jì)算。在編寫程序的過程中,我明顯的感覺到寄存器不夠用。因此,我利用堆棧保護(hù)現(xiàn)場(chǎng),保存相關(guān)的數(shù)據(jù)。雖然入棧,出棧的操作頻繁,可能會(huì)一定程度上延緩了程序的執(zhí)行速度,但它解決了寄存器數(shù)量上的限制。另外,由于除法計(jì)算的余數(shù)和商分別保存到DX和AX中,而AX在后續(xù)的程序中要使用到,因此要著重注意對(duì)AX的數(shù)據(jù)保存。AX既要用來(lái)存放被除數(shù),也需要存放除法所得的商,因此,我設(shè)置了變量n,通過”mov ax, n ” 語(yǔ)句可以把待檢測(cè)的數(shù)在需要時(shí)臨時(shí)送入AX,沖掉AX內(nèi)原來(lái)的值。另外,我還設(shè)置了變量count,用寄存器BX保存除數(shù),利用count的自增來(lái)實(shí)現(xiàn)除數(shù)的改變,通過 ” mov bx, count “語(yǔ)句把除數(shù)送入BX。變量與堆棧聯(lián)合使用,可以方便的改變和保存所需要的數(shù)據(jù),使程序簡(jiǎn)單易懂。在程序編譯的過程中,遇到了一些令我措手不及的錯(cuò)誤.由于初次遇到此類問題,我花費(fèi)了大量的時(shí)間閱讀代碼,瀏覽程序,并查找課本和資料,找出指令的差別尤其是中斷指令部分的差別.6.2.1 結(jié)束命令錯(cuò)誤 最初的編譯,遇到該問題,仔細(xì)檢查源代碼,才發(fā)現(xiàn)l4段的退出部分出現(xiàn)問題.我將顯示命令 ” mov ah, 09h int 21h ” 誤當(dāng)作結(jié)束命令.改為 ” mov ah, 4ch int 21h “ 后,順利結(jié)束了該程序,也解決了運(yùn)行時(shí)出現(xiàn)的該問題。6.2.2 除數(shù)溢出錯(cuò)誤除數(shù)溢出問題是本次課程設(shè)計(jì)中我遇到的最困難的問題.開始時(shí)我把除數(shù)定義在2“被除數(shù)/2”方案一:“被除數(shù)/2”用右移一位AX實(shí)現(xiàn)當(dāng)AX中為1時(shí),右移一位則AX為0,除數(shù)為0 , 出現(xiàn)邏輯錯(cuò)誤;當(dāng)AX為奇數(shù)時(shí),右移一位則結(jié)果不精確,運(yùn)行結(jié)果同樣出現(xiàn)錯(cuò)誤.方案二:“被除數(shù)/2”用除2的除法實(shí)現(xiàn)由于程序由兩層循環(huán)嵌套組成,又調(diào)用了一個(gè)輸出完全數(shù)的子程序,寄存器在各段中使用頻繁,數(shù)據(jù)的保存和恢復(fù)頻繁,容易破壞程序的條理性.而增加一次除法大大增加了寄存器的負(fù)荷,因此該方案也不是一種好的方案.于是,我把除數(shù)定義在2被除數(shù)的范圍內(nèi),解決了除數(shù)溢出的問題和寄存器的限制,但同時(shí)也給程序的計(jì)算增加了“被除數(shù)/2”的復(fù)雜度。 我設(shè)計(jì)和編寫的程序完成了題目的要求,可以查找出任意正數(shù)范圍內(nèi)的完全數(shù),但它存在兩個(gè)不足:第一: 現(xiàn)在的程序,如果要修改完全數(shù)的查找范圍,就必須在源程序中改動(dòng),重新定義n的值.但如果在程序之初給出提示,讓用戶輸入所要查找的范圍,并把該數(shù)賦值給n,從而通過n重新定義被除數(shù)就更完善了.第二: 考慮到寄存器數(shù)量上的限制和程序的可讀性和條理性的要求,我擴(kuò)大了除數(shù)的范圍,使除數(shù)不再溢出.但這在一定程度上延遲了程序的執(zhí)行速度.如果能找出協(xié)調(diào)這二者的方法,程序就更完善了.在本次的課程設(shè)計(jì)過程中,我最大的收獲就是學(xué)到了不少新的知識(shí),同時(shí)可以把自己學(xué)到的匯編語(yǔ)言的知識(shí)和以前學(xué)的程序設(shè)計(jì)的知識(shí)應(yīng)用到實(shí)踐中, 熟悉了開發(fā)環(huán)境 ,提高了自己的動(dòng)手能力, 并順利地完成了此次的任務(wù).課程設(shè)計(jì)讓我從中得到莫大的信心,鼓勵(lì),快樂和成就感.編程過程中,我遇到了一些困難.這時(shí),我通過上網(wǎng)查詢和去圖書館查找資料解決問題,有效地利用網(wǎng)絡(luò)資源和學(xué)校圖書資源,同時(shí)也了解了更多的知識(shí)獲取的途徑,擴(kuò)大了自己的知識(shí)面.遇到問題時(shí),多數(shù)情況下我是自己獨(dú)立解決的,這鍛煉我獨(dú)立思考問題和獨(dú)立解決問題的能力;如果自己通過查找資料無(wú)法解決,我就向老師和同學(xué)尋求幫助,不但學(xué)到了新的,更完善解決問題的方法,還學(xué)會(huì)了與人溝通,與人交流.我認(rèn)識(shí)到有時(shí)候,其他人的一點(diǎn)提示,就會(huì)令自己茅塞頓開,得到靈感.因此,在作課程設(shè)計(jì)時(shí),不要吝惜自己的思路和想法,盡可能多的與大家的交流.許多時(shí)候,我們都能從中得到進(jìn)步,得到提示,甚至得到更好的方案.同時(shí),我也發(fā)現(xiàn)了自己的一些問題.例如,編寫程序不夠規(guī)范,總是在出現(xiàn)問題時(shí),才意識(shí)到格式和編程習(xí)慣的重要性,然后手忙腳亂的去修改,給自己的自信和成就感帶來(lái)很大的挑戰(zhàn).另外,為了圖方便,我把在實(shí)驗(yàn)室和寢室修改過的程序直接運(yùn)行,結(jié)果卻不能導(dǎo)入MASM環(huán)境,不能出現(xiàn)編譯,連接和運(yùn)行的結(jié)果,經(jīng)過同學(xué)的提示,我才知道在進(jìn)行程序的編譯前,要將程序在EDIT下打開.由此,我意識(shí)到,許多工作都像這樣,要一步一步的來(lái),不能耍小聰明,圖省事.本次課程設(shè)計(jì),對(duì)我?guī)椭艽?它提高了我的理論知識(shí)和和實(shí)踐動(dòng)手能力;提高了我獨(dú)立思考問題和解決問題的能力;同時(shí),增強(qiáng)了我與人探討問題,交流思路的意識(shí);此外,它還讓我發(fā)現(xiàn)了自己在編程習(xí)慣上的許多不足,對(duì)以后的編寫程序和設(shè)計(jì)解題思路有很大的啟發(fā).在以后的學(xué)習(xí)和實(shí)踐中,我會(huì)不斷督促自己,不斷提高,不斷進(jìn)步.

注意事項(xiàng)

本文([詳細(xì)講解]匯編語(yǔ)言 完全數(shù) 課程設(shè)計(jì)報(bào)告書)為本站會(huì)員(r****d)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!