基于32位的微機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書(shū)_第1頁(yè)
基于32位的微機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書(shū)_第2頁(yè)
基于32位的微機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書(shū)_第3頁(yè)
基于32位的微機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書(shū)_第4頁(yè)
基于32位的微機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩91頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、微機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書(shū)授課教師:王春武(內(nèi)部資料)目 錄實(shí)驗(yàn)一、 算術(shù)邏輯運(yùn)算單元實(shí)驗(yàn)1實(shí)驗(yàn)二、 通用寄存器單元實(shí)驗(yàn)3實(shí)驗(yàn)三、存儲(chǔ)器和總線(xiàn)實(shí)驗(yàn)5實(shí)驗(yàn)四、堆棧寄存器實(shí)驗(yàn)6實(shí)驗(yàn)五、熟悉masmplus編程環(huán)境12實(shí)驗(yàn)六、順序程序設(shè)計(jì)12實(shí)驗(yàn)七、分支程序設(shè)計(jì)12實(shí)驗(yàn)八、循環(huán)程序設(shè)計(jì)12實(shí)驗(yàn)九、子程序設(shè)計(jì)12實(shí)驗(yàn)十、 綜合實(shí)驗(yàn)12實(shí)驗(yàn)十一、8253 發(fā)聲控制實(shí)驗(yàn)128086匯編語(yǔ)言初學(xué)者教程12什么是匯編語(yǔ)言?(匯編語(yǔ)言學(xué)習(xí)參考)12第一部分8位模型機(jī)實(shí)驗(yàn)實(shí)驗(yàn)一、 算術(shù)邏輯運(yùn)算單元實(shí)驗(yàn)一 實(shí)驗(yàn)?zāi)康?1掌握簡(jiǎn)單運(yùn)算器的數(shù)據(jù)傳輸方式 2掌握74ls181的功能和應(yīng)用 二.實(shí)驗(yàn)要求 完成不帶進(jìn)位位算術(shù)

2、運(yùn)算實(shí)驗(yàn)、帶進(jìn)位位算術(shù)加法運(yùn)算實(shí)驗(yàn)、邏輯運(yùn)算單元實(shí)驗(yàn)。按照實(shí)驗(yàn)步驟完成實(shí)驗(yàn)項(xiàng)目,了解算術(shù)邏輯運(yùn)算單元運(yùn)用。三實(shí)驗(yàn)說(shuō)明 1alu單元實(shí)驗(yàn)構(gòu)成: 1)運(yùn)算器由兩片74ls181構(gòu)成8位字長(zhǎng)的alu單元。2)運(yùn)算器的2個(gè)數(shù)據(jù)輸入端分別由2個(gè)74ls374鎖存,可通過(guò)8芯扁平電纜直接連接到數(shù)據(jù)總線(xiàn)。3)運(yùn)算器的數(shù)據(jù)輸出由一片74ls244(輸出緩沖器)來(lái)控制,可通過(guò)8芯扁平電纜直接連接到數(shù)據(jù)總線(xiàn)。2alu單元的工作原理: 輸入寄存器dr1的edr1為低電平并且d1ck為電平正跳變時(shí),把來(lái)自數(shù)據(jù)總線(xiàn)的數(shù)據(jù)打入寄存器dr1,同樣通過(guò)edr2、d2ck可把數(shù)據(jù)打入輸入寄存器dr2。算術(shù)邏輯運(yùn)算單元的核心是由

3、2片74ls181組成,它可以進(jìn)行2個(gè)8位的二進(jìn)制數(shù)算術(shù)邏輯運(yùn)算,74ls181的各種工作方式可通過(guò)設(shè)置控制信號(hào)(s0、s1、s2、s3、m、cn)來(lái)實(shí)現(xiàn)。當(dāng)實(shí)驗(yàn)者正確設(shè)置了74ls181的各個(gè)控制信號(hào),74ls181會(huì)把dr1、dr2寄存器內(nèi)的數(shù)據(jù)進(jìn)行相應(yīng)地運(yùn)算。由于dr1、dr2已經(jīng)把數(shù)據(jù)鎖存,只要74ls181的控制信號(hào)不變,那么74ls181的輸出數(shù)據(jù)也不會(huì)改變。輸出緩沖器采用三態(tài)門(mén)74ls244,當(dāng)控制信號(hào)alu-o0時(shí),74ls244開(kāi)通,把74ls181的運(yùn)算結(jié)果輸出到數(shù)據(jù)總線(xiàn);當(dāng)alu-o1時(shí),74ls244的輸出為高阻。 3控制信號(hào)說(shuō)明: 信號(hào)名稱(chēng) 作用 有效電平 edr1選

4、通dr1寄存器低電平有效edr2選通dr2寄存器低電平有效dr1ckdr1寄存器工作脈沖上升延有效dr2ckdr2寄存器工作脈沖上升延有效s3s074ls181工作方式選擇16種組合m邏輯或算術(shù)選擇m=0算術(shù),m=1邏輯cn有無(wú)進(jìn)位輸入cn=0帶進(jìn)位cn=1不帶進(jìn)位cck進(jìn)位寄存器的工作脈沖上升延有效alu-o計(jì)算結(jié)果輸出至總線(xiàn)低電平有效四實(shí)驗(yàn)步驟取一根長(zhǎng)數(shù)據(jù)線(xiàn),一頭插入alu-in(8芯的盒型插座)另一頭插入實(shí)驗(yàn)箱右側(cè)的j1插座(對(duì)應(yīng)二進(jìn)制開(kāi)關(guān)h16-h23),把a(bǔ)lu-out(8芯的盒型插座)插入總線(xiàn)的數(shù)據(jù)總線(xiàn)dj2 。(實(shí)驗(yàn)箱默認(rèn)的信號(hào)為高電平,實(shí)驗(yàn)中只需連接低電平信號(hào)即可)1. 把d1

