《匯編語(yǔ)言》課程設(shè)計(jì)報(bào)告判斷閏年程序_第1頁(yè)
《匯編語(yǔ)言》課程設(shè)計(jì)報(bào)告判斷閏年程序_第2頁(yè)
《匯編語(yǔ)言》課程設(shè)計(jì)報(bào)告判斷閏年程序_第3頁(yè)
《匯編語(yǔ)言》課程設(shè)計(jì)報(bào)告判斷閏年程序_第4頁(yè)
《匯編語(yǔ)言》課程設(shè)計(jì)報(bào)告判斷閏年程序_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

匯編語(yǔ)言 課程設(shè)計(jì)報(bào)告 題 目 判斷閏年程序 院 系 計(jì)算機(jī)與信息工程學(xué)院 班 級(jí) 姓 名 學(xué) 號(hào) 指導(dǎo)教師 1 設(shè)計(jì)主要任務(wù) 通過完成閏年判別程序設(shè)計(jì)掌握字符輸入及 調(diào)試過程 1 1 設(shè)計(jì)任務(wù)與目標(biāo) 軟件所實(shí)現(xiàn)的任務(wù)與目標(biāo)主要包括 1 由鍵盤輸入任意年份 判斷輸入年份是否在限制區(qū)間 2000 9999 內(nèi) 2 若程序判別輸入年份為閏年 顯示 不是閏年顯示 3 根據(jù)要求確定解決問題的編程方法 4 畫出程序框圖 設(shè)計(jì)源程序 5 在計(jì)算機(jī)上匯編 鏈接所設(shè)計(jì)的程序 6 按照要求調(diào)試程序 記錄程序運(yùn)行結(jié)果 7 寫出設(shè)計(jì)總結(jié)報(bào)告 2 設(shè)計(jì)方案 判斷某年是否為閏年具體算法為如果該年份的數(shù)值正整數(shù)若能被 400 整 除 或者不能被 100 整除 卻能被 4 整除 則該數(shù)值代表的年份為閏年 判 斷結(jié)果的顯示符號(hào)可用 值來(lái)實(shí)現(xiàn) 流程圖如下 開始 顯示提示信息 輸入年份到 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)換子程序 將數(shù)字字符串轉(zhuǎn)換成數(shù)字 以便進(jìn)行下面的程序操作 4 3 判斷閏年子程序 判斷輸入的年份是否為閏年 若是則輸出 若不是則輸出 然后退 出 5 調(diào)試 程序調(diào)試主要使用宏匯編程序 MASM EXE 連接程序 LINK EXE 系統(tǒng)操作界面當(dāng)輸出年份時(shí)顯示結(jié)果 當(dāng)輸入為閏年時(shí)顯示笑臉并返回操作界面 6 設(shè)計(jì)總結(jié) 通過這幾天的匯編課程設(shè)計(jì) 基本掌握閏年判別程序設(shè)計(jì) 首先是根據(jù) 題目要求確定思路 然后根據(jù)思路按照題目要求編寫相應(yīng)匯編程序 最后用 軟件調(diào)試結(jié)果是否正確 在此次課程設(shè)計(jì)中 雖然課本上也講過年份的判別 但是比較分散 所 以剛開始設(shè)計(jì)時(shí)思路不是太清 通過查閱相關(guān)資料 清楚了程序設(shè)計(jì)的基本 框架 進(jìn)而能編寫出相應(yīng)程序 設(shè)計(jì)中又一個(gè)難題是最后屏幕顯示的問題 通過查閱相應(yīng) ASCII 值 使最后顯示出結(jié)果 一周的課程設(shè)計(jì)讓我收獲頗多 雖然調(diào)試中遇到不少問題 但通過調(diào)試 明白程序中存在的問題并改正 通過本次實(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 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 把輸入的字符的個(gè)數(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 如果進(jìn)位則跳轉(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)換十六進(jìn)制 數(shù) mul byte ptr si 計(jì)算 ax 乘以字符數(shù)字 add w ax 把計(jì)算結(jié)果累加 并保存在 w 中 pop ax 出棧操作 去除上一次操作后的倍數(shù) mul bl 乘以 bl 計(jì)算當(dāng)前的倍數(shù) dec si 修改源地址寄存器 si 的值 使得 si 指向 下一個(gè)字符 即高位 loop p2 循環(huán)直到所有字符處理完畢 ret 子程序返回指令 datacate endp ifyears 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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論