C語(yǔ)言中數(shù)組指針在匯編語(yǔ)言尋址方式中的應(yīng)用_第1頁(yè)
C語(yǔ)言中數(shù)組指針在匯編語(yǔ)言尋址方式中的應(yīng)用_第2頁(yè)
C語(yǔ)言中數(shù)組指針在匯編語(yǔ)言尋址方式中的應(yīng)用_第3頁(yè)
C語(yǔ)言中數(shù)組指針在匯編語(yǔ)言尋址方式中的應(yīng)用_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、C語(yǔ)言中數(shù)組指針在匯編語(yǔ)言尋址方式中的應(yīng)用語(yǔ)言中數(shù)組指針在匯編語(yǔ)言尋址方式中的應(yīng)用1、引論文聯(lián)盟.Ll.言?匯編語(yǔ)言程序設(shè)計(jì)?是高等院校計(jì)算機(jī)及相近專(zhuān)業(yè)學(xué)生必修的專(zhuān)業(yè)根底課程之一,它不僅是?嵌入式開(kāi)發(fā)?、?操作系統(tǒng)?、?單片機(jī)?、?接口技術(shù)?等根底課程的先修課程,而且也非常有助于學(xué)生系統(tǒng)掌握計(jì)算機(jī)根底知識(shí)和進(jìn)步編程才能1。作為一門(mén)直接控制計(jì)算機(jī)硬件和pu結(jié)合最為嚴(yán)密的一門(mén)語(yǔ)言,執(zhí)行起來(lái)時(shí)最為有效和速度最快的。但是區(qū)別于高級(jí)語(yǔ)言他又自身的弱點(diǎn),比方可讀性差,需要更深化地熟悉硬件構(gòu)造,編程和調(diào)試過(guò)程繁瑣,而且沒(méi)有便捷的開(kāi)發(fā)調(diào)試環(huán)境。在講授?匯編語(yǔ)言程序設(shè)計(jì)?過(guò)程中,假如可以結(jié)合或者轉(zhuǎn)化為高級(jí)語(yǔ)言如

2、語(yǔ)言的內(nèi)容那學(xué)生承受和學(xué)習(xí)起來(lái)就能增加不少的興趣,進(jìn)步學(xué)生的學(xué)習(xí)效率。2、語(yǔ)言數(shù)組和指針的使用2.1數(shù)組數(shù)組是在程序設(shè)計(jì)中為了處理方便,把具有一樣類(lèi)型的假設(shè)干變量按有序的形式組織起來(lái)的一種形式。這些按序排列的同類(lèi)數(shù)據(jù)元素的集合稱(chēng)為數(shù)組2。在語(yǔ)言中,數(shù)組屬于構(gòu)造數(shù)據(jù)類(lèi)型。一個(gè)數(shù)組可以分解為多個(gè)數(shù)組元素,這些數(shù)組元素可以是根本數(shù)據(jù)類(lèi)型或是構(gòu)造類(lèi)型。因在匯編語(yǔ)言中主要把指令系統(tǒng)中的尋址方式轉(zhuǎn)換為一維數(shù)組或指針,所以下面就簡(jiǎn)要介紹一下一維數(shù)組和指針的特點(diǎn)定義一維數(shù)組的格式為:類(lèi)型說(shuō)明符數(shù)組名整型常量表達(dá)式,;例如:inta10,b5;說(shuō)明:(1)它表示定義了兩個(gè)一維數(shù)組,一個(gè)數(shù)組名為a,另一個(gè)數(shù)組名為

3、b。數(shù)組名是按照標(biāo)識(shí)符的規(guī)那么構(gòu)成的。(2)a數(shù)組含有10個(gè)數(shù)組元素,即a0、a1、a2、a9;b數(shù)組含有5個(gè)數(shù)組元素,即b0、b1、b2、b3和b4。注意,不能使用a10和b5,否那么即出現(xiàn)數(shù)組超界現(xiàn)象,并且需要注意的是數(shù)組的小標(biāo)是從0開(kāi)場(chǎng)的。(3)類(lèi)型說(shuō)明符int說(shuō)明a數(shù)組和b數(shù)組中的每個(gè)元素均占2個(gè)字節(jié),只能存放整型數(shù)據(jù)。(4)整型常量表達(dá)式可以是整型常量或符號(hào)常量。最常見(jiàn)的是整型常量。不允許為變量。(5)編譯程序如Turb為a數(shù)組在內(nèi)存中分配了10個(gè)連續(xù)的數(shù)組單元共占20個(gè)字節(jié),為b數(shù)組在內(nèi)存中分配了5個(gè)連續(xù)的數(shù)組單元共占10個(gè)字節(jié)。(6)編譯程序還指定數(shù)組名a為數(shù)組的首地址,即a與a

4、0等價(jià);指定數(shù)組名b為b數(shù)組的首地址,即b與b0等價(jià)。2.2指針指針是一個(gè)特殊的變量,它里面存儲(chǔ)的數(shù)值被解釋成為內(nèi)存里的一個(gè)地址。計(jì)算機(jī)內(nèi)存中的每個(gè)內(nèi)存單元,都有相應(yīng)的內(nèi)存地址。在程序中對(duì)變量進(jìn)展存取操作有兩種方式,一種叫直接存取,就是指在程序中對(duì)變量進(jìn)展存取操作時(shí)是按變量的地址來(lái)存取的方法,另一種叫間接存取,就是通過(guò)另外定義一個(gè)指針變量來(lái)保存需要訪問(wèn)的數(shù)據(jù)的地址3。(1)指向簡(jiǎn)單變量的指針。(2)指向數(shù)組的指針。指針?biāo)傅臄?shù)組既可以是一維數(shù)組,也可是多維數(shù)組。(3)指針數(shù)組。數(shù)組的元素值為指針,指針數(shù)組是一組有序的指針集合。(4)指向指針的指針。假如一個(gè)指針變量存放的是另一個(gè)指針變量的地址,

