川大計(jì)算機(jī)綜合實(shí)踐[共19頁]

上傳人:gfy****yf 文檔編號(hào):41398284 上傳時(shí)間:2021-11-20 格式:DOC 頁數(shù):19 大小:51.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
川大計(jì)算機(jī)綜合實(shí)踐[共19頁]_第1頁
第1頁 / 共19頁
川大計(jì)算機(jī)綜合實(shí)踐[共19頁]_第2頁
第2頁 / 共19頁
川大計(jì)算機(jī)綜合實(shí)踐[共19頁]_第3頁
第3頁 / 共19頁

下載文檔到電腦,查找使用更方便

12 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《川大計(jì)算機(jī)綜合實(shí)踐[共19頁]》由會(huì)員分享,可在線閱讀,更多相關(guān)《川大計(jì)算機(jī)綜合實(shí)踐[共19頁](19頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、word格式整理版四川大學(xué)網(wǎng)絡(luò)教育學(xué)院計(jì)算機(jī)綜合實(shí)踐校外學(xué)習(xí)中心: 綿陽廣播電視大學(xué) 學(xué) 生 姓 名: 張潤 專 業(yè): 電氣工程及其自動(dòng)化 層 次: 專升本 年 級(jí): 14 秋 學(xué) 號(hào): DH114244008 實(shí) 踐 時(shí) 間:2016年3月20日 實(shí)驗(yàn)?zāi)康?. 了解并逐步熟悉匯編語言的編輯方法及特點(diǎn).2. 復(fù)習(xí)8088匯編語言的段結(jié)構(gòu)、常用的指令與偽指令、存儲(chǔ)空間的分配等。3. 掌握匯編語言的編輯、匯編及連接的過程。4. 了解并逐步掌握運(yùn)用DEBUG進(jìn)行調(diào)試匯編語言程序。5. 借助DEBUG調(diào)試工具來發(fā)現(xiàn)匯編語言程序的錯(cuò)誤所在并加以改正。實(shí)驗(yàn)內(nèi)容算法與流程圖程序清單運(yùn)行結(jié)果調(diào)試分析和體會(huì)1、

2、 進(jìn)入DEBUG方法1:在Windows開始菜單中單擊運(yùn)行命令,直接在運(yùn)行對(duì)話框中輸入"DEBUG"方法2:在運(yùn)行對(duì)話框中輸入"CMD"啟動(dòng)DOS命令窗口后輸入"DEBUG"方法3:在程序、附件、命令提示符,啟動(dòng)DOS命令窗口后輸入"DEBUG"2、DEBUG命令格式DEBUG的每個(gè)命令都是一個(gè)字母,后跟一個(gè)或多個(gè)參數(shù)。下面對(duì)DEBUG命令作幾點(diǎn)說明。·字母不分大小寫。·只使用16進(jìn)制數(shù),且不能帶后綴H。·以空格或逗號(hào)作為命令各項(xiàng)之間的分隔符。分隔符只在兩個(gè)數(shù)值之間是必須的。·

3、;可以用Ctrl-C或Ctrl-Break終止命令的執(zhí)行。·若輸入的命令有語法錯(cuò)誤,則提示“Error”,并用“”指出錯(cuò)誤位置。3、 常用的Debug功能用Debug的R命令查看、改變CPU寄存器的內(nèi)容;用Debug的D命令查看內(nèi)存中的內(nèi)容;用Debug的E命令改寫內(nèi)存中的內(nèi)容;用Debug的U命令將內(nèi)存中的機(jī)器指令翻譯成匯編指令; 用Debug的T命令執(zhí)行一條機(jī)器指令用Debug的A命令以匯編指令的格式在內(nèi)存中寫了一條機(jī)器指令4、 用Debug的R命令查看、改變CPU寄存器的內(nèi)容;R命令用來顯示和修改寄存器的值,包括以下兩種格式。(1) R顯示所有寄存器和8個(gè)標(biāo)志位的值,并反匯編C

