【正文】
dw 294,294,330,294,262,1mus_time dw 6 dup(250),500 dw 2 dup(500,250,500) dw 12 dup(250),1000 。$39。******************************39。* *39。* *39。* *39。* *39。* *39。* bird *39。* music *39。* face *39。*Please input: *39。******************************39。四、設(shè)計(jì)框圖五、程序清單 DATA SEGMENT。(2) 將剛轉(zhuǎn)換成小寫字母的文件拷貝到另一個(gè)文件中。具體要求是:(1) 讀入一個(gè)文本文件,將大寫的字母轉(zhuǎn)換為小寫字母并將結(jié)果顯示在屏幕上。用匯編語(yǔ)言可以有效地管理和控制磁盤資源,建立自己特有的文件并體會(huì)DOS的功能。初始化之后,就可以進(jìn)行發(fā)送和接收數(shù)據(jù)了。PC機(jī)中異步接收發(fā)送器組件8250芯片UART可以完成大多數(shù)串行協(xié)議中的要求, 通過(guò)此芯片實(shí)現(xiàn)異步通信。(2)使用8250中斷方式進(jìn)行通信。由于串行數(shù)據(jù)通信使用的傳輸線條數(shù)少,微型機(jī)中已經(jīng)裝有異步接收發(fā)送器8250及一些通信接口,因此兩臺(tái)微型計(jì)算機(jī)之間在進(jìn)行近距離通信時(shí),可以不用調(diào)制解調(diào)器,通過(guò)電纜線直接進(jìn)行串行通信。每輸入一行180個(gè)字符,用戶檢查一遍,如果用戶認(rèn)為無(wú)須修改,則鍵入回車,此時(shí)這行字符就存入BUFFER緩沖區(qū)保存,同時(shí)打印機(jī)把這行字符打印出來(lái)并換行。循環(huán)執(zhí)行上一步過(guò)程,直到移出屏幕位置為止。首先在屏幕上顯示出來(lái),延遲一個(gè)時(shí)間周期,讓圖形更清晰。(2) 然后通過(guò)一些運(yùn)算,如將行、列值分別加上一個(gè)數(shù)字,來(lái)實(shí)現(xiàn)圖形的移動(dòng)。4. 模擬游戲程序中用隨機(jī)數(shù)來(lái)控制其圖形在屏幕上移動(dòng)。調(diào)用BIOS的字符顯示功能 10H,使這兩個(gè)字符先后在兩列顯示,每個(gè)字符顯示固定的時(shí)間后消失。程序的實(shí)現(xiàn)可分為如下三步:(1) 彩色文本方式的屬性字節(jié)的設(shè)置;(2) 調(diào)用BIOS下的中斷類型10H;(3) 使用CX來(lái)控制顯示符號(hào)的個(gè)數(shù)。S觸發(fā)一次,產(chǎn)生一個(gè)固定的時(shí)間基準(zhǔn)也可以通過(guò)程序來(lái)延遲聲音的時(shí)間。將每個(gè)音和持續(xù)時(shí)間定義成兩個(gè)數(shù)據(jù)表,然后編寫程序依次取出表中的頻率和時(shí)間值,調(diào)用程序發(fā)出聲音。音符的頻率可以通過(guò)查閱有關(guān)資料獲得,音符的持續(xù)時(shí)間根據(jù)樂(lè)曲的速度及每個(gè)音符的節(jié)拍數(shù)來(lái)確定。要實(shí)現(xiàn)樂(lè)曲的演奏,可通過(guò)調(diào)用發(fā)聲程序來(lái)達(dá)到輸出音樂(lè)的效果?!秴R編語(yǔ)言》課程設(shè)計(jì) 一、 設(shè)計(jì)題目用匯編語(yǔ)言進(jìn)行音樂(lè)動(dòng)畫功能的實(shí)現(xiàn)二、 設(shè)計(jì)主要功能建立一個(gè)菜單,菜單上有7個(gè)功能,根據(jù)選擇的菜單項(xiàng)執(zhí)行相應(yīng)的功能,功能包括:(1)編寫一個(gè)樂(lè)曲程序;(2)編寫指令以文本方式在品紅底上顯示5個(gè)藍(lán)色的笑臉?lè)?hào);(3)編寫程序,使一只“鳥”飛過(guò)屏幕;(4)在模擬游戲程序中用隨機(jī)數(shù)來(lái)控制其圖形在屏幕移動(dòng);(5)編寫驅(qū)動(dòng)打印機(jī)打印字符的程序(6)寫一個(gè)2臺(tái)計(jì)算機(jī)互相通信的程序,要求只編寫近距離通信,傳輸速率和4800波特,字長(zhǎng)8位,終止位1位,無(wú)奇偶校驗(yàn),在A機(jī)上發(fā)送信息“How are you?”,在B 機(jī)上回答“very good!”;(7)編寫建立、寫入、讀出磁盤文件的程序;三、系統(tǒng)分析與設(shè)計(jì)編寫主程序,在主程序中用數(shù)字標(biāo)出各個(gè)子功能,當(dāng)用戶從鍵盤輸入某個(gè)數(shù)字時(shí),就去執(zhí)行相應(yīng)的功能。1. 樂(lè)曲是按照一定的高低、長(zhǎng)短和強(qiáng)弱關(guān)系組成的音調(diào),在一首樂(lè)曲中,每個(gè)音符的高低和音長(zhǎng),與頻率和節(jié)拍有關(guān)。在程序中,可以設(shè)定兩個(gè)變量分別用來(lái)存儲(chǔ)音符的頻率值和持續(xù)的時(shí)間。得到了音頻和時(shí)間的關(guān)系,就可以按照樂(lè)曲的曲譜。(1) 通過(guò)對(duì)計(jì)數(shù)器2設(shè)定不同的值來(lái)得到不同頻率;(2) 通過(guò)監(jiān)控端口61H的PB4, 181。2. 文本的顯示是通過(guò)調(diào)用BIOS 10H的子功能09H來(lái)顯示字符,其中BL中的值為前景和背景彩色屬性值。3. 用小寫字母v變?yōu)槠普厶?hào)來(lái)模仿飛鳥的動(dòng)作。形成鳥飛翔的效果。(1) 該功能實(shí)現(xiàn)的關(guān)鍵是如何得到一個(gè)隨機(jī)數(shù),隨機(jī)數(shù)的生成是通過(guò)調(diào)用1AH中斷來(lái)訪問(wèn)系統(tǒng)時(shí)間,用這樣的辦法來(lái)實(shí)現(xiàn)隨機(jī)數(shù)種子。(3) 另外,程序的圖形采用多字符組合實(shí)現(xiàn)。然后清除圖形,調(diào)用隨機(jī)數(shù)種子,計(jì)算出下一步圖形的位置,讓圖形在相應(yīng)的位置顯示。5.用戶從鍵盤輸入一個(gè)文件,在屏幕上回顯出來(lái)。6.計(jì)算機(jī)之間進(jìn)行遠(yuǎn)程通信時(shí),可以用調(diào)制解調(diào)器(MODEM),借助于電話電纜線進(jìn)行,這需要計(jì)算機(jī)串行地發(fā)送或接收數(shù)據(jù)與信息。(1) 使用串行通訊口BIOS功能(INT 14H)實(shí)現(xiàn)通信;PC上的串行接口是標(biāo)準(zhǔn)的RS232接口,串行通訊口BIOS功能INT 14H的AH=0子功能,把指定的串行通訊口初始化,即可進(jìn)行通信。IBM PC機(jī)內(nèi)裝有通信適配器板,它使PC機(jī)有能力與其它具有標(biāo)準(zhǔn)RS232C串行通信接口的計(jì)算機(jī)進(jìn)行通信。在通信之前,根據(jù)協(xié)議規(guī)定的波特率、數(shù)據(jù)、停止位等,對(duì)8250進(jìn)行初始化。7.文件是常用的數(shù)據(jù)存儲(chǔ)形式,也是磁盤存儲(chǔ)的基本內(nèi)容。用匯編語(yǔ)言實(shí)現(xiàn)DOS的TYPE和COPY功能。對(duì)于讀文件,應(yīng)首先打開文件,順序讀取文件內(nèi)容并顯示,同時(shí)將其中的大寫字母轉(zhuǎn)換為小寫字母,最后關(guān)閉文件。本功能實(shí)現(xiàn)DOS中的COPY命令,可首先打開源文件和目標(biāo)文件,其次順序讀取源文件,將每個(gè)字節(jié)賦給目的文件對(duì)應(yīng)位置,源文件讀完時(shí),目的文件就拷貝完成了。 菜單 LIST DB 0DH,0AH DB 39。,0DH,0AH DB 39。,0DH,0AH DB 39。,0DH,0AH DB 39。,0DH,0AH DB 39。,0DH,0AH DB 39。,0DH,0AH DB 39。,0DH,0AH DB 39。,0DH,0AH DB 39。,0DH,0AH DB 39。,0DH,0AH DB 39。,0DH,0AH,39。 小鳥 BIRD_DB DB 39。, 0010B 。_39。 隨機(jī)數(shù) RANDOM_DW DW ? RANDOM_HI DB ? RANDOM_WI DB ?。YOU are using a typer simulator.39。To quit this program,press Esc39。$39。$39。通訊 COM_MESSAGE DB 39。,0AH,0DH DB 39。,0AH,0DH DB 39。,39。d:\masm\39。要打開的文件的路徑和文件名 FILE2 DB 39。 , 0 。文件內(nèi)容暫存區(qū) BUF2 DB 256 DUP(0) 。error !39。$39。出錯(cuò)時(shí)的提示 finish_MSG DB 0dh,0AH , 39。 。保存文件代號(hào)。 CODE SEGMENT ASS