5、ck和d2ck用連線(xiàn)連到脈沖單元的pls1,把edr1、alu-o,s0、s1、s2、s3、cn、m接入試驗(yàn)箱右側(cè)對(duì)應(yīng)二進(jìn)制撥動(dòng)開(kāi)關(guān)。2. 置edr1=0,edr2=1、alu-o=1。把二進(jìn)制開(kāi)關(guān)h16-h23置0x65。3. 按pls1脈沖按鍵,在pls1上產(chǎn)生一個(gè)上升沿的脈沖,把0x65打入dr1寄存器,通過(guò)邏輯筆或示波器來(lái)測(cè)量確定dr1寄存器(74ls374)的輸出端(引腳對(duì)應(yīng)關(guān)系為:2-q0 5-q1 6-q2 9-q3 12-q4 15-q5 16-q6 19-q7),來(lái)確定總線(xiàn)數(shù)據(jù)是否進(jìn)入dr1中。4. 同樣方法,置edr2=0把二進(jìn)制h16-h23開(kāi)關(guān)置0xa7。5. 按pls

6、1脈沖按鍵,再產(chǎn)生一個(gè)上升沿的脈沖,把0xa7打入dr2(74ls374)。6. 參照表一,設(shè)置m cn s3 s2 s1 s0的狀態(tài),實(shí)現(xiàn)觀察dr1(a)、dr2(b)以及實(shí)驗(yàn)結(jié)果。五. 實(shí)驗(yàn)思考 驗(yàn)證74ls181的算術(shù)運(yùn)算和邏輯功能,在保持dr1=0x65、dr2=0xa7時(shí),改變運(yùn)行運(yùn)算器的功能設(shè)置,實(shí)現(xiàn)觀察a,b,a+b,a加b功能。表1 74ls181的邏輯方式 m=1 m=0算術(shù)運(yùn)算 s3 s2 s1 s0邏輯運(yùn)算cn=1(無(wú)進(jìn)位)cn=0(有進(jìn)位)0000f=/af=af=a加10001f=/(a+b)f=a+bf=(a+b)加10010f=/a bf=a+/bf=(a+/b)

7、加10011f=0f=減1(2的補(bǔ))f=00100f=/(ab)f=a加a/bf=a加a/b加10101f=/bf=(a+b)加a/bf=(a+b)加a/b加10110f=/(ab)f=a減b減1f=a減b0111f=a /bf=a/b減1f=a/b1000f=/a+bf=a 加abf=a 加ab加 11001f= abf=a加bf=a加b加11010f=bf=(a+/b)加abf=(a+/b)加ab加11011f=abf=ab減1f=ab1100f=1f=a加 af=a加 a 加11101f=a+/bf=(a+b) 加 af=(a+b) 加 a 加11110f=a+bf=(a+/b)加af=

8、(a+/b)加a加11111f=af=a減1f=a實(shí)驗(yàn)二、 通用寄存器單元實(shí)驗(yàn)一實(shí)驗(yàn)?zāi)康?1了解寄存器的組成和硬件電路 2利用寄存器進(jìn)行數(shù)據(jù)傳輸 二實(shí)驗(yàn)要求 按照實(shí)驗(yàn)步驟完成實(shí)驗(yàn)項(xiàng)目, 實(shí)現(xiàn)寄存器移位操作。了解通用寄存器單元運(yùn)用。 三實(shí)驗(yàn)說(shuō)明 1 寄存器實(shí)驗(yàn)構(gòu)成: (1)通用寄存器由74ls198構(gòu)成8位字長(zhǎng)的寄存器單元,可通過(guò)8芯扁平電纜直接連接到數(shù)據(jù)總線(xiàn)。(由于74ls198的使用率不高,有的型號(hào)實(shí)驗(yàn)機(jī)上采用2片gal來(lái)替代它,使用方法和74ls198基本相同)。(2)數(shù)據(jù)輸出由一片74ls244(輸出緩沖器)來(lái)控制,可通過(guò)8芯扁平電纜直接連接到數(shù)據(jù)總線(xiàn)。(3)由1片gal、1片7474和

9、一些常規(guī)芯片組成判零和進(jìn)位電路,分別由2個(gè)led發(fā)光管來(lái)顯示其狀態(tài)。2通用寄存器單元的工作原理: 通用寄存器單元的核心部件為74ls198,它具有鎖存、左移、右移、保存等功能,各個(gè)功能都有x1、x2信號(hào)和rack工作脈沖來(lái)決定。當(dāng)置era=0、x0=1、x1=0,rack為脈沖的上升沿時(shí),把總線(xiàn)上的數(shù)據(jù)打入74ls198??赏ㄟ^(guò)設(shè)置x0、x1來(lái)指定74ls198的工作方式,74ls198的輸出端q0q7接入判零電路。led亮?xí)r表示數(shù)據(jù)為0。輸出緩沖器采用三態(tài)門(mén)74ls244,當(dāng)控制信號(hào)ra-o為低時(shí),74ls244開(kāi)通,把通用寄存器內(nèi)容輸出到總線(xiàn);當(dāng)ra-o為高時(shí),74ls244的輸出為高阻。

10、3控制信號(hào)說(shuō)明: 信號(hào)名稱(chēng) 作用 有效電平 x0、x174ls198的工作模式低電平era選通74ls198寄存器低電平ra-o74ls198寄存器內(nèi)容輸出至總線(xiàn)低電平rack74ls198寄存器工作脈沖上升沿m在alu單元中作為邏輯和算術(shù)運(yùn)算的選擇。在本實(shí)驗(yàn)中決定是否帶進(jìn)位移位0 帶進(jìn)位1 不帶進(jìn)位四. 實(shí)驗(yàn)步驟(數(shù)據(jù)輸入)1. 把ra-in(8芯的盒型插座)插入數(shù)據(jù)輸出板上的j1 8芯的盒型插座(對(duì)應(yīng)二進(jìn)制開(kāi)關(guān)),把ra-out(8芯的盒型插座)插入總線(xiàn)的數(shù)據(jù)總線(xiàn)dj6。2. 把rack連到脈沖單元的pls11,把era、x0、x1、ra-o、m接入實(shí)驗(yàn)板右側(cè)的對(duì)應(yīng)開(kāi)關(guān)。3. 實(shí)現(xiàn)置數(shù)功能

