




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、四川大學網(wǎng)絡教育學院計算機綜合實踐校外學習中心:蘇州研究院學生姓名:徐磊專業(yè):電氣工程及其自動化層次:專升本年級:2014級(秋季)學號:DH1142R6009實踐時間:2016年7月10日實驗一DEBUG調(diào)試工具熟悉、使用一、實驗題目:熟悉、使用DEBUG1試工具二、實驗日期:2016/08/5三、實驗目的1 ,了解并逐步熟悉匯編語言的編輯方法及特點.2 .復習8088匯編語言的段結(jié)構(gòu)、常用的指令與偽指令、存儲空間的分配等。3 .掌握匯編語言的編輯、匯編及連接的過程。4 .了解并逐步掌握運用DEBUG!行調(diào)試匯編語言程序。5借助DEBU蜩試工具來發(fā)現(xiàn)匯編語言程序的錯誤所在并加以改正。四、實驗
2、內(nèi)容:1進入debugs法方法1:在Windows開始菜單中單擊運行命令,直接在運行對話框中輸入"DEBUG"方法方法2:在運行對話框中輸入"CMD啟動DO階令窗口后輸入"DEBUG"方法3:在程序、附件、命令提示符,啟動DO階令窗口后輸入"DEBUG"2, DEBU前令格式DEBUG勺每個命令都是一個字母,后跟一個或多個參數(shù)。下面對DEBUGS令作幾點說明。字母不分大小寫。 只使用16進制數(shù),且不能帶后綴H 以空格或逗號作為命令各項之間的分隔符。分隔符只在兩個數(shù)值之間是必須的。 可以用Ctrl-C或Ctrl-Break終止
3、命令的執(zhí)行。若輸入的命令有語法錯誤,則提示“Error“,并用"”指出錯誤位置。3,常用的Debug功能用Debug的R命令查看、改變CPUS存器的內(nèi)容,用Debug的D命令查看內(nèi)存中的內(nèi)容,用Debug的E命令改寫內(nèi)存中的內(nèi)容,用Debug的U命令將內(nèi)存中的機器指令翻譯成匯編指令。用Debug的T命令執(zhí)行一條機器指令用Debug的A命令以匯編指令的格式在內(nèi)存中寫了一條機器指令4,用Debug的R命令查看、改變CPUS存器的內(nèi)容,R命令用來顯示和修改寄存器的值,包括以下兩種格式。1,R顯示所有寄存器和8個標志位的值,并反匯編CS:IP所指的指令。2,R寄存器名示指定寄存器的值,并等待
4、用戶鍵入新的值,按回車鍵結(jié)束R命令。5、用Debug的D命令查看內(nèi)存中的內(nèi)容,D命令可以查看內(nèi)存中的內(nèi)容,D命令的格式較多,只介紹本次實驗中用到的格式,8086/8088CPU能夠訪問1M內(nèi)容,D命令可以顯示0000:0000H-FFFF:FFFFH中的任何一個單元的內(nèi)存如果想知道內(nèi)存10000H處的內(nèi)容,可以用"d段地址,偏移地址"的格式來查看,如輸入-d1000:0使用d1000:9查看1000:9處的內(nèi)容。使用d1000:09查看1000:0-1000:9的內(nèi)容一進入Debug,可直接使用D命令直接查看,將列出Debug預設的地址處的內(nèi)容6、用Debug的E命令改寫內(nèi)
5、存中的內(nèi)容,使用"e起始地址數(shù)據(jù)數(shù)據(jù)數(shù)據(jù).”的格式來進行如將內(nèi)存1000:0-1000:9單元中的內(nèi)容分別寫為0、1、2、3、4、5、6、7、8、9-e1000:00123456789也可以采用提問方式一個一個修改內(nèi)存中的內(nèi)容,如輸入e1000:0,按Enter鍵輸入修改的數(shù)據(jù),再按空格鍵輸入下一個要修改的數(shù)據(jù),最Enter鍵結(jié)束操作。輸入字符串的格式,如-e1000:101'a'2"c+"3,BM”將輸入1a2c+3IBM到相應單元向內(nèi)容中寫入機器碼,如b80100(代表movax,0001),b90200(代表movcx,002),01c8(代
6、表addax,cx),那么輸入-e1000:0b80100b9020001c8就將該程序輸入內(nèi)容1000:0處,然后使用u命令-u1000:0可以將內(nèi)存單元中的內(nèi)容翻譯成匯編指令。如果要執(zhí)行該程序,首先用r命令將cs修改成1000ip修改成0,再執(zhí)行t命令,單步執(zhí)行程序。執(zhí)行T命令時,CPU執(zhí)行CS:IP執(zhí)行的指令并將IP加1.7、用Debug的A命令以匯編指令的形式在內(nèi)存中寫了機器指令示例,用A命令,輸入下列程序并運行-a1000:0movax,1movbx,2movcx,3addax,bxaddax,cxaddax,ax直接按Enter鍵結(jié)果輸入。用r命令將cs修改成1000,ip修改成0
7、,再執(zhí)行t命令,單步執(zhí)行程序。執(zhí)行T命令時,CPU執(zhí)行CS:IP執(zhí)行的指令并將IP加1.實驗二設計匯編語言程序一,實驗題目設計匯編語言程序二,驗日期:2016/08/6三,實驗目的字符串統(tǒng)計程序設計雙字乘法程序設計四,實驗內(nèi)容1,字符串統(tǒng)計。在數(shù)據(jù)段中建立一個緩沖區(qū)BUFFER變量VER編程使得程序具有如下功能,從鍵盤輸入一個子字符串存入VER從鍵盤輸入包含一個或幾個子字符串的字符用存入BUFFER統(tǒng)計BUFFERS勺字符串含有多少個子字符串以及每個子字符串的位置。2,雙字乘法程序。設計一個程序?qū)崿F(xiàn)32位帶符號雙精度數(shù)乘法運算。由于只有8位和16位的乘法指令。因此32位乘法運算是不能直接用指令
8、實現(xiàn)的。但可以用16位乘法指令,通過4次想乘然后把部分積想加。對于帶符號數(shù),可以先根據(jù)絕對值求得積。然后判斷積的符號,若積為負數(shù),應將其用補碼表示。五,程序設計1、字符串統(tǒng)計程序設計#include<iostream>usingnamespacestd;intmain()(chara;intb=O,c=O,d=O,e=O,f=O;COUtVV”請輸入一行任意字符:";a=cin.get();while(a!='n')(if(a<0|a>=128)b+;elseif(a>=,a,&&a<='z,|a>=,
9、A,&&a<=,Z,)C+;elseif(a='')d+;elseif(a>='0'&&a<=,9,)elsef+;a=cin.get();)coutvv”總共有“vvb/2+c+d+e+fvv”個字符:"vvendl;cout«"中文英文空格數(shù)字其他"«endl;cout«b/2«,t"«c«,t"«d«,t"«e«"t"«
10、f«endl;return0;)分別統(tǒng)計出英文字母,空格,數(shù)字和其他字符的個數(shù)。2、雙字乘法程序設計datasegmentxdw1,2;被乘數(shù)ydw3,4;乘數(shù)zdw4dup(?);積dataendscodesegmentassumeds:data,cs:codestart:movax,datamovds,axmovax,xmulymovz,axmovz+2,dxmovax,x+2mulymovz+4,axmovz+6,dxmovax,xmuly+2addz+4,axadcz+6,dxmovax,x+2muly+2adcz+8,axadcz+10,dxadcz+12,0movax,4
11、c00hnt21hcodeendsendstart驗三8253定時器/計數(shù)器接口與數(shù)字電子琴一、實驗題目8253定時器/計數(shù)器接口與數(shù)字電子琴二、實驗日期:2016/08/07三、實驗目的:改變定時器2的計數(shù)值來改變聲音頻率,通過編程來獲得聲調(diào)(頻率)和節(jié)奏(延時長短)使計算機演奏出樂曲來。四、實驗內(nèi)容:設計程序讓微機演奏一段簡單樂曲利用DOS勺鍵盤管理功能。將微機變?yōu)橐粋€具有簡單功能的電子琴(選作)。五、程序設計硬件設計利用實驗板上的8253計數(shù)/定時器和8255并行接口,定時器8253利用工作方式3產(chǎn)生一定頻率信號,通過可編程的并行外圍接口芯片8255控制頻率信號的通斷。8255的A口設置
12、為輸出,8255的A口的低兩位用來控制揚聲器驅(qū)動,當輸出端口的PA0位為“1”或為“0”時。將使控制驅(qū)動器的與門電路接通或關(guān)閉,使8253所發(fā)出的音頻信號能到達驅(qū)動器或被阻斷。這樣通過控制PA0的變化,可使揚聲器接通和斷開,控制揚聲器是否能發(fā)出聲音。止匕外,通過控制PA0的通斷時間,就能發(fā)出不同的音長。8255的PA1位為“1”時,控制8253定時器產(chǎn)生驅(qū)動揚聲器發(fā)聲的音頻信號,該位為“0”則不發(fā)信號。8253有三個定時器。分為0號、1號和2號定時器,驅(qū)動揚聲器的是0號定時器,該定時器工作方式3,是一個頻率發(fā)生器,它負責向揚聲器發(fā)送指定頻率的脈沖信號。當8255的PA0和PA1都為1時,825
13、3發(fā)出指定頻率的聲音信號的前提下,聲音信號通過與門到達驅(qū)動器驅(qū)動揚聲器發(fā)聲。硬件原理圖如圖1所示:X255Q口8255揚聲器驅(qū)動電路如圖2所示.圖2揚聲器驅(qū)動電路軟件設計系統(tǒng)要求實現(xiàn)2個功能,電子琴和音樂盒的功能。兩者發(fā)聲的方法一樣,只是一個數(shù)據(jù)是從鍵盤讀取的,另一個是已經(jīng)保存好的數(shù)據(jù)。首先我們可以用一個子程序?qū)崿F(xiàn)單個音調(diào)的產(chǎn)生,對8253輸入不同的計數(shù)初值生成不同頻率的波形,然后延時一段時間。電子琴程序主要是讀取鍵盤按鍵,根據(jù)鍵值產(chǎn)生不同的音調(diào)即可。而樂曲的播放先將樂曲的音符編碼表和節(jié)拍編碼表建立好的,然后在播放時讀取數(shù)據(jù)。1.單音調(diào)子程序SOUNDS音調(diào)子程序的調(diào)用前需要進行以下幾個方面工
14、作,1)確定相應的音調(diào)所對應的頻率,查表可以得到,再由頻率得到對應的8253計數(shù)初值。2)確定音長,即一個音符所持續(xù)的時間。在單音調(diào)子程序中實現(xiàn)發(fā)出一個音符的聲音,持續(xù)所需的時間,流程圖如圖3所示:圖3單音調(diào)子程序流程圖2,音樂盒程序音樂盒的樂曲播放程序中需要有兩組數(shù)據(jù)支持,一組是頻率數(shù)據(jù),一組是節(jié)拍時問數(shù)據(jù)。音符的頻率可以通過簡譜從頻率表中查得。節(jié)拍時間就是音符的持續(xù)時問,取決于樂曲的速度和每個音符的節(jié)拍數(shù)據(jù)。如4/4,四四拍,中,每小節(jié)包括4拍,全音符持續(xù)4拍,二分音符持續(xù)2拍,四分音符持續(xù)一拍,八分音符持續(xù)半拍等。有了音調(diào)與頻率和時間的關(guān)系后,就可以按照樂曲的曲譜將每個音符的頻率和持續(xù)的
15、時間定義成兩組數(shù)據(jù)表,然后編程依次取出表中的頻率值和節(jié)拍值,調(diào)用單音調(diào)子程序就可依次產(chǎn)生各個音調(diào),播放出樂曲。在程序中存儲幾個樂曲數(shù)據(jù),根據(jù)音樂盒子菜單選擇相應的樂曲演奏,讀取對應的數(shù)據(jù)輸出。樂曲兩只老虎的簡譜如下:兩只老虎1-C4/41231|1231|345-|345-I565431I5_6531251-251-對應的頻率數(shù)據(jù)表Freq、節(jié)拍數(shù)據(jù)表Time如下:TWOTIGERS_FREDW2DUP(524,588,660,524,0);樂曲的頻率表DWDWDWTWOTIGERS_TIME樂曲的時間表DWDW2DUP(660,698,784,0)2DUP(784,880,784,698,6
16、60,524,0)2DUP(588,392,524,0),1DW10DUP(100),200,100,100,200;2DUP(50,50,50,50,100,100)2DUP(100,100,200)outb_p(0x34,0x43);utb_p(LATCH&0xff,0x40);outb_p(LATCH>>8,0x40);outb(inb_p(0x21)&0x01,0x21);/允許接而定時器中斷voiddo_timer(void)這是定時器主程序,用于每隔一段時間后進行某些操作)8253.asm:/以下是nasm格式的匯編代碼,這個中斷處理函數(shù)必須用匯編tim
17、er_interrupt:pushgspushfspushespushdspushebppushedipushesipushedxpushecxpushebxpusheax如果你不在操作系統(tǒng)下使用,以下三行必須刪除,否則必須把0x10更改為內(nèi)核段選擇符moveax,0x10movds,axmoves,axmoval,0x20out0xa0,al;發(fā)送EOIout0x20,alcalldo_timerpopebxpopecxpopedxpopesipopedipopebppopdspopespopfspopgsxoreax,eaxiretd踐體會次微機實驗課程設計,使我對微機軟硬件結(jié)合有了進一步的了解。原來并不太清楚是什么意思,一直都很模糊,聽課本也是很迷茫,而之前的那些單元實驗,也沒有都做好。之前做的實驗,由于大部分是驗證性的,所以就很被動地去做,甚至并沒有想為什么要那樣連電路,內(nèi)部的代碼更沒有認真看。這次課程設計,因為要自己去設計整個過程,所以就不得不去了解學習自己原來并沒有真正弄懂的東西。比如一些程序的代碼的意思,匯編語言的邏輯,比如一些芯片的用途。使我對前面所做的實驗有了原理性的了解,回頭看一些實驗,也知其然其所以然了。同時對課本上講的一些內(nèi)容,不再像以前那樣覺得抽象,通過這次設計,有了具體的理解。同時,我也知道了設計一個項目,應該如何下手。應該先對項
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年辦公地點租賃合同范例
- 納米結(jié)構(gòu)材料改性技術(shù)-深度研究
- 2025年先進羊場建設合作合同范本
- 車鉤疲勞裂紋檢測技術(shù)-深度研究
- 2025年漁業(yè)產(chǎn)品進口合同樣本
- 動畫場景建模創(chuàng)新-深度研究
- GB/T 29456-2025能源管理體系實施、保持和改進GB/T 23331能源管理體系指南
- 1《場景歌》(教學設計)-2023-2024學年統(tǒng)編版語文二年級上冊
- 15課摩擦生熱教學設計-2023-2024學年科學六年級下冊青島版
- 8 和 9 的加、減法(教學設計)2024-2025學年一年級上冊數(shù)學人教版
- 關(guān)于魯迅簡介
- 余華讀書分享名著導讀《文城》
- Horiba 流量計中文說明書
- 鑒定前設施設備檢查記錄表樣本
- 植物組織培養(yǎng)(園林植物教研組)-說課稿
- 高三二輪專題復習化學課件-分布系數(shù)(分數(shù))圖像
- 變更更正戶口項目申請表
- (譯林版)六年級英語完形填空100篇(含答案和講解)
- 云南省蒙自市長橋海水庫擴建工程環(huán)評報告
- 大數(shù)據(jù)分析教學大綱教案
- 質(zhì)量手冊(依據(jù)ISO9001:2023年標準)
評論
0/150
提交評論