計算機應用專業(yè)數據庫技術教學大綱_第1頁
計算機應用專業(yè)數據庫技術教學大綱_第2頁
計算機應用專業(yè)數據庫技術教學大綱_第3頁
計算機應用專業(yè)數據庫技術教學大綱_第4頁
計算機應用專業(yè)數據庫技術教學大綱_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、計算機應用專業(yè)數據庫技術教 學大綱匯編語言程序設計(實踐)課程教學大綱一、課程的性質和任務課程性質:匯編語言程序設計(實踐)是計算機類專業(yè)計算機組成與匯 編課程的后續(xù)課程設計課程。本課程的任務是:通過課程設計,為學生提供一個既動手又動腦,獨立實踐的機 會,將課本上的理論知識和實際有機的結合起來,鍛煉學生的分析解決實際問題的能 力。提高學生實際編程的能力。本課程教學應達到的基本要求是:利用學到的編程知識和編程技巧,通過布置具 有一定難度的程序設計題目,幫助學生熟悉程序的設計、編寫與調試過程。二、時間安排本課程設計時間為一周(28學時),題目提前兩周布置,使學生作好準備。具 體時間安排如下:1分析

2、設計準備階段(周一)2編程調試階段(周二至周四)3總結報告和書寫說明書階段(周三至周四)4.考核階段(周五)三、課題內容:提供以下備選課題:1. 動畫程序2圖形程序3. 樂曲演奏程序四、組織管理:對學生分組,每組12人,每組必須完成以上1 3或2、3兩題。五、考核評估:成績分優(yōu)、良、及格和不及格四等,從以下幾方面考核:1程序設計的可用性,實用性,通用性,可擴充性(40%2學生的動手能力,創(chuàng)新精神(30%3總結報告(10%4. 答辯水平(20%主編:王富榮主審:姚培華24附錄匯編語言程序設計(實踐)課程補充知識8086/8088微機的顯示系統(tǒng)由顯卡(又稱顯示適配器)和顯示器組成。顯卡是計 算機和

3、顯示器之間的接口,根據所能顯示的顏色和分辨率,顯卡可分為MDA、CGA、 EGA、VGA等多種。顯卡又由顯示控制器和顯示存儲器(顯存,又稱顯示緩沖區(qū), 與系統(tǒng)RAM統(tǒng)一編址)組成。顯示控制器可通過系統(tǒng)對其進行編程,設定相應的工 作方式,這樣我們通過數據傳送指令往顯示緩沖區(qū)內傳送數據,相應的內容就會立即 顯示在屏幕上。顯示方式分為文本方式和圖形方式。文本顯示方式是將顯示器的屏幕劃分為行和 列的二維系統(tǒng),在行列組成的網格位置上顯示字符。規(guī)定行和列的起始點為屏幕的左 上角。以80(列)X25(行)為例,即一行顯示80個字符,共25行,左上角為座標 (0, 0),右下角座標為(24, 79)。在這種顯

4、示方式中,通常顯示緩沖區(qū)的每兩個 單元對應屏幕上的一個字符,一個字節(jié)存放字符的ASCII碼,緊接著的一個字節(jié)存放 該字符的顯示屬性(如加亮、閃爍或反底顯示等),共需顯示緩沖區(qū)為80X25X 2=4000Byte文本顯示方式占用內存少,顯示速度快,但只能顯示字符。圖形顯示方式下,顯示的單位是屏幕上的圖象點(像素)。屏幕按分辨率分成像 素行和列。例如800X 600的顯示分辨率,說明一行可顯示800個像素點,共600行。 顯示的每個像素有其顯示屬性(灰度值或顏色)。顯示緩沖區(qū)對應存放著屏幕的每個 像素點的灰度值或顏色。灰度值表現為所顯示像素的亮暗差別,顏色則在彩色顯示器 中表現為色彩?;叶群蜕手?/p>

5、越高,圖像層次越清楚逼真。像素越密,分辨率越高, 圖像越清晰。以分辨率為800X 600,顏色256種(需8位二進制數表示)的增強型 VGA顯卡為例,其顯示緩沖區(qū)至少為800X 600X 1Byteo1顯示模式和字符屬性1 .顯示模式在文本方式和圖形方式下,顯示系統(tǒng)還可以工作在不同的分辨率和顏色下??梢?通過系統(tǒng)BIOS 10H中斷的0號功能來設置。具體見表1o表1顯示模式模式號分辨率顏色數顯示方式調用方式0040X 25字符單色文本AH=000140X 25字符16色文本AL=模式號0280X 25字符單色文本執(zhí)行INT 10H0380X 25字符16色文本04320X 200 像素4色圖形

6、05320X 200 像素單色圖形06640X 200 像素單色圖形0780X 25字符單色文本0D320X 200 像素16色圖形0E640X 200 像素16色圖形0F640X 350 像素單色圖形10640X 350 像素16色圖形11640X 480 像素單色圖形12640X 480 像素16色圖形13320X 200 像素256色圖形2 字符的顯示屬性文本顯示模式下,字符顯示屬性確定了字符在屏幕上所顯示出來的特點,如是否 加亮?前景和背景如何?等等。單色字符顯示屬性字節(jié)的各位功能,如圖1所示。位:765/閃爍背景(000=1,111=白)亮度 前景(000=黑,111=白)0=不閃0

7、=正常仁閃爍1= 高亮度圖1單色字符的顯示屬性字節(jié)彩色字符顯示屬性字節(jié)的各位功能,如圖2所示屬性可以有不同的組合,表2是一些單色顯示的屬性.屬性值顯示效果屬性值顯示效果00000000無顯示01110000白底黑字,反相顯示00000001黑底白字,下劃線10000111黑底白字,閃爍顯示00000111黑底白字,正常顯示11110000白底黑字,反相閃爍00001111黑底白字,高亮度表2顏色屬性與取值的對應關系O位:76543圖2彩色顯示屬性字節(jié)屬性字節(jié)的低四位代表該字符的前景色(IRGB),它們與顏色的對應關系見表3。表3彩色文本方式顏色顏色IRGB顏色IRGB顏色IRGB顏色IRGB黑

8、0000灰1000紅0100淡紅1100藍0001淺藍1001洋紅0101淡洋紅1101綠0010淺綠1010棕0110黃1110青0011淺青1011淺灰0111高亮白11112字符方式下的顯示緩沖區(qū)顯示存儲器是顯卡的一部分,它與普通內存統(tǒng)一編址。8086/8088系列微機在設 計時根據不同的顯卡將顯示緩沖區(qū)放在不同的位置。對CGA、EGA、VGA顯卡,顯 存起始地址是B800: 0000H;對MDA,是B000 000014 每個字符的ASCII碼和 屬性碼字節(jié)存放于連續(xù)的兩個字節(jié)中。在80X25的文本顯示方式下,屏幕可有2000 個字符位置,因每個字符需要兩個字節(jié)來表示,共需顯存4KB

9、(實際只使用4000個 字節(jié))。如果顯存有16KB,則可保存4屏幕的字符數據,通常稱為4頁數據。對CGA、 EGA、VGA的80列方式,0頁在顯存中的起始地址是B800: 0000H, 1頁為B800: 1000H, 2 頁是 B800: 2000H, 3 頁是 B800: 3000H每個顯示頁的前2000個字(4000個字節(jié))與屏幕上的位置對應,存放一個 字符的ASCII值及屬性值,對應關系如圖8.3所示。屏幕上某地字符位置在顯存中的偏移地址可由下列公式算出:Char_offset= Page_offset (row X width) +column)x byte在這個公式中,Page_of

10、fse是頁偏移地址,width是每行可顯示的字符數,在25 x 80的字符顯示方式下,width=80,byte是表示一個字符所用的字節(jié)數,在字符顯 示方式中,byte=2, row和column是相對于屏幕左上角位置(0,0)的行列坐標3 BIOS顯示中斷B800:0000H0001H0002H0003H009EH009FH0F00H0F01H0F9EH0F9FHBIOS提供的INT 10H顯示中斷,除了 0號功能設置顯示模式外(見表2),還 有以下一些功能調用。1.光標控制 對光標的控制僅在字符方式下有效(因為圖形方式下無光標)。(1)改變光標的大小功能號:AH=01H入口參數:CH=光標

11、的開始行(04位)CL=光標的結束行號(04位)(2)設置光標位置功能號:AH=02H入口參數:BH=頁號(在當前屏幕顯示時,BH=0)DH=行號(丫坐標) DL=列號(X坐標)(3)讀光標位置功能號:AH=03H入口參數:BH=頁號出口參數:CH=光標的當前行號CL=光標的當前列號DH=光標的起始線DL=光標的結束線例1將光標移至屏幕的中間位置顯示字符。分析:通常光標的位置是隨著每一次顯示逐個向后移動的,為了在屏幕的指定位 置顯示字符,必須先將光標移至該位置。若工作在顯示方式02, 03 (80X 25字符顯 示方式),(0, 0)是左上角坐標,(79, 24)是右下角坐標。程序如下:MOV

12、 AH , 02HMOVBH, 0MOVDH , 12MOVDL, 40INT10H2. 清屏和卷屏清屏是屏幕顯示內容清除。卷屏是指屏幕顯示內容滾動。分上滾和下滾兩種。(1)上滾:顯示內容向上移動,底端插入空白行。功能號:AH=06H入口參數:AL=滾動行數(如AL=0,則指定屏幕上為空白)BH=新插入行的字符屬性CH二滾動的左上角行號CL=滾動的左上角列號DH=滾動的右下角行號DL=滾動的右下角列號(2)下滾:顯示內容向下移動,頂端插入空白行。功能號:AH=07H入口參數:與上滾的入口參數相同清屏操作可通過這兩個操作進行。當AL中的值為0時就是清屏。例2 清除全屏幕操作的子程序;6號功能CL

13、RPROC NEARPUSHAXPUSHBXPUSHCXPUSH DXMOVAH , 06HMOVAL, 00;指定屏幕內容為空白,即清屏MOVBH, 07H;用正常顯示屬性為指定窗口清屏XORCX,CX;窗口的左上角坐標為(0, 0)MOVDX,184FH;窗口的右下角坐標為(24, 79)INT10HMOVDX,0;設置光標于左上角MOV AH,2INT10HPOP DXPOP CXPOP BXPOP AXRETCLR ENDP3. 在指定的頁中顯示字符7字符串(1) 選擇當前顯示頁功能號:AH=05H入口參數:AL=當前顯示頁號 注:對于不同的顯示方式,可用頁號范圍不同。(2) 讀當前顯

14、示方式功能號:AH=0FH入口參數:無出口參數:BH=頁號AH=字符列數AL=顯示方式(3) 在當前光標位置上寫字符功能號:AH=09H入口參數:AL=字符的ASCII碼值BH=頁號BL=字符的屬性。乂=寫入的字符個數注:0A號功能與09號基本相同,僅不需設置字符的屬性。(4) 在光標位置處顯示字符串功能號:AH=13H入口參數:ES*符串所在段的段地址BP二字符串首字節(jié)的偏移地址CX=字符串的字節(jié)長度DX=顯示字符串第一個光標位置(DH :行號,DL:列號)BH=頁號AL=0時,字符串結構為:字符,字符, 顯示完后,光標在字符串的第一個位置上。AL=1時,字符串結構為:字符,字符,顯示完后,

15、光標在字符串的最后一個字符的下一個位置上。AL=2時,字符串結構為:字符,屬性,字符,屬性, 顯示完后,光標在字符串的第一個位置上。AL=3時,字符串結構為:字符,屬性,字符,屬性,顯示完后,光標在字符串的最后一個字符的下一個位置 上。例3在屏幕上以藍底紅字顯示字符串“HELLO ”程序如下:STRINGNDB 'HELLO 'DB $STRINGMOVAL,3;設置顯示模式為80*25文本方式MOVAH,0INT10HMOVAX,SEG STRING;字符串段地址-ESMOVES,AXMOVBP,PFFSET STRING;字符串首字符偏移地址-BPMOVCX,N;N個字符M

16、OVDX,0;從(0,0)處開始顯示MOVBL,14H;顯示字符屬性為藍底紅字MOVAL,0;字符串格式為:字符,字符,MOVAH,13H;顯示字符串INT10H4圖形操作(1)設置彩色組或背景顏色功能號:AH=OBH入口參數:BH=O時,設置背景顏色;BH=1時,設置彩色組,即為顯示的像素點確定顏色組;BL=背景顏色(015見表4或彩色組(01)。出口參數:無表4圖形方式下背景顏色代碼數值顏色數值顏色數值顏色數值顏色00黑色04紅色08灰色0C淺紅色01藍色05絳色09淺藍色0D淺絳色02綠色06褐色0A淺綠色0E黃色03表色07淺灰0B淺青色0F白色(2)寫一個像素功能號:AH=OCH入口

17、參數:DX=行數(0199或0479CX二行數(0319或 0639AL=彩色值(AL的D7為“1”,則采色值與當前點內容作“異或”運 算)出口參數:無(3)讀一個像素功能號:AH=0DH入口參數:DX=行數(0199或0479CX二行數(0319或 0639出口參數:AL=彩色值例8.12設置彩色圖形方式,在屏幕中央顯示一個帶條紋的矩形。背景顏色設置 為黃色,矩形邊框設置為紅色,橫條顏色為綠色。程序如下:CODE SEGMENTASSUME CS: CODESTART: MOVAH,0MOVAL,4;設置320X 200, 4色圖形方式INT10HMOVAH,0BHMOVBH,0MOV BL

18、, OEH;設置背景顏色為黃色INT10HLINE2 PROC NEAR;畫橫線子程序MOVCX,80MOVAL,2;選擇顏色為紅色CALLLINE1;調用子程序LINE1,顯示矩形左邊框MOVDX,50;修改行號、列號MOVCX,240CALLLINE1;調用子程序LINE1,顯示矩形右邊框MOVDX,50;修改行號、列號MOVCX,81MOVAL,2;選擇顏色為紅色CALLLINE2;調用子程序LINE2,顯示矩形上邊框MOVDX,150;修改行號、列號MOVCX,81CALLLINE2;調用子程序LINE2,顯示矩形下邊框MOVDX,60LP3:MOVCX,81;置矩形內橫線初始位置MO

19、VAL,1;選擇橫條顏色為綠色CALLLINE2;調用子程序LINE2,顯示綠色橫線ADDDX,10CMPDX,150JBLP3;若行號小于150,轉LP3繼續(xù)顯示橫線MOVAH,4CH;返回DOSINT21HLINE1 PROCNEAR;畫豎線子程序LP1 :MOVAH,0CH;寫點功能INT10HINCDX;下一點行號增1CMPDX,150JBELP1;若行號小于150,則轉LP1繼續(xù)顯示RETMOV DX, 50;行號送DX,列號送CXLINE1ENDPLP2 :MOVINTINCAH,0CH10HCX;寫點功能;下一點列號增1CMPCX,240;若列號小于240,則轉LP2繼續(xù)顯示JB

20、ELP2RETLINE2ENDPCODEENDSEND START4動畫程序實現動畫的過程一般為:先將圖形在起點顯示,延時一段時間,再擦除圖形,然 后在新的位置顯示原圖形,再擦除圖形,如此反復,形成圖形的運動,即動畫。擦除圖形,可以通過清除相應部分屏幕來實現,也可用空字符在原位置重寫來實 現。例5在屏幕上顯示一運動的汽車。r-*匸匚匚匚.匚匚匚.匚匚匚.匚匚匚.匚匚匚.、/二I FFFPFFFPFFFPFFFPFFFFJI- I匸匚匚匚匚匚匚匚匚匚匚匚匚匚匚匚.|二” I J J J J J J J J J j j j j j j jI / 1J紅O Oj棕,閃爍程序如下:CODE SEGME

21、NTASSSUME CS: CODESTART:WRMACROCHA,ATR,NUMMOVAH,02HINT10HMOVAL,CHAMOVCX,NUMMOVBL,ATRMOVAH,09HINT10HENDMMOVAX,0003H;定義一個宏WR;設置光標位置號;DH、DL為行號、列號;AL中為顯示字符的ASCII碼值;顯示字符個數;顯示字符的屬性;在當前光標位置寫字符;屏幕顯示方式設置為80X 25字符方式INT10HS1:MOVSI, 0A00H;顯示起始坐標為10行,0列S2:MOVDX , SIWR0DBH , 0CH, 5;顯示第一排INCDH;指向下一排WR0DBH , 4, 7;顯

22、示第二排INCDH;指向下一排INCDL;指向下一列WR09H, 8EH, 1;顯示第三排的第一個符號ADDDL , 4WR09H, 8EH, 1;顯示第三排的第二個符號CALLDEALY;延時一段時間MOV DX, SI;返回起始點WR0, 0, 5;清除第一排INCDHWR0, 0, 7;清除第二排INCDHWR0, 0, 6;清除第三排MOVAH , 1;讀鍵盤,判有無鍵按下?INT16HJZCONU;無鍵按下繼續(xù)轉下一列顯示MOVAH , 4C;有鍵按下,返回DOSINT21HCONU :INCSICMPSI , 0A50H;是最后一列嗎?JBS3;不是,繼續(xù)轉下一列顯示JMPS1;是

23、,從第一列開始重新顯示S3:JMPS2DELAYPROCMOVCX , 0000H;延時子程序LOOP$RETDELAYENDPCODE ENDSEND START5圖形程序BIOS中斷調用中提供了一些讀/寫像素等功能,可以利用“INT 10H”調用有關 功能實現屏幕繪圖。例6在屏幕上根據光標控制鍵繪圖,按Esc鍵,繪圖結束。分析:在屏幕上繪圖,可調用BIOS軟中斷INT 10H的0CH號功能,其作用是 在屏幕上寫一個像素,即畫一個點,再用鍵盤中斷讀光標鍵的鍵值,根據鍵值修改像 素的行列值,得到所需的圖形。程序如下:CODESEGMENTASSUMECS: CODESTART:MOV AH,0

24、0H;設置顯示模式為VGA640X 480MOVAL,12HINT10HMOVCX,300;CX為橫坐標MOVDX,240;DX為縱坐標WRITE :MOVAL,0AH;設置點的顏色MOVAH,0CH;寫一個像素INT10HMOVAH,0;讀鍵盤按鍵值INT16HCMPAL,1BH;是Esc鍵嗎?JZEXIT;是,退岀CMPAH,48H;是“忙鍵嗎?JNZNUP;不是,轉判斷是其它光標鍵DECDX;是“匸”鍵,縱坐標減1JMPWRITE;轉至畫點NUP:CMPAH,50H;是“廠鍵嗎?JNZNDOWNINCDXJMPWRITENDOWN :CMPAH,4DH;是“7”鍵嗎?JNZNRIGHTI

25、NCCXJMPWRITENRIGHT :CMPAH,4BHJNZNLEFTDECCXJMPWRITEEXIT :MOVAX,0003HINT10HMOVAH,4CHINT21HCODEENDSENDSTART;是“”鍵嗎?;恢復屏幕為字符顯示方式;返回DOS7樂曲程序:我們知道,樂曲是按照一定的高低、長短和強弱關系組成的音調。在一首樂曲 中,每個音符的音高和音長與音頻和節(jié)拍有關。音符與音頻的關系如表1所示。表5音符與音頻關系音符聲音頻率音符聲音頻率12625392229464403330749443491523而節(jié)拍是保持該聲音頻率的時間(音長)。八分音符為半拍,四分音符為一拍, 二分音符為兩

26、拍,全音符為四拍。如果全音符的持續(xù)時間為S,那么八分音符就為 0.125s四分音符為0.25s二分音符為0.5s。8086/808微機驅動揚聲器發(fā)聲的硬件電路如圖1所示。欲使微機的揚聲器能演 奏樂曲,從該圖可知,必須給揚聲器輸入指定頻率和持續(xù)一定時間的脈沖。產生指圖1揚聲器工作硬件示意圖定頻率的脈沖除采用例7.1 所示方法外,還可以采用另外一種方法:利用825列編程 定時器的通道2輸出不同頻率的脈沖信號。8253定時器通道2工作于計數方式,輸入 的計數脈沖其頻率為1192576Hz設置計數初值為1192576聲音頻率,那么8253通 道2輸出的將是該聲音頻率的脈沖??刂?255A勺PB端口的位

27、1,使其置“1”,且 保持其持續(xù)時間與該音符的音長相等。這樣脈沖經放大后揚聲器就能演奏樂曲了。例88253定時計數器產生指定頻率脈沖的子程序FREQPROCPUSHAXPUSHDXPUSHDI;子程序的入口參數,DI=聲音頻率MOVAL,0B6H;8253勺工作方式OUT43H,ALMOVDX,12H;DX: AX內容119257作為被除數MOVAX,3480HDIVDIOUT42H,AL;AX作為商,先送AL至計數器MOVAL,AH;再送AH至計數器OUT42H,ALPOPDIPOPDXPOPAXRETFREQENDP而持續(xù)時間可由兩種方法實現。一種是利用CPU執(zhí)行循環(huán)指令來產生延遲時 間,

28、如:MOV CX, NDELAY : LOOPDELAY但對于8086 80286 80386 80486 pentium芯片來說,同一指令執(zhí)行的時間 是不一樣的,因而它們產生的時間延遲也是不一樣,很難在不同型號計算機得到相 同的延遲時間。可以采用另一種方法:利用硬件產生時間延遲。我們知道微機硬件 61H端口的PB4,每隔15.8u觸發(fā)一次(與硬件型號無關),監(jiān)控該位的變化從而產 生準確的時間延遲。例9硬件產生10ms的延遲子程序:DELAYPROCPUSHPUSHMOVAXCXCX,663;663*15.08=10000us=10msLOP1 :INAL,61H;讀入PB 口ANDAL,10H;檢查PB1CMPAL,AHJELOP1;有變化嗎?MOVAH

溫馨提示

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

評論

0/150

提交評論