11、:置era=0、ra-o=0、x0=1、x1=1把二進(jìn)制開(kāi)關(guān)h16-h23置01000010(對(duì)應(yīng)開(kāi)關(guān)如下表)。4. 按pls1脈沖按鍵,按pls1,把0100 0010打入74ls198。此時(shí)數(shù)據(jù)總線(xiàn)上的指示燈iob0-iob7 應(yīng)該顯示為0100 0010,由于寄存器內(nèi)容不為0,所以zd led燈滅。 5. 保持m=0,將x1=0,x0=1, 按pls1,觀察實(shí)驗(yàn)現(xiàn)象;6. 保持m=0,將x1=1,x0=0, 按pls1,觀察實(shí)驗(yàn)現(xiàn)象7. 保持m=1,重新完成步驟5和6觀察實(shí)驗(yàn)現(xiàn)象8. 將cck(進(jìn)位脈沖)與rack相連,重新完成實(shí)驗(yàn)57觀察實(shí)驗(yàn)現(xiàn)象。提示:m=1 功能:8位循環(huán)移位,與c

12、ck無(wú)關(guān)m=0 無(wú)cck時(shí) 功能:8位移位,移入數(shù)據(jù)取決于當(dāng)前cy狀態(tài)m=0 有cck時(shí) 功能:9位循環(huán)移位表二 控制邏輯x1 x0 clk q7q0 0 0上升沿保持1 1上升沿置數(shù)0 1上升沿右移1 0上升沿左移 實(shí)驗(yàn)三、存儲(chǔ)器和總線(xiàn)實(shí)驗(yàn)一實(shí)驗(yàn)?zāi)康?1 熟悉存儲(chǔ)器和總線(xiàn)組成和硬件電路 二實(shí)驗(yàn)要求 按照實(shí)驗(yàn)步驟完成實(shí)驗(yàn)項(xiàng)目,利用存儲(chǔ)器和總線(xiàn)傳輸數(shù)據(jù)。 三實(shí)驗(yàn)說(shuō)明 1 存儲(chǔ)器實(shí)驗(yàn)的構(gòu)成: (1)存儲(chǔ)器采用靜態(tài)ram(6264)(2)存儲(chǔ)器的控制電路由1片74ls32和74ls08組成。(3)總線(xiàn)由2片74ls245組成,把整個(gè)系統(tǒng)分為內(nèi)部總線(xiàn)和外部總線(xiàn)。2存儲(chǔ)器和總線(xiàn)的原理 (1)總線(xiàn)的原理:

13、由于本系統(tǒng)內(nèi)使用8根地址線(xiàn)、8位數(shù)據(jù)線(xiàn),所以使用1片74ls245作為數(shù)據(jù)總線(xiàn)另1片作為地址總線(xiàn)(見(jiàn)圖)??偩€(xiàn)把整個(gè)系統(tǒng)分為內(nèi)部總線(xiàn)和外部總線(xiàn),由于數(shù)據(jù)總線(xiàn)需要進(jìn)行內(nèi)、外部數(shù)據(jù)的交換所以由bus信號(hào)來(lái)控制數(shù)據(jù)的流向,當(dāng)bus=1時(shí)數(shù)據(jù)由內(nèi)到外,當(dāng)bus=0時(shí),數(shù)據(jù)由外到內(nèi)。信號(hào)ebus=0時(shí),表示當(dāng)前有效。(2)由于本系統(tǒng)內(nèi)使用8根地址線(xiàn)、8位數(shù)據(jù),所以6264的a8a12接地,其實(shí)際容量為256個(gè)字節(jié)。6264的數(shù)據(jù)、地址總線(xiàn)已經(jīng)接在總線(xiàn)單元的外部總線(xiàn)上。存儲(chǔ)器有3個(gè)控制信號(hào):外部地址總線(xiàn)設(shè)置存儲(chǔ)器地址,rm=0時(shí),把存儲(chǔ)器中的數(shù)據(jù)讀出到總線(xiàn)上。當(dāng)wm=0,并且emck有一個(gè)上升沿時(shí),把外部

14、總線(xiàn)上的數(shù)據(jù)寫(xiě)入存儲(chǔ)器中。為了更方便的編輯內(nèi)存中的數(shù)據(jù),在實(shí)驗(yàn)機(jī)處于停機(jī)狀態(tài)時(shí),可由監(jiān)控來(lái)編輯其中的數(shù)據(jù)。(3)控制信號(hào)說(shuō)明: 信號(hào)名稱(chēng)作用有效電平bus總線(xiàn)方向選擇 rm6264的讀允許信號(hào)低電平有效wm6264的寫(xiě)允許信號(hào)低電平有效emck6264的寫(xiě)入脈沖信號(hào)上升延有效四實(shí)驗(yàn)步驟 l 把數(shù)據(jù)總線(xiàn)一端插入dj8另一端插入實(shí)驗(yàn)板右側(cè)的j2口、地址總線(xiàn)上一端插入b10單元的aj1另一端插入實(shí)驗(yàn)板右側(cè)的j3口。l 把emck連到脈沖單元的pls1,把wm、rm、bus接入右側(cè)對(duì)應(yīng)二進(jìn)制的開(kāi)關(guān),由于bus與rm狀態(tài)一直相同,因此可以將bus也連接到rm孔上。撥動(dòng)二進(jìn)制開(kāi)關(guān),置數(shù)據(jù)為0x55,地址為