5、那么稱(chēng)這個(gè)指針變量為指向指針的指針。(5)指向函數(shù)的指針。在語(yǔ)言中,一個(gè)函數(shù)總是占用一段連續(xù)的內(nèi)存區(qū),而函數(shù)名就是該函數(shù)所占內(nèi)存區(qū)的首地址。我們可以把函數(shù)的這個(gè)首地址賦予一個(gè)指針變量,通過(guò)指針變量就可以找到并調(diào)用這個(gè)函數(shù)。3、數(shù)組和指針在匯編語(yǔ)言指令系統(tǒng)尋址方式中的應(yīng)用和轉(zhuǎn)換3.1匯編語(yǔ)言指令系統(tǒng)的尋址方式4(1)立即尋址。(2)存放器尋址。(3)直接尋址。(4)存放器間接尋址:指令中指出一個(gè)基址存放器BX、BP或變址存放器SI、DI,并以其內(nèi)容做為操作數(shù)的有效地址,ADDAX,BP物理地址=10H(SS)+(BP)。(5)存放器相對(duì)尋址:指令中指出一個(gè)基址或變址存放器,同時(shí)給出一個(gè)位移量,存

6、放器內(nèi)容與位移之和做為操作數(shù)的有效地址。VAX,DI+100H,有效地址EA=(DI)+100H,為物理地址=10H(DS)+(DI)+100H。(6)基址變址尋址:指令同時(shí)指出一個(gè)基址存放器和一個(gè)變址存放器,兩存放器內(nèi)容的和為操作數(shù)的有效地址。ADDAX,BXSI,有效地址EA=(BX)+(SI)。物理地址=10H(DS)+(BX)+(SI)。(7)相對(duì)基址變址尋址:指令中給出一個(gè)基址存放器一個(gè)變址存放器和一個(gè)位移量。兩個(gè)存放器的內(nèi)容及位移量三者之和做為操作數(shù)的有效地址。例:VDX,100HBXSI,物理地址=10H(DS)+(BX)+(SI)+100H。3.2間接尋址方式轉(zhuǎn)換為數(shù)組或指針3

7、.2.1存放器間接尋址轉(zhuǎn)成一維數(shù)組來(lái)理解形式:ADDAX,BP物理地址=10H(SS)+(BP)。我們就可以認(rèn)為,在此定義了一個(gè)數(shù)組SS,即SS中的值為這個(gè)數(shù)組的首地址,當(dāng)然我們知道這個(gè)數(shù)組的最大元素個(gè)數(shù)為64K個(gè)。剛剛談到偏移量和數(shù)組下標(biāo)都是從0開(kāi)場(chǎng)的,所以偏移量BP就可以認(rèn)為是這個(gè)數(shù)組的一個(gè)下標(biāo),在這尋址操作數(shù)的時(shí)候是要把這個(gè)下標(biāo)作為一個(gè)內(nèi)存地址,其所存儲(chǔ)的內(nèi)容就是我們所要找的操作數(shù)。在數(shù)組中形如I=A10就是把A數(shù)組的第10個(gè)元素賦值給I,在ADDAX,BP語(yǔ)句中BP也有一個(gè)中括號(hào),只是在這個(gè)地方省略了數(shù)組名;并且也是把SS數(shù)組的第BP個(gè)元素賦值給AX。所以無(wú)論從形式還是從本質(zhì)上就把存放

8、器間接尋址轉(zhuǎn)換成了一個(gè)一維數(shù)組。3.2.2存放器間接尋址轉(zhuǎn)成指針來(lái)理解因?yàn)橹羔樅蛿?shù)組有時(shí)間是可以互相轉(zhuǎn)換的,所以在這也可以轉(zhuǎn)換成指針來(lái)理解。形式:ADDAX,BP物理地址=10H(SS)+(BP)。BP在匯編語(yǔ)言中本身就定義為一個(gè)基址指針用來(lái)和堆棧段配對(duì)使用,其中存放的數(shù)據(jù)是堆棧段的某一個(gè)存儲(chǔ)單元地址。這就和指針吻合了,前面說(shuō)到指針變量名與地址間具有一一對(duì)應(yīng)關(guān)系,在存取操作時(shí)是按變量的地址來(lái)進(jìn)展的一種間接存取的方法。那么這個(gè)地方我們可以認(rèn)為論文聯(lián)盟.Ll.BP是一個(gè)指向堆棧段中某一個(gè)存儲(chǔ)單元的語(yǔ)言意義上的指針。這樣就把存放器間接尋址方式可以理解成語(yǔ)言意義上的指針。對(duì)于存放器相對(duì)尋址、基址變址尋址、基址變址尋址我們也都可以通過(guò)上面的方法來(lái)理解,只是數(shù)組下標(biāo)是通過(guò)表達(dá)式形式給出的而已,讀者可以自行轉(zhuǎn)化理

溫馨提示

  • 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)論