微機原理課程設(shè)計-萬年歷(共14頁)_第1頁
微機原理課程設(shè)計-萬年歷(共14頁)_第2頁
微機原理課程設(shè)計-萬年歷(共14頁)_第3頁
微機原理課程設(shè)計-萬年歷(共14頁)_第4頁
微機原理課程設(shè)計-萬年歷(共14頁)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上微機原理課程設(shè)計萬年歷的制作目錄實驗?zāi)康?#183;···········································

2、83;············(3)實驗內(nèi)容····································&#

3、183;····················(3)實驗流程圖····························

4、···························(3)實驗程序······················

5、;···································(5)調(diào)試結(jié)果·············

6、3;··········································(11)心得體會······&#

7、183;·················································&#

8、183;(14)實驗?zāi)康模航Y(jié)合微型計算機原理課程的學習,進一步鞏固已學習的知識,同時針對微型計算機原理知識的具體應(yīng)用,學會對系統(tǒng)中的DOS和BIOS的使用。學會使用編寫軟件EDIT,弄懂匯編程序的上機過程以及如何運用DEBUG軟件進行匯編程序的調(diào)試。通過單步調(diào)試,加深對匯編語言的內(nèi)容了解。實驗內(nèi)容:接受年月日信息并顯示,編寫程序,先顯示“What is the data?”,并響鈴一次,然后再顯示year,接收鍵盤輸入的年,輸入正確后,顯示month,從鍵盤輸入月,輸入正確后,再顯示day,從鍵盤輸入日期的信息,并顯示。對于時間的算法,閏年時,二月有29天,而平年,二月有28天,其它月份有30

9、天或是31天。若輸入年月日時產(chǎn)生錯誤,警告并重新輸入。實驗流程圖:入口段寄存器初始化和堆棧初始化顯示“What is the data?”輸出響鈴,延遲1s調(diào)用getnum,接收鍵入的年,月,日信息調(diào)用dispyear,顯示年輸出字符“-”調(diào)用dispmonth,顯示月輸出字符“-”調(diào)用dispday,顯示日返回DOS子程序getnum流程圖:入口輸入年份四位XXXX錯誤信息年份輸入是否合理?Y輸入月份二位XXN月份輸入是否合理?錯誤信息Y日期輸入二位XXN輸入合理?錯誤信息YN是二月份?YN是閏年嗎?Y日期輸入合理N日期輸入合理嗎NYY返回實驗程序:assume cs:code,ds:dat

10、adata segmentcr equ 0dhlf equ 0ahstring1 db 'What is the data?','$'string2 db cr,lf,'Year :','$'string3 db cr,lf,'Month :','$'string4 db cr,lf,'Day :','$'string5 db cr,lf,'ERROR! Input again:','$' buff1 db 5 db ? db 5 du

11、p(?) buff2 db 3 db ? db 3 dup(?) buff3 db 3 db ? db 3 dup(?) data endscode segment start:mov ax,data mov ds,ax mov dx,offset string1 mov ah,9 int 21h call delay call warning call delay call getnum mov dl,0dh mov ah,02h int 21h mov dl,0ah mov ah,02h int 21h call dispyear mov dl,'-' mov ah,02h

12、 int 21h call dispmonth mov dl,'-' mov ah,02h int 21h call dispday mov ax,4c00h int 21hgetnum proc near repea0:mov dx,offset string2 mov ah,9 int 21h mov dx,offset buff1 mov ah,0ah int 21h mov cx,4 mov si,offset buff1 inc si check:inc si mov al,si sub al,30h mov ah,0h cmp ax,9h ja repea cmp

13、ax,0h jb repea loop checkmov si,offset buff1mov ah,'$'mov si+6,ahjmp repeat0 repea:call error call warningjmp repea0 repeat0:mov dx,offset string3 mov ah,9 int 21h mov dx,offset buff2 mov ah,0ah int 21h mov si,offset buff2 call address cmp al,0dh jz repeat01 cmp ax,12h ja repeat01 cmp ax,0 j

14、be repeat01mov si,offset buff2mov ah,'$'mov si+4,ahjmp repeat1repeat01:call errorcall warningjmp repeat0repeat1:mov dx,offset string4 mov ah,9 int 21h mov dx,offset buff3 mov ah,0ah int 21h mov si,offset buff3 call address cmp ax,31h ja repeat11 cmp ax,0 jbe repeat11 mov si,offset buff2 call

15、 address cmp ax,2h jz feb mov dl,2 div dl cmp ah,0h jz doumonth mov si,offset buff2 call address cmp ax,8h ja downmonth1 jmp overdoumonth:mov si,offset buff2 call address cmp ax,7h ja downmonth2 mov si,offset buff3 call address cmp ax,31h jz repeat11 jmp overdownmonth2:jmp overrepeat11:call errorcal

16、l warningjmp repeat1 downmonth1:mov si,offset buff3 call address cmp ax,31h jz repeat11 jmp over feb:mov si,offset buff1 inc si inc si mov dx,si sub dh,30h sub dl,30h mov cl,4 rol dl,cl add dl,dh mov dh,0 mov cl,8 rol dx,cl call address cmp ax,0 jz hundard add ax,dxmov bl,alnextdiv:mov al,ah mov ah,

17、0 mov cl,4 div cl add ah,2 cmp ah,3 ja nextdiv mov al,bladd al,2 div cl cmp ah,0h jz leapyearcommonyear:mov si,offset buff3 call address cmp ax,28h ja repeat11 cmp ax,0 jbe repeat11 jmp overleapyear:mov si,offset buff3 call address cmp ax,29h ja repeat11 cmp ax,0 jbe repeat11 jmp over hundard:mov al

18、,dh mov ah,0 add ax,2 mov dl,4 div dl cmp ah,0h jz leapyear jmp commonyear over:mov si,offset buff3mov ah,'$'mov si+4,ahret getnum endpdispyear proc near mov dx,offset buff1 inc dx inc dx mov ah,9 int 21h retdispyear endpdispmonth proc near mov dx,offset buff2 inc dx inc dx mov ah,9 int 21h

19、retdispmonth endpdispday proc near mov dx,offset buff3 inc dx inc dx mov ah,9 int 21h retdispday endpaddress proc nearinc si inc si mov ax,si sub ah,30h sub al,30h mov cl,4 rol al,cl add al,ah mov ah,0 retaddress endpdelay proc near push ax push dx mov dx,5020h;近1秒 mov ax,0 s1:sub ax,1 sbb dx,0 cmp ax,0 jne s1 cmp dx,0 jne s1 pop dx pop ax retdelay endp error proc nearpush dxpush axmov dx,offset string5mov ah,9int 21hpop axpop dxreterror endp warning proc nearpush dxpush axmov dl,07h mov ah,2 int 21h p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論