15、0x02(對(duì)應(yīng)開(kāi)關(guān)如下表)。h23h22h21h20h19h18h17h1600000010l 此時(shí)在數(shù)據(jù)總線(xiàn)led燈idb0-idb7顯示0x55, 地址總線(xiàn)上led燈iab0-iab7顯示0x02,l 內(nèi)部數(shù)據(jù)總線(xiàn)上的數(shù)據(jù)輸出到外部數(shù)據(jù)總線(xiàn)。置wc=0,rc=1(對(duì)應(yīng)開(kāi)關(guān)如下表)。h15h14h13wrrcbus011按pls1脈沖按鍵,脈沖單元的pls1,在emck上產(chǎn)生1個(gè)上升沿,此時(shí)0x55寫(xiě)入存儲(chǔ)器的地址0x02中。讀存儲(chǔ)器的數(shù)據(jù)到總線(xiàn)上,置當(dāng)前地址為0x02(對(duì)應(yīng)開(kāi)關(guān)如下表)。h23h22h21h20h19h18h17h1600000010l 置wm=1,rm=0,(對(duì)應(yīng)開(kāi)關(guān)如下

16、表)。h15h14h13wmrmbus100 此時(shí)數(shù)據(jù)總線(xiàn)上的led燈idb0-idb7顯示0x55。實(shí)驗(yàn)四、堆棧寄存器實(shí)驗(yàn)一實(shí)驗(yàn)?zāi)康?1 熟悉堆棧概念 2 熟悉堆棧寄存器的組成和硬件電路 二實(shí)驗(yàn)要求 按照實(shí)驗(yàn)步驟完成實(shí)驗(yàn)項(xiàng)目,對(duì)4個(gè)堆棧寄存器讀出、寫(xiě)入數(shù)據(jù)。 三實(shí)驗(yàn)說(shuō)明 1、堆棧寄存器組實(shí)驗(yàn)構(gòu)成: 本系統(tǒng)內(nèi)有4個(gè)寄存器r0r3,寄存器組由4個(gè)74ls374組成,由1片74ls139(2、4譯碼器)來(lái)選擇4個(gè)74ls374,并且由2片74ls08和1片74ls32來(lái)組成控制線(xiàn)??赏ㄟ^(guò)8芯扁平電纜把數(shù)據(jù)輸入、輸出直接連接到數(shù)據(jù)總線(xiàn)上。2、堆棧寄存器組原理: 由sa、sb兩根控制線(xiàn)通過(guò)74ls13

17、9譯碼來(lái)選擇4個(gè)寄存器(74ls374)。當(dāng)wr0時(shí),表示數(shù)據(jù)總線(xiàn)將要向寄存器中寫(xiě)入數(shù)據(jù),rclk作為寄存器的工作脈沖,在有上升沿時(shí)把總線(xiàn)數(shù)據(jù)打入74ls139選擇的那個(gè)寄存器。當(dāng)74ls139選擇了某個(gè)寄存器,并且rr=0時(shí),寄存器上的數(shù)據(jù)輸出至數(shù)據(jù)總線(xiàn)。在本系統(tǒng)內(nèi)使用了wr=0作為寫(xiě)入允許,rck信號(hào)為上升沿打入數(shù)據(jù)、rr=0時(shí)數(shù)據(jù)輸出、er0er3作為4個(gè)寄存器的選通。 3、控制信號(hào)說(shuō)明: 信號(hào)名稱(chēng)作用有效電平sa、sb選通寄存器低電平有效rr數(shù)據(jù)輸出允許低電平有效wr數(shù)據(jù)寫(xiě)入允許低電平有效 rck寄存器的工作脈沖上升延有效四實(shí)驗(yàn)步驟 l 將r-in(8芯的盒型插座)插入數(shù)據(jù)輸出板上的8

18、芯的盒型插座,將r-out(8芯的盒型插座)插入左側(cè)的數(shù)據(jù)總線(xiàn)。l 把rr、wr、sa、sb接入二進(jìn)制的撥位開(kāi)關(guān),把rck連到脈沖單元的pls1。(請(qǐng)按下表接線(xiàn))。信號(hào)定義 接入開(kāi)關(guān)位號(hào) rck pls1 孔 rr h15孔 wr h14孔 sa h13孔 sb h12孔 把數(shù)據(jù)寫(xiě)入寄存器r0 l 置wr=0、rr=1、sb=0、sa=0 (對(duì)應(yīng)開(kāi)關(guān)如下表)。h15h14h13h12rrwrsasb1000l 在二進(jìn)制的撥位開(kāi)關(guān)上置0x01(對(duì)應(yīng)開(kāi)關(guān)如下表)。h23h22h21h20h19h18h17h1600000001l 按pls1脈沖按鍵,脈沖單元的pls1+,在rck上產(chǎn)生一個(gè)上升沿,

19、此時(shí)把數(shù)據(jù)寫(xiě)入寄存器r0。 把寄存器r0數(shù)據(jù)讀出 l 置wr=1、rr=0、sb=0、sa=0 (對(duì)應(yīng)開(kāi)關(guān)如下表)。h15h14h13h12rrwrsasb0100l 此時(shí)把寄存器r0數(shù)據(jù)讀出。l 總線(xiàn)數(shù)據(jù)發(fā)光二極管idb0-idb7將分別顯示0x01補(bǔ)充試驗(yàn):debug的基本操作(參見(jiàn)附件2)。過(guò)程:1、 開(kāi)始 運(yùn)行debug 確定,出現(xiàn)黑色屏幕并有短線(xiàn)提示,表示進(jìn)入debug成功。2、 收入 ?號(hào),查看debug 命令。3、 依次試驗(yàn)各個(gè)命令的用法。第二部分debug命令debug是一個(gè)dos實(shí)用程序,是供程序員使用的程序調(diào)試工具,可以用它檢查內(nèi)存中任何地方的字節(jié)以及修改任何地方的字節(jié)。它

