版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、匯編語言程序設(shè)計(jì)(實(shí)踐)課程教學(xué)大綱一、課程的性質(zhì)和任務(wù)課程性質(zhì):匯編語言程序設(shè)計(jì)(實(shí)踐)是計(jì)算機(jī)類專業(yè)計(jì)算機(jī)組成與匯編課程的后續(xù)課程設(shè)計(jì)課程。本課程的任務(wù)是:通過課程設(shè)計(jì),為學(xué)生提供一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來,鍛煉學(xué)生的分析解決實(shí)際問題的能力。提高學(xué)生實(shí)際編程的能力。本課程教學(xué)應(yīng)達(dá)到的基本要求是:利用學(xué)到的編程知識(shí)和編程技巧,通過布置具有一定難度的程序設(shè)計(jì)題目,幫助學(xué)生熟悉程序的設(shè)計(jì)、編寫與調(diào)試過程。二、時(shí)間安排本課程設(shè)計(jì)時(shí)間為一周(28 學(xué)時(shí)),題目提前兩周布置,使學(xué)生作好準(zhǔn)備。具體時(shí)間安排如下:1分析設(shè)計(jì)準(zhǔn)備階段(周一)2編程調(diào)試階段(周二至
2、周四)3總結(jié)報(bào)告和書寫說明書階段(周三至周四)4考核階段(周五)三、課題內(nèi)容:提供以下備選課題:1動(dòng)畫程序2圖形程序3樂曲演奏程序四、組織管理:對學(xué)生分組,每組 12 人,每組必須完成以上 1、3 或 2、3 兩題。五、考核評估:成績分優(yōu)、良、及格和不及格四等,從以下幾方面考核:11程序設(shè)計(jì)的可用性,實(shí)用性,通用性,可擴(kuò)充性(40%)2學(xué)生的動(dòng)手能力,創(chuàng)新精神(30%)3總結(jié)報(bào)告(10%)4答辯水平(20%)主編:王富榮主審:姚培華2附錄匯編語言程序設(shè)計(jì)(實(shí)踐)課程補(bǔ)充知識(shí)8086/8088微機(jī)的顯示系統(tǒng)由顯卡(又稱顯示適配器)和顯示器組成。顯卡是計(jì)算機(jī)和顯示器之間的接口,根據(jù)所能顯示的顏色和
3、分辨率,顯卡可分為MDA 、CGA、EGA、VGA 等多種。顯卡又由顯示控制器和顯示存儲(chǔ)器(顯存,又稱顯示緩沖區(qū),與系統(tǒng) RAM 統(tǒng)一編址)組成。顯示控制器可通過系統(tǒng)對其進(jìn)行編程,設(shè)定相應(yīng)的工作方式,這樣我們通過數(shù)據(jù)傳送指令往顯示緩沖區(qū)內(nèi)傳送數(shù)據(jù),相應(yīng)的內(nèi)容就會(huì)立即顯示在屏幕上。顯示方式分為文本方式和圖形方式。文本顯示方式是將顯示器的屏幕劃分為行和列的二維系統(tǒng),在行列組成的網(wǎng)格位置上顯示字符。規(guī)定行和列的起始點(diǎn)為屏幕的左上角。以 80(列)×25(行)為例,即一行顯示80 個(gè)字符,共 25 行,左上角為座標(biāo)(0,0),右下角座標(biāo)為(24,79)。在這種顯示方式中,通常顯示緩沖區(qū)的每兩
4、個(gè)單元對應(yīng)屏幕上的一個(gè)字符,一個(gè)字節(jié)存放字符的 ASCII 碼,緊接著的一個(gè)字節(jié)存放該字符的顯示屬性(如加亮、閃爍或反底顯示等),共需顯示緩沖區(qū)為80×25× 2=4000Byte,文本顯示方式占用內(nèi)存少,顯示速度快,但只能顯示字符。圖形顯示方式下,顯示的單位是屏幕上的圖象點(diǎn)(像素)。屏幕按分辨率分成像素行和列。例如 800×600的顯示分辨率,說明一行可顯示800個(gè)像素點(diǎn),共 600行。顯示的每個(gè)像素有其顯示屬性(灰度值或顏色)。顯示緩沖區(qū)對應(yīng)存放著屏幕的每個(gè)像素點(diǎn)的灰度值或顏色。灰度值表現(xiàn)為所顯示像素的亮暗差別,顏色則在彩色顯示器中表現(xiàn)為色彩?;叶群蜕手翟礁?/p>
5、,圖像層次越清楚逼真。像素越密,分辨率越高,圖像越清晰。以分辨率為 800×600,顏色 256種(需 8 位二進(jìn)制數(shù)表示)的增強(qiáng)型 VGA 顯卡為例,其顯示緩沖區(qū)至少為800×600×1Byte。1 顯示模式和字符屬性1顯示模式在文本方式和圖形方式下,顯示系統(tǒng)還可以工作在不同的分辨率和顏色下。可以通過系統(tǒng) BIOS 10H中斷的 0 號功能來設(shè)置。具體見表 1。表 1顯示模式模式號分辨率顏色數(shù)顯示方式調(diào)用方式0040×25 字符單色文本AH=000140×25 字符16 色文本AL=模式號0280×25 字符單色文本執(zhí)行 INT 1
6、0H30380×25 字符16 色文本04320×200 像素4 色圖形05320×200 像素單色圖形06640×200 像素單色圖形0780×25 字符單色文本0D320×200 像素16 色圖形0E640×200 像素16 色圖形0F640×350 像素單色圖形10640×350 像素16 色圖形11640×480 像素單色圖形12640×480 像素16 色圖形13320×200 像素256色圖形2字符的顯示屬性文本顯示模式下,字符顯示屬性確定了字符在屏幕上所顯示出來
7、的特點(diǎn),如是否加亮?前景和背景如何?等等。單色字符顯示屬性字節(jié)的各位功能,如圖1 所示。位:76543210閃爍背景(000=黑,111=白)亮度前景 (000=黑,111=白)0=不閃0=正常1=閃爍1=高亮度圖 1 單色字符的顯示屬性字節(jié)屬性可以有不同的組合,表 2 是一些單色顯示的屬性.表 2顏色屬性與取值的對應(yīng)關(guān)系屬性值顯示效果屬性值00000000無顯示0111000000000001黑底白字,下劃線1000011100000111黑底白字,正常顯示1111000000001111黑底白字,高亮度彩色字符顯示屬性字節(jié)的各位功能,如圖2 所示。顯示效果白底黑字,反相顯示黑底白字,閃爍顯
8、示白底黑字,反相閃爍4位:76543210BLRGBIRGB閃爍背景色前景色圖 2彩色顯示屬性字節(jié)屬性字節(jié)的低四位代表該字符的前景色(IRGB),它們與顏色的對應(yīng)關(guān)系見表 3。表 3彩色文本方式顏色顏色I(xiàn)RGB顏色I(xiàn)RGB顏色I(xiàn)RGB顏色I(xiàn)RGB黑0000灰1000紅0100淡紅1100藍(lán)0001淺藍(lán)1001洋紅0101淡洋紅 1101綠0010淺綠1010棕0110黃1110青0011淺青1011淺灰0111高亮白 11112 字符方式下的顯示緩沖區(qū)顯示存儲(chǔ)器是顯卡的一部分,它與普通內(nèi)存統(tǒng)一編址。8086/8088系列微機(jī)在設(shè)計(jì)時(shí)根據(jù)不同的顯卡將顯示緩沖區(qū)放在不同的位置。對CGA、EGA、V
9、GA 顯卡,顯存起始地址是 B800:0000H;對 MDA ,是 B000:0000H。每個(gè)字符的 ASCII 碼和屬性碼字節(jié)存放于連續(xù)的兩個(gè)字節(jié)中。在80×25 的文本顯示方式下,屏幕可有2000個(gè)字符位置,因每個(gè)字符需要兩個(gè)字節(jié)來表示,共需顯存 4KB(實(shí)際只使用 4000個(gè)字節(jié))。如果顯存有 16KB,則可保存 4 屏幕的字符數(shù)據(jù),通常稱為 4 頁數(shù)據(jù)。對 CGA、EGA、 VGA 的 80 列方式,0 頁在顯存中的起始地址是 B800:0000H,1 頁為 B800:1000H, 2 頁是 B800:2000H,3 頁是 B800:3000H。每個(gè)顯示頁的前 2000個(gè)字(
10、4000個(gè)字節(jié))與屏幕上的位置一一對應(yīng),存放一個(gè)字符的 ASCII 值及屬性值,對應(yīng)關(guān)系如圖 8.3所示。屏幕上某地字符位置在顯存中的偏移地址可由下列公式算出:Char_offset= Page_offset(row×width)+column)×byte在這個(gè)公式中,Page_offset是頁偏移地址,width 是每行可顯示的字符數(shù),在 25 ×80的字符顯示方式下,width=80,byte是表示一個(gè)字符所用的字節(jié)數(shù),在字符顯示方式中,byte=2,row 和 column是相對于屏幕左上角位置(0,0)的行列坐標(biāo)。3BIOS 顯示中斷BIOS 提供的 IN
11、T 10H 顯示中斷,除了 0 號功能設(shè)置顯示模式外(見表 2),還有5B800:0000H字符 ASCII0001H字符屬性0002H字符 ASCII0003H字符屬性0009EH字符 ASCII行009FH字符屬性至240F00H字符 ASCII行0F01H字符屬性0 列至 79列0F9EH字符 ASCII圖 3顯示存儲(chǔ)器與顯示屏上字符對應(yīng)關(guān)系以下一些功能調(diào)用。1光標(biāo)控制對光標(biāo)的控制僅在字符方式下有效(因?yàn)閳D形方式下無光標(biāo))。(1)改變光標(biāo)的大小功能號:AH=01H入口參數(shù):CH=光標(biāo)的開始行(04 位)CL=光標(biāo)的結(jié)束行號(04 位)(2)設(shè)置光標(biāo)位置功能號:AH=02H入口參數(shù):BH=
12、頁號(在當(dāng)前屏幕顯示時(shí),BH=0)DH=行號(Y 坐標(biāo))DL=列號(X 坐標(biāo))(3)讀光標(biāo)位置功能號:AH=03H入口參數(shù):BH=頁號出口參數(shù):CH=光標(biāo)的當(dāng)前行號CL=光標(biāo)的當(dāng)前列號DH=光標(biāo)的起始線DL=光標(biāo)的結(jié)束線6例 1 將光標(biāo)移至屏幕的中間位置顯示字符。分析:通常光標(biāo)的位置是隨著每一次顯示逐個(gè)向后移動(dòng)的,為了在屏幕的指定位置顯示字符,必須先將光標(biāo)移至該位置。若工作在顯示方式02,03(80×25 字符顯示方式),(0,0)是左上角坐標(biāo),(79,24)是右下角坐標(biāo)。程序如下:MOVAH,02HMOVBH,0MOVDH,12MOVDL,40INT10H2清屏和卷屏清屏是屏幕顯示
13、內(nèi)容清除。卷屏是指屏幕顯示內(nèi)容滾動(dòng)。分上滾和下滾兩種。(1)上滾:顯示內(nèi)容向上移動(dòng),底端插入空白行。功能號:AH=06H入口參數(shù):AL=滾動(dòng)行數(shù)(如 AL=0,則指定屏幕上為空白)BH=新插入行的字符屬性CH=滾動(dòng)的左上角行號CL=滾動(dòng)的左上角列號DH=滾動(dòng)的右下角行號DL=滾動(dòng)的右下角列號(2)下滾:顯示內(nèi)容向下移動(dòng),頂端插入空白行。功能號:AH=07H入口參數(shù):與上滾的入口參數(shù)相同清屏操作可通過這兩個(gè)操作進(jìn)行。當(dāng)AL 中的值為 0 時(shí)就是清屏。例 2清除全屏幕操作的子程序CLR PROCNEARPUSHAXPUSHBXPUSHCXPUSHDXMOVAH ,06H;6 號功能MOVAL,00
14、;指定屏幕內(nèi)容為空白,即清屏7MOVBH,07H;用正常顯示屬性為指定窗口清屏XORCX,CX;窗口的左上角坐標(biāo)為(0,0)MOVDX ,184FH;窗口的右下角坐標(biāo)為(24,79)INT10HMOVDX ,0;設(shè)置光標(biāo)于左上角MOVAH ,2INT10HPOPDXPOPCXPOPBXPOPAXRETCLRENDP3在指定的頁中顯示字符/字符串(1)選擇當(dāng)前顯示頁功能號:AH=05H入口參數(shù):AL=當(dāng)前顯示頁號注:對于不同的顯示方式,可用頁號范圍不同。(2)讀當(dāng)前顯示方式功能號:AH=0FH入口參數(shù):無出口參數(shù):BH=頁號AH=字符列數(shù)AL=顯示方式(3)在當(dāng)前光標(biāo)位置上寫字符功能號:AH=0
15、9H入口參數(shù):AL=字符的 ASCII 碼值BH=頁號BL=字符的屬性CX=寫入的字符個(gè)數(shù)注:0A 號功能與 09 號基本相同,僅不需設(shè)置字符的屬性。(4)在光標(biāo)位置處顯示字符串功能號:AH=13H入口參數(shù):ES=字符串所在段的段地址8BP=字符串首字節(jié)的偏移地址CX=字符串的字節(jié)長度DX=顯示字符串第一個(gè)光標(biāo)位置(DH:行號,DL:列號)BH=頁號AL=0 時(shí),字符串結(jié)構(gòu)為:字符,字符,顯示完后,光標(biāo)在字符串的第一個(gè)位置上。AL=1 時(shí),字符串結(jié)構(gòu)為:字符,字符,顯示完后,光標(biāo)在字符串的最后一個(gè)字符的下一個(gè)位置上。AL=2 時(shí),字符串結(jié)構(gòu)為:字符,屬性,字符,屬性,顯示完后,光標(biāo)在字符串的第
16、一個(gè)位置上。 AL=3 時(shí),字符串結(jié)構(gòu)為:字符,屬性,字符,屬性,顯示完后,光標(biāo)在字符串的最后一個(gè)字符的下一個(gè)位置上。例 3 在屏幕上以藍(lán)底紅字顯示字符串“HELLO”程序如下:STRINGDBHELLO NDB $STRINGMOVAL,3;設(shè)置顯示模式為 80*25 文本方式MOVAH ,0INT10HMOVAX ,SEG STRING;字符串段地址ESMOVES,AXMOVBP,PFFSET STRING;字符串首字符偏移地址BPMOVCX,N;N 個(gè)字符MOVDX ,0;從(0,0)處開始顯示MOVBL,14H;顯示字符屬性為藍(lán)底紅字MOVAL,0;字符串格式為:字符,字符,MOVAH
17、 ,13H;顯示字符串INT10H4圖形操作(1)設(shè)置彩色組或背景顏色功能號:AH=0BH9入口參數(shù):BH=0 時(shí),設(shè)置背景顏色;BH=1 時(shí),設(shè)置彩色組,即為顯示的像素點(diǎn)確定顏色組;BL=背景顏色(015)見表 4 或彩色組(01)。出口參數(shù):無表 4 圖形方式下背景顏色代碼數(shù)值顏色數(shù)值顏色數(shù)值顏色數(shù)值顏色00黑色04紅色08灰色0C淺紅色01藍(lán)色05絳色09淺藍(lán)色0D淺絳色02綠色06褐色0A淺綠色0E黃色03表色07淺灰0B淺青色0F白色(2)寫一個(gè)像素功能號:AH=0CH入口參數(shù):DX=行數(shù)(0199或 0479)CX=行數(shù)(0319或 0639)AL=彩色值(AL 的 D7 為“1”
18、,則采色值與當(dāng)前點(diǎn)內(nèi)容作“異或”運(yùn)算)出口參數(shù):無(3)讀一個(gè)像素功能號:AH=0DH入口參數(shù):DX=行數(shù)(0199或 0479)CX=行數(shù)(0319或 0639)出口參數(shù):AL=彩色值例 8.12 設(shè)置彩色圖形方式,在屏幕中央顯示一個(gè)帶條紋的矩形。背景顏色設(shè)置為黃色,矩形邊框設(shè)置為紅色,橫條顏色為綠色。程序如下:CODESEGMENTASSUMECS:CODESTART: MOVAH,0MOVAL,4;設(shè)置 320×200,4 色圖形方式INT10HMOVAH ,0BHMOVBH,0MOVBL,0EH;設(shè)置背景顏色為黃色I(xiàn)NT10H10MOVDX ,50;行號送 DX,列號送 CX
19、MOVCX,80MOVAL,2;選擇顏色為紅色CALLLINE1;調(diào)用子程序 LINE1,顯示矩形左邊框MOVDX ,50;修改行號、列號MOVCX,240CALLLINE1;調(diào)用子程序 LINE1,顯示矩形右邊框MOVDX ,50;修改行號、列號MOVCX,81MOVAL,2;選擇顏色為紅色CALLLINE2;調(diào)用子程序 LINE2,顯示矩形上邊框MOVDX ,150;修改行號、列號MOVCX,81CALLLINE2;調(diào)用子程序 LINE2,顯示矩形下邊框MOVDX ,60LP3:MOVCX,81;置矩形內(nèi)橫線初始位置MOVAL,1;選擇橫條顏色為綠色CALLLINE2;調(diào)用子程序 LINE
20、2,顯示綠色橫線ADDDX,10CMPDX ,150JBLP3;若行號小于 150,轉(zhuǎn) LP3 繼續(xù)顯示橫線MOVAH ,4CH;返回 DOSINT21HLINE1PROCNEAR;畫豎線子程序LP1:MOVAH ,0CH;寫點(diǎn)功能INT10HINCDX;下一點(diǎn)行號增 1CMPDX ,150JBELP1;若行號小于 150,則轉(zhuǎn) LP1 繼續(xù)顯示RETLINE1ENDPLINE2PROCNEAR;畫橫線子程序LP2:MOVAH ,0CH;寫點(diǎn)功能INT10H11INCCX;下一點(diǎn)列號增 1CMPCX,240;若列號小于 240,則轉(zhuǎn) LP2繼續(xù)顯示JBELP2RETLINE2 ENDPCODE
21、ENDSENDSTART4 動(dòng)畫程序?qū)崿F(xiàn)動(dòng)畫的過程一般為:先將圖形在起點(diǎn)顯示,延時(shí)一段時(shí)間,再擦除圖形,然后在新的位置顯示原圖形,再擦除圖形,如此反復(fù),形成圖形的運(yùn)動(dòng),即動(dòng)畫。擦除圖形,可以通過清除相應(yīng)部分屏幕來實(shí)現(xiàn),也可用空字符在原位置重寫來實(shí)現(xiàn)。例 5 在屏幕上顯示一運(yùn)動(dòng)的汽車。淺紅紅棕,閃爍程序如下:CODESEGMENTASSSUMECS:CODESTART:WRMACROCHA,ATR,NUM;定義一個(gè)宏 WRMOVAH,02H;設(shè)置光標(biāo)位置號INT10H; DH、DL 為行號、列號MOVAL,CHA;AL 中為顯示字符的 ASCII 碼值MOVCX,NUM;顯示字符個(gè)數(shù)MOVBL,
22、ATR;顯示字符的屬性MOVAH,09H;在當(dāng)前光標(biāo)位置寫字符INT10HENDMMOVAX ,0003H;屏幕顯示方式設(shè)置為 80×25 字符方式INT10HS1:MOVSI,0A00H;顯示起始坐標(biāo)為 10 行,0 列12S2:MOVDX ,SIWR0DBH,0CH,5;顯示第一排INCDH;指向下一排WR0DBH,4,7;顯示第二排INCDH;指向下一排INCDL;指向下一列WR09H,8EH,1;顯示第三排的第一個(gè)符號ADDDL,4WR09H,8EH,1;顯示第三排的第二個(gè)符號CALLDEALY;延時(shí)一段時(shí)間MOV DX ,SI;返回起始點(diǎn)WR0,0,5;清除第一排INCDH
23、WR0,0,7;清除第二排INCDHWR0,0,6;清除第三排MOVAH,1;讀鍵盤,判有無鍵按下?INT16HJZCONU;無鍵按下繼續(xù)轉(zhuǎn)下一列顯示MOVAH,4C;有鍵按下,返回 DOSINT21HCONU:INCSICMPSI,0A50H;是最后一列嗎?JBS3;不是,繼續(xù)轉(zhuǎn)下一列顯示JMPS1;是,從第一列開始重新顯示S3:JMPS2DELAYPROCMOVCX,0000H;延時(shí)子程序LOOP$RETDELAYENDPCODEENDSENDSTART5 圖形程序13BIOS 中斷調(diào)用中提供了一些讀/寫像素等功能,可以利用“INT 10H”調(diào)用有關(guān)功能實(shí)現(xiàn)屏幕繪圖。例 6 在屏幕上根據(jù)光
24、標(biāo)控制鍵繪圖,按Esc鍵,繪圖結(jié)束。分析:在屏幕上繪圖,可調(diào)用 BIOS 軟中斷 INT 10H 的 0CH 號功能,其作用是在屏幕上寫一個(gè)像素,即畫一個(gè)點(diǎn),再用鍵盤中斷讀光標(biāo)鍵的鍵值,根據(jù)鍵值修改像素的行列值,得到所需的圖形。程序如下:CODESEGMENTASSUMECS:CODESTART: MOVAH,00H;設(shè)置顯示模式為 VGA640×480MOV AL ,12HINT10HMOV CX,300;CX 為橫坐標(biāo)MOV DX ,240;DX 為縱坐標(biāo)WRITE:MOV AL ,0AH;設(shè)置點(diǎn)的顏色MOV AH ,0CH;寫一個(gè)像素INT10HMOVAH ,0;讀鍵盤按鍵值I
25、NT16HCMPAL,1BH;是 Esc 鍵嗎?JZEXIT;是,退出CMPAH ,48H;是“”鍵嗎?JNZNUP;不是,轉(zhuǎn)判斷是其它光標(biāo)鍵DECDX;是“”鍵,縱坐標(biāo)減 1JMPWRITE;轉(zhuǎn)至畫點(diǎn)NUP:CMPAH ,50H;是“”鍵嗎?JNZNDOWNINCDXJMPWRITENDOWN:CMPAH ,4DH;是“”鍵嗎?JNZNRIGHTINCCXJMPWRITENRIGHT:CMPAH ,4BH;是“”鍵嗎?14JNZNLEFTDECCXJMPWRITEEXIT:MOVAX ,0003H;恢復(fù)屏幕為字符顯示方式INT10HMOVAH ,4CH;返回 DOSINT21HCODEEND
26、SENDSTART7 樂曲程序:我們知道,樂曲是按照一定的高低、長短和強(qiáng)弱關(guān)系組成的音調(diào)。在一首樂曲中,每個(gè)音符的音高和音長與音頻和節(jié)拍有關(guān)。音符與音頻的關(guān)系如表1所示。表 5音符與音頻關(guān)系音符聲音頻率音符聲音頻率12625392229464403330749443491523而節(jié)拍是保持該聲音頻率的時(shí)間(音長)。八分音符為半拍,四分音符為一拍,二分音符為兩拍,全音符為四拍。如果全音符的持續(xù)時(shí)間為1s,那么八分音符就為0.125s,四分音符為0.25s,二分音符為0.5s。8086/8088微機(jī)驅(qū)動(dòng)揚(yáng)聲器發(fā)聲的硬件電路如圖1所示。欲使微機(jī)的揚(yáng)聲器能演奏樂曲,從該圖可知,必須給揚(yáng)聲器輸入指定頻率
27、和持續(xù)一定時(shí)間的脈沖。產(chǎn)生指PB0GATE2OUT2&8253定時(shí)器 2放大器PB1揚(yáng)聲器圖1揚(yáng)聲器工作硬件示意圖定頻率的脈沖除采用例7.1所示方法外,還可以采用另外一種方法:利用8253可編程定時(shí)器的通道2輸出不同頻率的脈沖信號。8253定時(shí)器通道2工作于計(jì)數(shù)方式,輸入15的計(jì)數(shù)脈沖其頻率為1192576Hz,設(shè)置計(jì)數(shù)初值為1192576/聲音頻率,那么8253通道2輸出的將是該聲音頻率的脈沖。控制8255A的PB端口的位1,使其置“1”,且保持其持續(xù)時(shí)間與該音符的音長相等。這樣脈沖經(jīng)放大后揚(yáng)聲器就能演奏樂曲了。例8 8253定時(shí)計(jì)數(shù)器產(chǎn)生指定頻率脈沖的子程序FREQPROCPUSH
28、AXPUSHDXPUSHDI;子程序的入口參數(shù),DI=聲音頻率MOVAL,0B6H;8253的工作方式OUT43H,ALMOVDX ,12H;DX:AX 內(nèi)容1192576作為被除數(shù)MOVAX ,3480HDIVDIOUT42H,AL;AX 作為商,先送AL至計(jì)數(shù)器MOVAL,AH;再送AH至計(jì)數(shù)器OUT42H,ALPOPDIPOPDXPOPAXRETFREQENDP而持續(xù)時(shí)間可由兩種方法實(shí)現(xiàn)。一種是利用CPU執(zhí)行循環(huán)指令來產(chǎn)生延遲時(shí)間,如:MOVCX,NDELAY : LOOPDELAY但對于8086、80286、80386、80486、pentium芯片來說,同一指令執(zhí)行的時(shí)間是不一樣的,
29、因而它們產(chǎn)生的時(shí)間延遲也是不一樣,很難在不同型號計(jì)算機(jī)得到相同的延遲時(shí)間??梢圆捎昧硪环N方法:利用硬件產(chǎn)生時(shí)間延遲。我們知道微機(jī)硬件61H端口的PB4,每隔15.8us觸發(fā)一次(與硬件型號無關(guān)),監(jiān)控該位的變化從而產(chǎn)生準(zhǔn)確的時(shí)間延遲。例9硬件產(chǎn)生10ms的延遲子程序:DELAYPROCPUSHAXPUSHCX16MOVCX,663;663*15.08=10000us=10msLOP1:INAL,61H;讀入PB口ANDAL,10H;檢查PB1CMPAL,AHJELOP1;有變化嗎?MOVAH ,ALLOOPLOP1POPCXPOPAXRETDELAYENDP有了上述延時(shí)子程序,延時(shí)1s可用下列語句實(shí)現(xiàn):MOVBX ,100WAI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版歷史與社會(huì)七年級上冊第三單元第四節(jié)課《草原人家》說課稿2
- 2025年度鮮活農(nóng)產(chǎn)品交易合同協(xié)議范本2篇
- 2025年度股權(quán)投資與收購合同:互聯(lián)網(wǎng)科技公司3篇
- 第8單元 教學(xué)初探2024-2025學(xué)年三年級語文上冊同步說課稿(統(tǒng)編版)
- 2025年房產(chǎn)與車庫交易協(xié)議3篇
- 7健康看電視(說課稿)-部編版道德與法治四年級上冊
- Review A Music Show (說課稿)-2024-2025學(xué)年教科版(2024)英語三年級上冊
- 第六單元名著導(dǎo)讀《鋼鐵是怎樣煉成的》說課稿-2023-2024學(xué)年統(tǒng)編版語文八年級下冊
- 個(gè)性化協(xié)議關(guān)系證明模板2024年版版A版
- 臨時(shí)工作協(xié)議(2024年)
- 建設(shè)工程質(zhì)量檢測檢測計(jì)劃
- 安全生產(chǎn)法律法規(guī)匯編(2025版)
- 2025年抗肺纖維化藥物市場分析報(bào)告
- 銀行會(huì)計(jì)主管年度工作總結(jié)2024(30篇)
- 教師招聘(教育理論基礎(chǔ))考試題庫(含答案)
- 上海市12校2025屆高三第一次模擬考試英語試卷含解析
- 三年級數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案集錦
- 長亭送別完整版本
- 《鐵路軌道維護(hù)》課件-更換道岔尖軌作業(yè)
- 股份代持協(xié)議書簡版wps
- 職業(yè)學(xué)校視頻監(jiān)控存儲(chǔ)系統(tǒng)解決方案
評論
0/150
提交評論