版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上匯編語(yǔ)言課程設(shè)計(jì)報(bào)告 題 目: 判斷閏年程序 院 (系): 計(jì)算機(jī)與信息工程學(xué)院 班 級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 1設(shè)計(jì)主要任務(wù)通過(guò)完成閏年判別程序設(shè)計(jì)掌握字符輸入及、調(diào)試過(guò)程。1.1設(shè)計(jì)任務(wù)與目標(biāo)軟件所實(shí)現(xiàn)的任務(wù)與目標(biāo)主要包括:(1)由鍵盤(pán)輸入任意年份,判斷輸入年份是否在限制區(qū)間2000-9999內(nèi);(2)若程序判別輸入年份為閏年,顯示,不是閏年顯示;(3)根據(jù)要求確定解決問(wèn)題的編程方法;(4)畫(huà)出程序框圖、設(shè)計(jì)源程序;(5)在計(jì)算機(jī)上匯編、鏈接所設(shè)計(jì)的程序;(6)按照要求調(diào)試程序,記錄程序運(yùn)行結(jié)果;(7)寫(xiě)出設(shè)計(jì)總結(jié)報(bào)告。2 設(shè)計(jì)方案判斷某年是否為閏年具
2、體算法為如果該年份的數(shù)值正整數(shù)若能被400整除,或者不能被100整除,卻能被4整除,則該數(shù)值代表的年份為閏年。判斷結(jié)果的顯示符號(hào)可用值來(lái)實(shí)現(xiàn)。流程圖如下:開(kāi)始顯示提示信息輸入年份到BUF緩沖區(qū)CX=BUF+1,即輸入年份的實(shí)際長(zhǎng)度將年份數(shù)值轉(zhuǎn)換為ASCII字符判斷是否為閏年CF=1顯示是閏年的信息結(jié)束輸出范圍出錯(cuò)判斷輸入范圍顯示非閏年信息4 子程序設(shè)計(jì)4.1 輸入判斷子程序該模塊是對(duì)輸入的年份的范圍的判斷,若是輸入不在2000-9999之內(nèi),則顯示錯(cuò)誤Error,若是輸入在范圍內(nèi),則進(jìn)行下面的操作。4.2數(shù)字轉(zhuǎn)換子程序?qū)?shù)字字符串轉(zhuǎn)換成數(shù)字,以便進(jìn)行下面的程序操作。4.3 判斷閏年子程序判斷輸
3、入的年份是否為閏年,若是則輸出,若不是則輸出,然后退出。5 調(diào)試程序調(diào)試主要使用宏匯編程序MASM.EXE、連接程序LINK.EXE、系統(tǒng)操作界面當(dāng)輸出年份時(shí)顯示結(jié)果當(dāng)輸入為閏年時(shí)顯示笑臉并返回操作界面:6 設(shè)計(jì)總結(jié)通過(guò)這幾天的匯編課程設(shè)計(jì),基本掌握閏年判別程序設(shè)計(jì),首先是根據(jù)題目要求確定思路,然后根據(jù)思路按照題目要求編寫(xiě)相應(yīng)匯編程序,最后用軟件調(diào)試結(jié)果是否正確。在此次課程設(shè)計(jì)中,雖然課本上也講過(guò)年份的判別,但是比較分散,所以剛開(kāi)始設(shè)計(jì)時(shí)思路不是太清,通過(guò)查閱相關(guān)資料,清楚了程序設(shè)計(jì)的基本框架,進(jìn)而能編寫(xiě)出相應(yīng)程序,設(shè)計(jì)中又一個(gè)難題是最后屏幕顯示的問(wèn)題,通過(guò)查閱相應(yīng)ASCII值,使最后顯示出結(jié)
4、果。 一周的課程設(shè)計(jì)讓我收獲頗多,雖然調(diào)試中遇到不少問(wèn)題,但通過(guò)調(diào)試明白程序中存在的問(wèn)題并改正。通過(guò)本次實(shí)驗(yàn),以后的學(xué)習(xí)奠定了良好的基礎(chǔ),是對(duì)自己綜合能力的一種提高。7 程序清單data segment infon db 0dh,0ah,' input a year: $' E db 0dh,0ah,'Error! $' w dw 0 ;保存年份的數(shù)值,因年份是字符串,需要轉(zhuǎn)換數(shù) buf db 8 ;定義輸入緩沖區(qū) db ? db 8 dup(?)data endsstack segment stack db 200 dup(0)stack endscode s
5、egment assume ds:data,ss:stack,cs:code start:mov ax,data mov ds,ax lea dx,infon ;在屏幕上顯示提示信息 mov ah,9;顯示字符串 int 21h lea dx,buf ;從鍵盤(pán)輸入年份字符串 mov ah,0Ah ;0AH功能調(diào)用從鍵盤(pán)接受字符串到內(nèi)存的輸入緩存區(qū) int 21h mov cl, buf+1 ;把輸入的字符的個(gè)數(shù)保存在cl中 lea di,buf+2 ;把從鍵盤(pán)輸入字符的首地址存放到di中 push ax a0: mov al,di cmp al,0dh jz a1 cmp al,'9&
6、#39; jg a3 cmp al,'2' jl a3 inc di a00: mov al,di cmp al,0dh jz a1 cmp al,'9' jg a3 cmp al,'0' jl a3 inc di jmp a00 a1: pop ax call datacate ;調(diào)用datacate子程序 call ifyears ;調(diào)用ifyears子程序 jc a2 ;如果進(jìn)位則跳轉(zhuǎn) sub AX,AX ;輸出不是閏年,顯示三角形 push AX mov AH,0FH int 10h mov AH,0 mov AL,2 int 10h m
7、ov CX,1 mov DX,0 MOV AH,2 int 10H mov AL,30 mov AH,0AH int 10H mov ah,9 int 21h jmp exit a2: sub AX,AX ;輸出是閏年顯示笑臉 push AX mov AH,0FH int 10h mov AH,0 mov AL,2 int 10h mov CX,1 mov DX,0 MOV AH,2 int 10H mov AL,2 mov AH,0AH int 10H mov ah,9 int 21h call exita3: lea dx,e mov ah,9 int 21h exit: mov ah,0
8、 int 16h mov ah,4ch ;返回操作系統(tǒng) int 21hdatacate proc near ;用于把表示年份的字符串轉(zhuǎn)換為數(shù)值 push cx; dec cx ;讓cx寄存器自減1 lea si,buf+2 ;把字符串的首地址保存在源地址寄存器SI中讓si指向字符串的最低位 p1: inc si loop p1 pop cx mov dh,30h mov bl,10 mov ax,1 p2: push ax sub byte ptr si,dh;ASCII碼字符,減去30H后轉(zhuǎn)換十六進(jìn)制數(shù) mul byte ptr si ;計(jì)算ax乘以字符數(shù)字 add w,ax ;把計(jì)算結(jié)果累
9、加,并保存在w中 pop ax ;出棧操作,去除上一次操作后的倍數(shù) mul bl ;乘以bl,計(jì)算當(dāng)前的倍數(shù) dec si ;修改源地址寄存器si的值,使得si指向下一個(gè)字符(即高位) loop p2 ;循環(huán)直到所有字符處理完畢( ret ;子程序返回指令datacate endpifyears proc near ;此子程序用來(lái)判斷年份是否為閏年 push bx push cx push dx mov ax,w ;把轉(zhuǎn)換后的年份的數(shù)值存入AX mov cx,ax mov dx,0 ;將dx清零 mov bx,4 ;把4存放到寄存器bx中(除數(shù)) div bx ;除法指令 cmp dx,0 ;將dx的余數(shù)與0進(jìn)行比較,看似否整除 jnz lab1 ;若不相等跳轉(zhuǎn) mov ax,cx ;判斷年份是否位400的整數(shù)倍 mov bx,100 ;將100賦給bx寄存器,做div的源操作數(shù) mov dx,0 div bx cmp dx,0 ;將dx中的余數(shù)與0比較,看似否整除 jnz lab2 mov ax,cx ;判斷年份是否位400的整數(shù)倍 mov bx,400 mov dx,0 div b
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度綠色環(huán)保型社區(qū)門(mén)衛(wèi)管理服務(wù)協(xié)議4篇
- 風(fēng)機(jī)安裝施工方案
- 強(qiáng)夯土方施工方案
- 速度課程設(shè)計(jì)講解
- 2025年度新能源項(xiàng)目公司成立合作協(xié)議書(shū)規(guī)范文本4篇
- 2025年銷(xiāo)售人員保密與反不正當(dāng)競(jìng)爭(zhēng)協(xié)議維護(hù)企業(yè)合法權(quán)益2篇
- 2025年度個(gè)人向公司借款用于房屋維修貸款合同范本3篇
- 2025年度智能房屋租賃管理服務(wù)承包合同書(shū)4篇
- 2025年教育機(jī)構(gòu)廚師團(tuán)隊(duì)聘用及餐飲服務(wù)質(zhì)量標(biāo)準(zhǔn)合同2篇
- 二零二五版民房建筑施工安全生產(chǎn)責(zé)任合同4篇
- 家庭年度盤(pán)點(diǎn)模板
- 2024年公需科目培訓(xùn)考試題及答案
- 2024年江蘇鑫財(cái)國(guó)有資產(chǎn)運(yùn)營(yíng)有限公司招聘筆試沖刺題(帶答案解析)
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)含答案
- 廣西桂林市2023-2024學(xué)年高二上學(xué)期期末考試物理試卷
- 財(cái)務(wù)指標(biāo)與財(cái)務(wù)管理
- 部編版二年級(jí)下冊(cè)道德與法治第三單元《綠色小衛(wèi)士》全部教案
- 保安春節(jié)安全生產(chǎn)培訓(xùn)
- 初一語(yǔ)文上冊(cè)基礎(chǔ)知識(shí)訓(xùn)練及答案(5篇)
- 血液透析水處理系統(tǒng)演示
- GB/T 27030-2006合格評(píng)定第三方符合性標(biāo)志的通用要求
評(píng)論
0/150
提交評(píng)論