20、可以用于逐指令執(zhí)行某個(gè)程序以驗(yàn)證程序運(yùn)行的正確性,也可以追蹤執(zhí)行過(guò)程、比較一個(gè)指令執(zhí)行前后的值以及比較與移動(dòng)內(nèi)存中數(shù)據(jù)的范圍,讀寫(xiě)文件與磁盤(pán)扇區(qū)。目錄debug命令介紹 debug的命令及功能如下: 1. * a地址 匯編命令 2. * c源地址范圍目的地址比較命令 3. 轉(zhuǎn)儲(chǔ)命令 4. * g=起始地址 斷點(diǎn) 執(zhí)行命令 5. * i端口地址 6. * l地址盤(pán)號(hào):邏輯扇區(qū)號(hào)扇區(qū)數(shù) 7. * m地址范圍起始地址 數(shù)據(jù)傳送命令 8. * n盤(pán)號(hào): 路徑 文件名 擴(kuò)展名 9. * o端口地址數(shù)據(jù) 輸出命令 10. * p=地址 數(shù)據(jù) 進(jìn)程命令 11. * q 退出命令。 12. * r寄存器 寄存

21、器命令 13. * s地址范圍 字符串 14. * t=地址指令條數(shù) 跟蹤命令 15. * u起始地址或者地址范圍 16. * w寫(xiě)盤(pán)命令debug命令實(shí)際應(yīng)用debug命令介紹 debug的命令及功能如下: 1. * a地址 匯編命令 2. * c源地址范圍目的地址比較命令 3. 轉(zhuǎn)儲(chǔ)命令 4. * g=起始地址 斷點(diǎn) 執(zhí)行命令 5. * i端口地址 6. * l地址盤(pán)號(hào):邏輯扇區(qū)號(hào)扇區(qū)數(shù) 7. * m地址范圍起始地址 數(shù)據(jù)傳送命令 8. * n盤(pán)號(hào): 路徑 文件名 擴(kuò)展名 9. * o端口地址數(shù)據(jù) 輸出命令 10. * p=地址 數(shù)據(jù) 進(jìn)程命令 11. * q 退出命令。 12. * r寄

22、存器 寄存器命令 13. * s地址范圍 字符串 14. * t=地址指令條數(shù) 跟蹤命令 15. * u起始地址或者地址范圍 16. * w寫(xiě)盤(pán)命令debug命令實(shí)際應(yīng)用展開(kāi)debug命令介紹它的功能包括以下幾個(gè)方面。 1,直接輸入,更改,跟蹤,運(yùn)行匯編語(yǔ)言源程序; 2,觀察操作系統(tǒng)的內(nèi)容; 3,查看rom bios的內(nèi)容; 4,觀察更改ram內(nèi)部的設(shè)置值; 5,以扇區(qū)或文件的方式讀寫(xiě)軟盤(pán)數(shù)據(jù) debug把所有數(shù)據(jù)都作為字節(jié)序列處理。因此它可以讀任何類(lèi)型的文件。debug可以識(shí)別兩種數(shù)據(jù): 十六進(jìn)制數(shù)據(jù)和asc碼字符。它的顯示格式是各個(gè)字節(jié)的十六進(jìn)制值以及值在32與126之間的字節(jié)的相應(yīng)asc

23、碼字符。 在debug中輸入數(shù)據(jù)有兩種方法: 提示方法和非提示方法。在用提示方法時(shí),用戶(hù)可以輸入要求輸入數(shù)據(jù)的命令,后跟數(shù)據(jù)所要輸入的地址。然后用戶(hù)就可以看到該地之中已有內(nèi)容及一個(gè)冒號(hào)提示符。此時(shí)用戶(hù)可以在提示符下輸入一個(gè)新的值或者按下回車(chē)鍵或ctrl+c回到短橫(-)提示符。在運(yùn)用非提示方法時(shí),用戶(hù)可以輸入要輸入數(shù)據(jù)的內(nèi)存地址以及要輸入的字節(jié)。但與使用字處理程序或正文編輯程序時(shí)不一樣,在使用debug時(shí),用戶(hù)不能直接移動(dòng)光標(biāo)到一入口點(diǎn)輸入或修改數(shù)據(jù),而要一次輸入一個(gè)或幾個(gè)字節(jié)。 在使用debug時(shí)可以只涉及內(nèi)存中的數(shù)據(jù),從而一般都要指定所要處理的內(nèi)存地址,地址的輸入格式是: 段地址: 位移。

24、如果沒(méi)有輸入地址,debug將假定為當(dāng)前內(nèi)存段,從位于地址100h的字節(jié)開(kāi)始。前100h字節(jié)保留給程序段前綴使用,這一專(zhuān)用區(qū)域用于建立dos與程序之間的聯(lián)系。debug總是用四位十六進(jìn)制數(shù)表示地址。用兩位數(shù)表示十六進(jìn)制數(shù)據(jù)。 講到這里大家應(yīng)該對(duì)debug有了初步的了解,但是光知道這些可不夠,接下來(lái)我來(lái)講講debug的命令格式和命令。當(dāng)輸入 debug 調(diào)用了debug程序,就會(huì)出現(xiàn)一個(gè)短橫提示符,用戶(hù)就可以在這一短橫后輸入debug程序的命令。有些debug命令會(huì)顯示一個(gè)內(nèi)存地址并產(chǎn)生一個(gè)作為提示符的冒號(hào)。在這些提示符后,用戶(hù)可以輸入一個(gè)新值以改變所顯示位置原來(lái)的值。如果用戶(hù)不輸入一個(gè)新值而是