4、S:IP所指的指令。(2) R<寄存器名>顯示指定寄存器的值,并等待用戶鍵入新的值,按回車鍵結(jié)束R命令。5、 用Debug的D命令查看內(nèi)存中的內(nèi)容;D命令可以查看內(nèi)存中的內(nèi)容,D命令的格式較多,只介紹本次實(shí)驗(yàn)中用到的格式,8086/8088CPU能夠訪問1M內(nèi)容,D命令可以顯示0000:0000H-FFFF:FFFFH中的任何一個(gè)單元的內(nèi)存如果想知道內(nèi)存10000H處的內(nèi)容,可以用"d 段地址:偏移地址"的格式來查看,如輸入-d 1000:0使用 d 1000:9查看1000:9處的內(nèi)容。使用 d 1000:0 9查看1000:0-1000:9的內(nèi)容一進(jìn)入Deb

5、ug,可直接使用D命令直接查看,將列出Debug預(yù)設(shè)的地址處的內(nèi)容6、 用Debug的E命令改寫內(nèi)存中的內(nèi)容;使用"e 起始地址 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù)."的格式來進(jìn)行如將內(nèi)存1000:0-1000:9單元中的內(nèi)容分別寫為0、1、2、3、4、5、6、7、8、9-e 1000:0 0 1 2 3 4 5 6 7 8 9也可以采用提問方式一個(gè)一個(gè)修改內(nèi)存中的內(nèi)容,如輸入e 1000:0,按Enter鍵 輸入修改的數(shù)據(jù),再按空格鍵輸入下一個(gè)要修改的數(shù)據(jù),最后Enter鍵結(jié)束操作。輸入字符串的格式:如-e 1000:10 1 'a' 2 "c+" 3

6、"IBM"將輸入1 a 2 c+ 3 IBM到相應(yīng)單元向內(nèi)容中寫入機(jī)器碼,如 b80100 (代表 mov ax, 0001), b90200(代表 mov cx, 002), 01c8(代表 add ax, cx),那么輸入-e 1000:0 b8 01 00 b9 02 00 01 c8就將該程序輸入內(nèi)容1000:0處,然后使用u命令-u 1000:0可以將內(nèi)存單元中的內(nèi)容翻譯成匯編指令。如果要執(zhí)行該程序,首先用r命令將cs修改成1000,ip修改成0,再執(zhí)行t命令,單步執(zhí)行程序。執(zhí)行T命令時(shí),CPU執(zhí)行CS:IP執(zhí)行的指令并將IP加1.7、 用Debug的A命令以匯編

7、指令的形式在內(nèi)存中寫了機(jī)器指令 示例:用A命令,輸入下列程序并運(yùn)行-a 1000:0mov ax, 1mov bx, 2mov cx, 3add ax, bxadd ax, cxadd ax, ax直接按Enter鍵結(jié)果輸入。用r命令將cs修改成1000,ip修改成0,再執(zhí)行t命令,單步執(zhí)行程序。執(zhí)行T命令時(shí),CPU執(zhí)行CS:IP執(zhí)行的指令并將IP加1.實(shí)驗(yàn)二 設(shè)計(jì)匯編語言程序一 實(shí)驗(yàn)題目 設(shè)計(jì)匯編語言程序二 實(shí)驗(yàn)日期:2010/04/10三 實(shí)驗(yàn)?zāi)康淖址y(tǒng)計(jì)程序設(shè)計(jì)雙字乘法程序設(shè)計(jì)四 實(shí)驗(yàn)內(nèi)容1 字符串統(tǒng)計(jì)。在數(shù)據(jù)段中建立一個(gè)緩沖區(qū)BUFFER,變量VER,編程使得程序具有如下功能:從鍵盤

8、輸入一個(gè)子字符串存入VER,從鍵盤輸入包含一個(gè)或幾個(gè)子字符串的字符串存入BUFFER。統(tǒng)計(jì)BUFFER中的字符串含有多少個(gè)子字符串以及每個(gè)子字符串的位置。2 雙字乘法程序。設(shè)計(jì)一個(gè)程序?qū)崿F(xiàn)32位帶符號(hào)雙精度數(shù)乘法運(yùn)算。由于只有8位和16位的乘法指令。因此32位乘法運(yùn)算是不能直接用指令實(shí)現(xiàn)的。但可以用16位乘法指令,通過 4次想乘然后把部分積想加。對(duì)于帶符號(hào)數(shù),可以先根據(jù)絕對(duì)值求得積。然后判斷積的符號(hào),若積為負(fù)數(shù),應(yīng)將其用補(bǔ)碼表示。五、 程序設(shè)計(jì)1、字符串統(tǒng)計(jì)程序設(shè)計(jì)#include<iostream>usingnamespacestd;;intmain();chara;intb=0

