《匯編語言》課程設(shè)計報告判斷閏年程序.doc
《《匯編語言》課程設(shè)計報告判斷閏年程序.doc》由會員分享,可在線閱讀,更多相關(guān)《《匯編語言》課程設(shè)計報告判斷閏年程序.doc(11頁珍藏版)》請在裝配圖網(wǎng)上搜索。
《匯編語言》課程設(shè)計報告 題 目: 判斷閏年程序 院 (系): 計算機與信息工程學(xué)院 班 級: 姓 名: 學(xué) 號: 指導(dǎo)教師: 1設(shè)計主要任務(wù) 通過完成閏年判別程序設(shè)計掌握字符輸入及、調(diào)試過程。 1.1設(shè)計任務(wù)與目標(biāo) 軟件所實現(xiàn)的任務(wù)與目標(biāo)主要包括: (1)由鍵盤輸入任意年份,判斷輸入年份是否在限制區(qū)間2000-9999內(nèi); (2)若程序判別輸入年份為閏年,顯示?,不是閏年顯示△; (3)根據(jù)要求確定解決問題的編程方法; (4)畫出程序框圖、設(shè)計源程序; (5)在計算機上匯編、鏈接所設(shè)計的程序; (6)按照要求調(diào)試程序,記錄程序運行結(jié)果; (7)寫出設(shè)計總結(jié)報告。 2 設(shè)計方案 判斷某年是否為閏年具體算法為如果該年份的數(shù)值正整數(shù)若能被400整除,或者不能被100整除,卻能被4整除,則該數(shù)值代表的年份為閏年。判斷結(jié)果的顯示符號可用ASCII值來實現(xiàn)。 流程圖如下: 開始 顯示提示信息 輸入年份到BUF緩沖區(qū) CX=[BUF+1],即輸入年份的實際長度 將年份數(shù)值轉(zhuǎn)換為ASCII字符 判斷是否為閏年 CF=1 顯示是閏年的信息 結(jié)束 輸出范圍出錯 判斷輸入范圍 顯示非閏年信息 4 子程序設(shè)計 4.1 輸入判斷子程序 該模塊是對輸入的年份的范圍的判斷,若是輸入不在2000-9999之內(nèi),則顯示錯誤Error,若是輸入在范圍內(nèi),則進行下面的操作。 4.2數(shù)字轉(zhuǎn)換子程序 將數(shù)字字符串轉(zhuǎn)換成數(shù)字,以便進行下面的程序操作。 4.3 判斷閏年子程序 判斷輸入的年份是否為閏年,若是則輸出?,若不是則輸出△,然后退出。 5 調(diào)試 程序調(diào)試主要使用宏匯編程序MASM.EXE、連接程序LINK.EXE、 系統(tǒng)操作界面當(dāng)輸出年份時顯示結(jié)果 當(dāng)輸入為閏年時顯示笑臉并返回操作界面: 6 設(shè)計總結(jié) 通過這幾天的匯編課程設(shè)計,基本掌握閏年判別程序設(shè)計,首先是根據(jù)題目要求確定思路,然后根據(jù)思路按照題目要求編寫相應(yīng)匯編程序,最后用軟件調(diào)試結(jié)果是否正確。 在此次課程設(shè)計中,雖然課本上也講過年份的判別,但是比較分散,所以剛開始設(shè)計時思路不是太清,通過查閱相關(guān)資料,清楚了程序設(shè)計的基本框架,進而能編寫出相應(yīng)程序,設(shè)計中又一個難題是最后屏幕顯示的問題,通過查閱相應(yīng)ASCII值,使最后顯示出結(jié)果。 一周的課程設(shè)計讓我收獲頗多,雖然調(diào)試中遇到不少問題,但通過調(diào)試明白程序中存在的問題并改正。通過本次實驗,以后的學(xué)習(xí)奠定了良好的基礎(chǔ),是對自己綜合能力的一種提高。 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 ends stack segment stack db 200 dup(0) stack ends code segment 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 ;從鍵盤輸入年份字符串 mov ah,0Ah ;0AH功能調(diào)用從鍵盤接受字符串到內(nèi)存的輸入緩存區(qū) int 21h mov cl, buf+1 ;把輸入的字符的個數(shù)保存在cl中 lea di,buf+2 ;把從鍵盤輸入字符的首地址存放到di中 push ax a0: mov al,[di] cmp al,0dh jz a1 cmp al,9 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 ;如果進位則跳轉(zhuǎn) 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,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 exit a3: lea dx,e mov ah,9 int 21h exit: mov ah,0 int 16h mov ah,4ch ;返回操作系統(tǒng) int 21h datacate 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)換十六進制數(shù) mul byte ptr [si] ;計算ax乘以字符數(shù)字 add w,ax ;把計算結(jié)果累加,并保存在w中 pop ax ;出棧操作,去除上一次操作后的倍數(shù) mul bl ;乘以bl,計算當(dāng)前的倍數(shù) dec si ;修改源地址寄存器si的值,使得si指向下一個字符(即高位) loop p2 ;循環(huán)直到所有字符處理完畢( ret ;子程序返回指令 datacate endp ifyears proc near ;此子程序用來判斷年份是否為閏年 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進行比較,看似否整除 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 bx cmp dx,0 jz lab2 lab1: clc ;清除進位標(biāo)志,即非閏年 jmp lab3 lab2: stc ;設(shè)置進位標(biāo)志,即閏年 lab3: pop dx pop cx pop bx ret ;子程序返回指令 ifyears endp code ends end start- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 匯編語言 課程設(shè)計 報告 判斷 閏年 程序
鏈接地址:http://www.3dchina-expo.com/p-6562869.html