25、按下回車(chē)或ctrl+c,那么原來(lái)的值不會(huì)改變。 一般用不著把地址和命令名字分開(kāi)。例如,用轉(zhuǎn)儲(chǔ)命令d察看100號(hào)地址的數(shù)據(jù),那么這個(gè)命令可以用以下任一種形勢(shì)輸入: d100 d 100 d。100 d,100 如果輸入的命令中出現(xiàn)了錯(cuò)誤,debug將在下一行對(duì)著錯(cuò)誤的位置標(biāo)記出來(lái),例如: -s100 d 12 error debug的命令及功能如下:a地址 匯編命令功能: 將指令直接匯編成機(jī)器碼輸入到內(nèi)存中。 說(shuō)明: 用于小段程序的匯編及修改目標(biāo)程序,所有輸入的數(shù)字均采用十六進(jìn)制, 用戶(hù)裝入內(nèi)存的匯編語(yǔ)句是連續(xù)存放的,若沒(méi)有指定地址,并且前面沒(méi)有使用匯編命令,改語(yǔ)句被匯編到 cs:0100區(qū)域。

26、 例a:debug -a 0100 08f1:0100 mov ah,09 08f1:0102 mov dx,109 08f1:0105 int 21h; 08f1:0107 int 21h;debug tan.exe -u:反編譯成匯編語(yǔ)言程碼 . . -g 100 指定中斷點(diǎn) program terminated normally: 另外:我們?cè)赿ebug下可運(yùn)行一個(gè)文件.exe 如:a:debug tan.exe -g 即可開(kāi)始運(yùn)行此程序,和在dos下完全一樣: * h數(shù)值數(shù)值 十六進(jìn)制算術(shù)運(yùn)算命令 功能: 分別顯示兩個(gè)十六進(jìn)制數(shù)相加的和以及第一個(gè)數(shù)減去第二個(gè)數(shù)的差。 說(shuō)明: 替用戶(hù)完成

27、簡(jiǎn)單的十六進(jìn)制數(shù)的運(yùn)算。 例:-h4538 5623 9b5b ef15 * i端口地址功能: 從指定的端口輸入并顯示(用十六進(jìn)制)的一個(gè)字節(jié)。 例:-i 70 f9;顯示70端口的內(nèi)容為f9 i命令可由80x86的64k個(gè)端口取數(shù)據(jù) * l地址盤(pán)號(hào):邏輯扇區(qū)號(hào)扇區(qū)數(shù)功能: 將一個(gè)文件或盤(pán)的絕對(duì)扇區(qū)裝入存儲(chǔ)器。 說(shuō)明: 單個(gè)l命令能夠裝入的最大扇區(qū)數(shù)是 80h,其中盤(pán)號(hào) 0,1,2,3分別代表 a,b,c,出現(xiàn)讀盤(pán)錯(cuò),顯示錯(cuò)誤信息。 (1)格式1: l裝入地址 驅(qū)動(dòng)器名 起始扇區(qū)/扇區(qū)數(shù) 這種方式可把磁盤(pán)上指定扇區(qū)范圍的內(nèi)容裝入到存儲(chǔ)器從指定地址開(kāi)始的區(qū)域中,在此外扇區(qū)編號(hào)引用邏輯/扇區(qū)的方式

28、。 例:-l 100 0 01,將a驅(qū)的0扇區(qū)裝至cs:100上 -d 100 10f 08f1:0100 eb 3c 90 3c 53 44 4f 53 -36 2e 32 32 02 01 01 00.l,msdos 6.22 (2)格式2:l裝入地址 這種方式可把指定文件裝入內(nèi)存,裝入的文件可在進(jìn)入debug時(shí)指定亦可用n命令建立,格式為-n文件名: 例1 debug tan.pas -l 100 例2 debug -n tan.pas -l 100 須知:l命令只能讀取邏輯扇區(qū),不能讀取硬盤(pán)分區(qū)表 l命令中所用的磁盤(pán)代碼a=00,b=01,c=02 * m地址范圍起始地址 數(shù)據(jù)傳送命令

29、功能: 把地址范圍內(nèi)的存儲(chǔ)器單元的內(nèi)容移到起始地址的指定地址中 說(shuō)明: 傳送期間,源區(qū)和目標(biāo)區(qū)可以部分重疊;傳送后源區(qū)域數(shù)據(jù)保持不變。 例:-e100 41 42 43 44 45 -d100 10f 08f1:0100 41 42 43 44 45 62 62 63 64 -61 62 63 64 61 62 63 64 abcdebcdabcdabcd -m 100 104 110 -d110 l1f 08f1:0100 41 42 43 45 0a 21 19-20 01 01 20 07 96 87 9f abcde * n盤(pán)號(hào): 路徑 文件名 擴(kuò)展名功能: 定義操作文件名。 說(shuō)明:

30、可同時(shí)定義兩個(gè)操作文件,并將形成的文件控制塊相應(yīng)的設(shè)置在內(nèi)存 cs:5c和cs:6c上,供以后的l和w命令操作之用。我們?cè)谶\(yùn)行程序偵錯(cuò)時(shí),在啟動(dòng)debug時(shí)在其后加文件程序名以及該程序的參數(shù)或運(yùn)行文件,但當(dāng)我們偵錯(cuò)一段后,可能裝入其它文件來(lái)測(cè)試,這時(shí)我們可利用n命令來(lái)設(shè)置而無(wú)需退出debug。 例:a:debug tan.exe -n youg.pas 當(dāng)程序偵錯(cuò)一段時(shí)間后,若要把tan.exe裝入tan1.pas則-n tanl.pas * o端口地址數(shù)據(jù) 輸出命令功能: 發(fā)送字節(jié)到指定的輸出端口。 例:當(dāng)我們遇到開(kāi)機(jī)要求輸入口令時(shí),可用如下方式取消 -o 70 10 _o 71 00 *