9、,c=0,d=0,e=0;cout<<"請(qǐng)輸入一行任;a=cin.get();;while(a!='n');if(a<0|a>=128);b+;;elseif(a>='a'&&am;c+;;elseif(a='');d+using namespace std;int main()char a;int b=0,c=0,d=0,e=0,f=0;cout<<"請(qǐng)輸入一行任意字符:"a=cin.get();while(a!='n')if(a<0|

10、a>=128)b+;else if(a>='a'&&a<='z'|a>='A'&&a<='Z')c+;else if(a=' ')d+;else if(a>='0'&&a<='9')e+;else f+;a=cin.get();cout<<"總共有"<<b/2+c+d+e+f<<"個(gè)字符:"<<endl;co

11、ut<<"中文"<<"t"<<"英文"<<"t"<<"空格"<<"t"<<"數(shù)字"<<"t"<<"其他"<<endl;cout<<b/2<<"t"<<c<<"t"<<d<<"t&

12、quot;<<e<<"t"<<f<<endl;return 0;分別統(tǒng)計(jì)出英文字母,空格,數(shù)字和其他字符的個(gè)數(shù)。2、雙字乘法程序設(shè)計(jì)data segmentx dw 1,2;被乘數(shù)y dw 3,4;乘數(shù)z dw 4 dup (?);積data endscode segmentassume ds:data,cs:codestart:mov ax,datamov ds,axmov ax,xmul ymov z,axmov z+2,dxmov ax,x+2mul ymov z+4,axmov z+6,dxmov ax,xmul y+

13、2add z+4,axadc z+6,dxmov ax,x+2mul y+2adc z+8,axadc z+10,dxadc z+12,0mov ax,4c00hint 21hcode endsend start實(shí)驗(yàn)三 8253定時(shí)器/計(jì)數(shù)器接口與數(shù)字電子琴一、 實(shí)驗(yàn)題目 8253定時(shí)器/計(jì)數(shù)器接口與數(shù)字電子琴二、 實(shí)驗(yàn)日期:2010/05/15三、 實(shí)驗(yàn)?zāi)康母淖兌〞r(shí)器2的計(jì)數(shù)值來改變聲音頻率,通過編程來獲得聲調(diào)(頻率)和節(jié)奏(延時(shí)長短),使計(jì)算機(jī)演奏出樂曲來。四、 實(shí)驗(yàn)內(nèi)容設(shè)計(jì)程序讓微機(jī)演奏一段簡單樂曲利用DOS的鍵盤管理功能。將微機(jī)變?yōu)橐粋€(gè)具有簡單功能的電子琴(選作)。五、 程序設(shè)計(jì)硬件設(shè)

14、計(jì)利用實(shí)驗(yàn)板上的8253計(jì)數(shù)/定時(shí)器和8255并行接口,定時(shí)器8253利用工作方式3產(chǎn)生一定頻率信號(hào),通過可編程的并行外圍接口芯片8255控制頻率信號(hào)的通斷。8255的A口設(shè)置為輸出,8255的A口的低兩位用來控制揚(yáng)聲器驅(qū)動(dòng),當(dāng)輸出端口的PA0位為“1”或?yàn)椤?”時(shí),將使控制驅(qū)動(dòng)器的與門電路接通或關(guān)閉,使8253所發(fā)出的音頻信號(hào)能到達(dá)驅(qū)動(dòng)器或被阻斷。這樣通過控制PA0的變化,可使揚(yáng)聲器接通和斷開,控制揚(yáng)聲器是否能發(fā)出聲音。此外,通過控制PA0的通斷時(shí)間,就能發(fā)出不同的音長。8255的PA1位為“1”時(shí),控制8253定時(shí)器產(chǎn)生驅(qū)動(dòng)揚(yáng)聲器發(fā)聲的音頻信號(hào),該位為“0”則不發(fā)信號(hào)。8253有三個(gè)定時(shí)器

