freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

匯編語言課程設(shè)計---電子鬧鐘-其他專業(yè)-資料下載頁

2025-01-19 04:06本頁面

【導(dǎo)讀】鐘,并能提供整點報時功能。自行設(shè)置鬧鐘報警時間;實物演示時要求講出程序原理和設(shè)計思想;程序運行良好、界面清晰。對應(yīng)的拉丁文繪制于表盤外。將屏幕設(shè)置成圖形顯示方式,通過畫點、畫。線,畫圓等基本程序完成鐘表的繪制。表盤圓周上刻度線段兩端點坐標(biāo)計算是鐘。表繪制的核心部分。秒針、分針、時針的轉(zhuǎn)動。一位置重新畫一個,在原來的位置用背景色覆蓋的方法實現(xiàn)。利用CPU支持的外圍電路8254與8255,通過匯。制揚聲器的音樂的效果。通過建立適當(dāng)?shù)难訒r程序達到一定時間后則改變2號計。數(shù)器產(chǎn)生的方波的頻率,實現(xiàn)音樂程序的演奏。其中鐘表的繪制和動態(tài)走動部分比較難。1時間的獲取可以用INT21H的2CH功能,該功能調(diào)用DOS時間調(diào)用功能,過圖形的畫點進行操作,并通過在固定的區(qū)域內(nèi)不斷的刷屏來實現(xiàn)。的方式修改PB0和PB1接通揚聲器。;存放鍵入的定時時間

  

【正文】 editmusic EDITMUSIC PROC PUSH AX 。入棧保護數(shù)據(jù) PUSH BX PUSH CX PUSH DX PUSHF MOV DX,OFFSET MUSICMESS 。顯示修改音樂的種類提示 MOV AH,09H INT 21H MOV DX,OFFSET T_BUFF 。數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)輸入 MOV AH,0AH INT 21H AND DX,0H LEA BX,T_BUFF INC BX INC BX INC BX MOV AL,[BX] CMP AL,39。139。 JE M800TO CMP AL,39。239。 JE M1600TO CMP AL,39。339。 JE M3200TO M800TO: MOV MUSIC,800 JMP T M1600TO: MOV MUSIC,1600 JMP T M3200TO: MOV MUSIC,3200 T: POPF 。出?;謴?fù)數(shù)據(jù) POP DX POP CX POP BX POP AX JMP START RET EDITMUSIC ENDP 五、測試數(shù)據(jù)及其結(jié)果分析 1)運行畫面 2)測試結(jié)果 A)鍵入 c 或 C 會出現(xiàn)提示“ PLEASE INPUT THE NEW TIME (HH:MM:SS): ” 再輸入 19: 08: 40。 回車結(jié)束后,在 19: 08: 40 時,鬧鐘會鳴叫。 B)鍵入 m 或 M 會出現(xiàn) 提示“ PLEASE CHOOSE THE TYPE OF MUSIC:1(FAST) 2(MIDDLE) 3(SLOW): ” 回車后會設(shè)定此時的鬧鈴鳴叫的頻率 六、調(diào)試 過程中的問題 本次程序設(shè)計中遇到了很多的問題,在設(shè)計每一個模塊都有遇到了一定的難度。 首先關(guān)于,如何獲得系統(tǒng)當(dāng)前的時間,查閱了 INT 21H, 21H 的 2CH 可以返回的 的 CH, CL, DH 中分別為時,分,秒但是都是二進制的,故需 要的進行二進制的碼制,寫代碼時發(fā)現(xiàn)通過寄存器 移位的可以十分的節(jié)省寄存器的使用數(shù)目。 其次在寫 EDITTIME 的子程序是發(fā)生了一個錯誤,很久才改正。我 在使用21H 的 0AH 向 T_BUFFER 內(nèi)存空間輸入 字符串是,第一個 位置是初始化時設(shè)定 的 T_BUFFER 的最大長度,第二個位置是實際輸入的長度, 我于是 INC BX 兩次 (BX 發(fā)的 T_BUFFER 的地址 ),以為能夠得到我的輸入的第一個字符,但是結(jié)果是錯誤的,查了了很久才發(fā)現(xiàn),其實我在 調(diào)用該子程序前的一個控制已經(jīng)輸入了一個字符,該字符已經(jīng)存入了 T_BUFFER,故此處應(yīng)該在 INC BX。在 EDITMUSIC 的子程序中同樣會遇到類似問題。 在編寫 程序中由于經(jīng)常的要使用寄存器,有時沒有將其壓棧保存,導(dǎo)致寄存器的值發(fā)生了不可知的變化。所以一定要注意壓棧的使用 在實驗中使用 MASM 開發(fā)環(huán) 境,因為開始發(fā)現(xiàn)未來匯編的 JNE 等功能的轉(zhuǎn)移范圍有限制,但是在 MASM 中 轉(zhuǎn)移的范圍很大 。 本程序并沒有對一些異常輸入和其他的異常進行處理,所以在程序的健壯性上有所欠缺。后來一直在看關(guān)于繪制鐘表的相關(guān)代碼,看懂了一半,但是還是沒能完成,希望以后有機會能夠完成 七、 專業(yè)課程 設(shè)計總結(jié) 通 過本次的 課程設(shè)計,對匯編語言和微型計算機接口計數(shù) ,有了更加深刻認識,復(fù)習(xí)了關(guān)于 8254 和 8255 的相關(guān)知識。 自己設(shè)計了程序的全部的流程 ,對每個環(huán)節(jié)都要十分清楚。代碼完成后深切的感覺 到, 編寫代碼前的設(shè)計十分的重要。因為,如果 等到完成 了許多功能后,再 需要增添一個功能,或改寫一個光標(biāo)的位置,匯編語言的改寫比 JAVA 等高級語言麻煩的多,十分不好 改 ,畢竟匯編是一種低級語言,沒有面向?qū)ο蟮母拍?, 很有可能大部分帶都重寫, 導(dǎo)致效率十分低 。在程序的調(diào)試過程中熟悉了通過觀察各個寄存器內(nèi)值的變化來跟蹤程序的運行是否有誤。 在編寫程序的時候發(fā)現(xiàn)許多的技巧比如要學(xué)會多利用左移或右移的操作,這樣會十分的節(jié)省寄存器的使用。另外當(dāng)你的寄存器不夠時,可以先把幾個寄存器壓棧,進行操作后在彈出棧,這樣可以解決寄存器不夠,或某些寄存器的值不知覺的被改變。 總之這次的 匯編 實 驗比 JAVA 那部分要難一點,還好最后把基本功能完成了 ,能夠?qū)崿F(xiàn)一個電子鬧鐘的定時,整點鳴叫,設(shè)定鬧鐘鈴聲的種類 。 自己第一 次 編寫這么多的匯編的代碼。 唯一有點遺憾的地方是,提高的鐘 表指針走動的功能沒能夠?qū)崿F(xiàn),網(wǎng)上找到一個范例,但是只看懂了一半,只看懂了繪制的過程,對指 針如何走動還是沒弄懂,希望以后有機會,能夠?qū)o論是匯編的圖形繪制還是其他高級語言的圖形繪制再次實踐一下。充分的鍛煉自己!
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1