31、p=地址 數(shù)據(jù) 進(jìn)程命令功能: 將一個(gè)子程序調(diào)用指令,循環(huán)指令,中斷指令或一個(gè)重復(fù)字符串指令,停止在下一條指令上。 說(shuō)明: 在執(zhí)行一條子程序調(diào)用指令,循環(huán)指令,中斷指令或一個(gè)重復(fù)字符串指令時(shí),發(fā)出p命令去執(zhí)行有關(guān)指令,并且返回到要執(zhí)行的下一條指令。 p命令和t一樣選用來(lái)跟蹤程序運(yùn)行過(guò)程用的命令,我們可以在p命令中指定程序運(yùn)行的起始地址,指令個(gè)數(shù),如未指定則cs:ip所指定程序的地址開(kāi)始一次運(yùn)行一條令。 p與t命令的差別在于p命令把call/int當(dāng)成一條指令來(lái)執(zhí)行,簡(jiǎn)化了跟蹤過(guò)程,p命令只運(yùn)行ram內(nèi)存的命令,而t命令則可運(yùn)行ram和rom里的程序。 * q 退出命令。* r寄存器 寄存器命令

32、功能: 一,顯示單個(gè)寄存器的內(nèi)容,并提供修改功能。 二,顯示所有寄存器內(nèi)容, 再加上字母標(biāo)志位狀態(tài)以及要執(zhí)行的下一條指令。 三,顯示8個(gè)標(biāo)志位狀態(tài), 并提供修改功能。若不想改變則回車(chē)即可。 例:-r bx bx 0050 :51 -r ax=0000 bx=0051 cx=0000 sp=ffee bp=0000 si=0000 di=0000 ds=0003 es=0cd3 ss=0cd3 ip=0100 nv up ei pl nz na op nc 0cd3:0100 0f db of 若想改變標(biāo)志寄存器,用-rf回車(chē),則debug會(huì)將標(biāo)志內(nèi)容顯示出來(lái),若想改變?nèi)我粯?biāo)志,只要輸入該標(biāo)志的

33、名稱(chēng)即可。 標(biāo)志名稱(chēng) 設(shè)置 未設(shè)置 標(biāo)志名稱(chēng) 設(shè)置 未設(shè)置 滋出 ov(未溢出) nv(未溢出) 零位 zr nz(不等于零) 方向 dn(減少) up(增加) 輔助進(jìn)位 ac na(無(wú)進(jìn)位) 中斷 ei(許可) di(禁止) 奇偶標(biāo)志 pe(偶) po(奇) 符號(hào) ng(負(fù)) pl(正) 進(jìn)位 cy nc(清除進(jìn)位) 例:-rf nv up ei pl nz na po nc :-ov di 輸入值 * s地址范圍 字符串功能: 在指定的地址范圍內(nèi)查找給定的字符串。 說(shuō)明: 用來(lái)指定在地址范圍內(nèi)查找一個(gè)字符串,若找到則顯示其地址, 否則直接顯示debug提示符。隱含地址為ds段值。 在此內(nèi)存

34、可以用(起始地址)(終止地址)或(起始地址)l(長(zhǎng)度)的方式來(lái)表示,而字符串與數(shù)據(jù)行則可混合使用:如:02.76bc。 例:-d100 lof 08f1:0100 of 2a 41 43 0b 31 42 96 -ff f0 b9 8a f3 00 b1. ac,1b. -s 100 l 0f ac 08f1:0102 表示找到,由0102開(kāi)始, * t=地址指令條數(shù) 跟蹤命令功能: 逐條跟蹤程序的執(zhí)行,每條指令執(zhí)行后都將顯示各寄存器的內(nèi)容。 說(shuō)明: 通常采用跟蹤一條指令,但用戶(hù)也可以用指令條數(shù)設(shè)定一次跟蹤多條指令, 每執(zhí)行一條指令之后,顯示所有寄存器的內(nèi)容和標(biāo)志狀態(tài)。 逐條指令跟蹤 -t=起

35、始地址 從指定地址起執(zhí)行一條指令后停下來(lái),顯示所有寄存器內(nèi)容及標(biāo)志位的值,如來(lái)指定地址則從當(dāng)前cs:ip開(kāi)始執(zhí)行。 a:debug -a 08f1:0100 mov dl,03h 08f1:0102 mov ah,02h 08f1:0104 int 21h 08f1:0106 int 20h 08f1:0108 -t ax=0000 bx=0000 cx=0000 dx=0000 sp=ffee bp=0000 si=0000 di=0000 ds=08f1 es=08f1 ss=08f1 cs=08f1 1p=0105 nv up ei pl nz po cy 09f1:0102 b402

36、mov ah,02 若指定起始地址,則t命令會(huì)從指定的地址開(kāi)始跟蹤,我們還可以指定跟蹤一次所運(yùn)行指令的個(gè)數(shù),用ctrl+s暫停屏幕的顯示,以便觀察。 -t=100 10;由cs:100開(kāi)始跟蹤10條指令 * u起始地址或者地址范圍功能: 將內(nèi)存中的內(nèi)容轉(zhuǎn)換為匯編語(yǔ)句。 說(shuō)明: 反匯編的字節(jié)數(shù)取決與用戶(hù)的系統(tǒng)顯示形式,以及在u命令中使用的可選項(xiàng)。 (1)從指定地址開(kāi)始編譯,反匯編32個(gè)字節(jié) -u地址從cs:100開(kāi)始,其反匯編32個(gè)字節(jié) 如果地址被省略,則從一個(gè)u命令的最后一條指令的下一條單元開(kāi)始匯編32個(gè)字節(jié)。 (2)對(duì)指定的存貯范圍進(jìn)行反匯編 -u起始地址 終止地址(l 長(zhǎng)度) 例:-u 1