15、,分為0號(hào)、1號(hào)和2號(hào)定時(shí)器,驅(qū)動(dòng)揚(yáng)聲器的是0號(hào)定時(shí)器,該定時(shí)器工作在方式3,是一個(gè)頻率發(fā)生器,它負(fù)責(zé)向揚(yáng)聲器發(fā)送指定頻率的脈沖信號(hào)。當(dāng)8255的PA0和PA1都為1時(shí),8253發(fā)出指定頻率的聲音信號(hào)的前提下,聲音信號(hào)通過與門到達(dá)驅(qū)動(dòng)器驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。硬件原理圖如圖1所示:圖2 揚(yáng)聲器驅(qū)動(dòng)電路軟件設(shè)計(jì)系統(tǒng)要求實(shí)現(xiàn)2個(gè)功能,電子琴和音樂盒的功能。兩者發(fā)聲的方法一樣,只是一個(gè)數(shù)據(jù)是從鍵盤讀取的,另一個(gè)是已經(jīng)保存好的數(shù)據(jù)。首先我們可以用一個(gè)子程序?qū)崿F(xiàn)單個(gè)音調(diào)的產(chǎn)生,對(duì)8253輸入不同的計(jì)數(shù)初值生成不同頻率的波形,然后延時(shí)一段時(shí)間。電子琴程序主要是讀取鍵盤按鍵,根據(jù)鍵值產(chǎn)生不同的音調(diào)即可。而樂曲的播放

16、先將樂曲的音符編碼表和節(jié)拍編碼表建立好的,然后在播放時(shí)讀取數(shù)據(jù)。1.單音調(diào)子程序SOUND;單音調(diào)子程序的調(diào)用前需要進(jìn)行以下幾個(gè)方面工作:;1)確定相應(yīng)的音調(diào)所對(duì)應(yīng)的頻率,查表可以得到,再;2)確定音長,即一個(gè)音符所持續(xù)的時(shí)間;在單音調(diào)子程序中實(shí)現(xiàn)發(fā)出一個(gè)音符的聲音,持續(xù)所需;圖3單音調(diào)子程序流程圖;2音樂盒程序;音樂盒的樂曲播放程序中需要有兩組數(shù)據(jù)支持:一組是;有了音調(diào)與頻率和時(shí)間的關(guān)系后,就可以按照樂曲的曲;在程序1. 單音調(diào)子程序SOUND單音調(diào)子程序的調(diào)用前需要進(jìn)行以下幾個(gè)方面工作:1)確定相應(yīng)的音調(diào)所對(duì)應(yīng)的頻率,查表可以得到,再由頻率得到對(duì)應(yīng)的8253計(jì)數(shù)初值。2)確定音長,即一個(gè)音

17、符所持續(xù)的時(shí)間。在單音調(diào)子程序中實(shí)現(xiàn)發(fā)出一個(gè)音符的聲音,持續(xù)所需的時(shí)間,流程圖如圖3所示:圖3 單音調(diào)子程序流程圖2音樂盒程序音樂盒的樂曲播放程序中需要有兩組數(shù)據(jù)支持:一組是頻率數(shù)據(jù),一組是節(jié)拍時(shí)間數(shù)據(jù)。音符的頻率可以通過簡譜從頻率表中查得。節(jié)拍時(shí)間就是音符的持續(xù)時(shí)間,取決于樂曲的速度和每個(gè)音符的節(jié)拍數(shù)據(jù)。如4/4(四四拍)中,每小節(jié)包括4拍,全音符持續(xù)4拍,二分音符持續(xù)2拍,四分音符持續(xù)一拍,八分音符持續(xù)半拍等。有了音調(diào)與頻率和時(shí)間的關(guān)系后,就可以按照樂曲的曲譜將每個(gè)音符的頻率和持續(xù)的時(shí)間定義成兩組數(shù)據(jù)表,然后編程依次取出表中的頻率值和節(jié)拍值,調(diào)用單音調(diào)子程序就可依次產(chǎn)生各個(gè)音調(diào),播放出樂曲

18、。在程序中存儲(chǔ)幾個(gè)樂曲數(shù)據(jù),根據(jù)音樂盒子菜單選擇相應(yīng)的樂曲演奏,讀取對(duì)應(yīng)的數(shù)據(jù)輸出。樂曲兩只老虎的簡譜如下:兩只老虎1=C 4/41 2 3 1 | 1 2 3 1 | 3 4 5 - | 3 4 5 - |56 54 3 1 |56 54 3 1 |2 5 1 - | 2 5 1 - |對(duì)應(yīng)的頻率數(shù)據(jù)表Freq、節(jié)拍數(shù)據(jù)表Time如下:TWOTIGERS_FRE DW 2 DUP(524,588,660,524,0) 樂曲的頻率表DW 2 DUP(660,698,784,0)DW 2 DUP(784,880,784,698,660,524,0) DW 2 DUP(588,392,524,0)