37、00 109 08f1:0100 cd20 int 20 08f1:0102 ff9f009a call fa12bx+9a00 08f1:0106 f0 lock 08f1:0107 fe1d call far di 08f1:0109 f0 lock 說(shuō)明:如指定了范圍則整個(gè)范圍全都會(huì)被反編譯 * w寫(xiě)盤(pán)命令* w地址 盤(pán)符: 起始扇區(qū) 扇區(qū)數(shù) 寫(xiě)盤(pán)命令 功能: 將修改過(guò)的數(shù)據(jù)寫(xiě)到磁盤(pán)上。 說(shuō)明: 可以將指定內(nèi)存地址開(kāi)始的數(shù)據(jù)寫(xiě)在磁盤(pán)上,可以在沒(méi)有指定參數(shù), 或指定地址參數(shù)的情況下,將調(diào)試文件寫(xiě)在磁盤(pán)上。 在運(yùn)行w時(shí)需設(shè)置文件的大小cx或bx寄存器 (1)把數(shù)據(jù)寫(xiě)入磁盤(pán)的指定扇區(qū) -w 起

38、始地址 驅(qū)動(dòng)器名 起始扇區(qū) 扇區(qū)數(shù) (2)把數(shù)據(jù)寫(xiě)入指定文件中 -w 起始地址 例a:debug -a 08f1:0100. . 寫(xiě)入程序段 08f1: 012a. -r cx cx:0000 :2a寫(xiě)入字節(jié)數(shù),即為程序結(jié)尾地址減起始地址 -n 設(shè)置文件名,需后綴為com -w wring 002a bytes -q a:tan即可執(zhí)行此程序 * xd命令:釋放ems內(nèi)存 例:-xd 0001 handle 0001 deallocatel釋放了 利用xd釋放后可再分配 *xm命令;把擴(kuò)充內(nèi)存上的內(nèi)存頁(yè)區(qū)映射到主內(nèi)存區(qū) 格式:xm ram 長(zhǎng)頁(yè)碼 主內(nèi)存頁(yè)碼句柄 例:-xm3 2 0001把0

39、001號(hào)句柄的第3號(hào)邏輯頁(yè)區(qū)映射到2號(hào)真實(shí)頁(yè)區(qū) logical page 03 mapped to physical page 02 *xs命令:顯示當(dāng)前ems使用情況。 格式 -xs debug命令實(shí)際應(yīng)用1.非物理0磁道壞軟盤(pán)的修復(fù) 此種損壞從軟盤(pán)盤(pán)面上來(lái)看并沒(méi)有明顯的劃傷和霉變。一般可以恢復(fù)其數(shù)據(jù),也可使軟盤(pán)重新再利用。 處理方法如下: . 進(jìn)入debug . 取一張引導(dǎo)區(qū)沒(méi)有損壞的好磁盤(pán),插入軟驅(qū) l 100 0 0 1 . 插入損壞的磁盤(pán)到軟驅(qū) w 100 0 0 1 q 注意:好盤(pán)與壞盤(pán)容量必須相同 2. 物理0磁道壞軟盤(pán)中的數(shù)據(jù)讀取 對(duì)于0磁道損壞的磁盤(pán),一般來(lái)說(shuō)是應(yīng)該拋棄了,當(dāng)

40、你也不妨試一試已下方法: 磁化處理:用較強(qiáng)的磁鐵在靠近壞磁盤(pán)的表面處反復(fù)移動(dòng),切不可碰到磁盤(pán)介質(zhì),以免劃傷表面,然后在試試格式化。 軟盤(pán)換面:小心的將磁盤(pán)打開(kāi),堅(jiān)磁片與金屬芯片分開(kāi),方面后再按原來(lái)的方法粘在一起即可,在重新格式化。 diskfix:對(duì)于diskfix想必大家都用的比較多了,里面的磁盤(pán)修復(fù)功能很好用的。能修復(fù)大多數(shù)磁盤(pán)表面錯(cuò)誤。 3. 硬盤(pán)啟動(dòng)失敗處理 在正常機(jī)上格式化一張軟盤(pán),無(wú)其它數(shù)據(jù) 進(jìn)入debug l 0 2 0 1 w 0 0 0 1 q 用系統(tǒng)盤(pán)啟動(dòng)故障機(jī)后 在進(jìn)入debug l 0 0 0 1 w 0 2 0 1 q 4. 軟盤(pán)不能正確讀取解決方法 如果使用軟盤(pán)時(shí)出

41、現(xiàn)如下提示 general failure error reading drive a 可以用以下方法解決: 將一張好盤(pán)插入軟驅(qū) 進(jìn)入debug a 100 *:*100 mov al,0 *:* mov cx,1 *:* mov dx,0 *:* mov bx,1000 *:* int 25 *:* int 20 回車(chē) g=0100 插入壞盤(pán)并進(jìn)入debug a 200 *:*100 mov al,1 *:* mov cx,1 *:* mov dx,0 *:* mov bx,1000 *:* int 26 *:* int 20 回車(chē) g=200 5.cmos 數(shù)據(jù)的保存,恢復(fù) cmosram

42、的地址口的口地址為 70h 數(shù)據(jù)口的口地址為 71h 讀取時(shí)只需將讀的cmosram的地址送到70h,隨后就可以從71 h中得到所需數(shù)據(jù)。 (1)讀取cmos數(shù)據(jù) 進(jìn)入debug a 100 *:*100 mov bx,1000 *:* mov cx,0040 *:* mov ax,0000 *:0109 mov dx,cx *:* mov cx,0005 *:010e loop 010e *:* out 70,al *:* mov cx,0005 *:0115 loop 0115 *:* in al,71 *:* mov bx,al *:* cmp ah,0e *:* jb 0123 *:* add ah,80 *:0123 inc ah *:* inc bx *:* mov cx,dx *:* mov al,ah *:* loop 0109 *:* mov ah,3c *:* mov dx,0150 *:* mov cx,0020 *:* int

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論