19、,1TWOTIGERS_TIME DW 10 DUP(100),200,100,100,200 樂曲的時(shí)間表DW 2 DUP(50,50,50,50,100,100) DW 2 DUP(100,100,200)outb_p(0x34,0x43);; ;outb_p(LATCH&0xff,0x40);outb_p(LATCH>>8,0x40);outb(inb_p (0x21) & 0x01, 0x21); /允許接收定時(shí)器中斷 void do_timer(void)這是定時(shí)器主程序,用于每隔一段時(shí)間后進(jìn)行某些操作8253.asm:/以下是nasm格式的匯編代碼,這個(gè)

20、中斷處理函數(shù)必須用匯編 timer_interrupt:push gspush fspush espush dspush ebppush edipush esipush edxpush ecxpush ebxpush eax;如果你不在操作系統(tǒng)下使用,以下三行必須刪除,否則必須把0x10更改為內(nèi)核段選擇符mov eax,0x10mov ds,axmov es,axmov al,0x20out 0xa0,al ;發(fā)送EOIout 0x20,alcall do_timerpop ebxpop ecxpop edxpop esipop edipop ebppop dspop espop fspop

21、gsxor eax,eaxiretd實(shí)踐體會(huì)本次微機(jī)實(shí)驗(yàn)課程設(shè)計(jì),使我對(duì)微機(jī)軟硬件結(jié)合有了進(jìn)一步的了解。原來并不太清楚是什么意思,一直都很模糊,聽課本也是很迷茫;而之前的那些單元實(shí)驗(yàn),也沒有都做好。之前做的實(shí)驗(yàn),由于大部分是驗(yàn)證性的,所以就很被動(dòng)地去做,甚至并沒有想為什么要那樣連電路,內(nèi)部的代碼更沒有認(rèn)真看。這次課程設(shè)計(jì),因?yàn)橐约喝ピO(shè)計(jì)整個(gè)過程,所以就不得不去了解學(xué)習(xí)自己原來并沒有真正弄懂的東西。比如一些程序的代碼的意思,匯編語言的邏輯,比如一些芯片的用途。使我對(duì)前面所做的實(shí)驗(yàn)有了原理性的了解,回頭看一些實(shí)驗(yàn),也知其然其所以然了。同時(shí)對(duì)課本上講的一些內(nèi)容,不再像以前那樣覺得抽象,通過這次設(shè)計(jì)

22、,有了具體的理解。同時(shí),我也知道了設(shè)計(jì)一個(gè)項(xiàng)目,應(yīng)該如何下手。應(yīng)該先對(duì)項(xiàng)目要求有個(gè)全面的了解,知道要做什么,然后根據(jù)要求所要涉及到的知識(shí)我們要主動(dòng)去攝取,結(jié)合自己已學(xué)過的,再對(duì)整體框架有個(gè)感知,心里有數(shù)后,進(jìn)行設(shè)計(jì)。設(shè)計(jì)時(shí)用流程圖,這很重要,這樣整個(gè)思路就很清晰,而且是按照軟硬件語言的邏輯順序進(jìn)行,就很方便。設(shè)計(jì)過程可以分模塊,不要一開始就想把所有的功能都實(shí)現(xiàn)了,應(yīng)該一個(gè)模塊一個(gè)模塊地實(shí)現(xiàn),再總的連起來,實(shí)現(xiàn)最后的總模塊。在每個(gè)模塊設(shè)計(jì)時(shí),盡量想到比較簡單的設(shè)計(jì),簡化編程和電路,也可少出錯(cuò)。對(duì)微機(jī)是這樣,對(duì)其他的像數(shù)字系統(tǒng)設(shè)計(jì),也是一樣的。因此,我也覺得微機(jī)實(shí)驗(yàn)的這種形式的課程設(shè)計(jì)是很好也很有必要的。對(duì)我們對(duì)微機(jī)實(shí)驗(yàn)的理解有很大幫助。查閱資料目錄格式要求內(nèi)頁正文內(nèi)容:4號(hào)宋體、單倍行距如需附圖可將文檔圖紙壓縮后上傳 范文范例 學(xué)習(xí)指導(dǎo)

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!