第2章 實(shí)模式下存儲(chǔ)器組織與尋址方式_第1頁
第2章 實(shí)模式下存儲(chǔ)器組織與尋址方式_第2頁
第2章 實(shí)模式下存儲(chǔ)器組織與尋址方式_第3頁
第2章 實(shí)模式下存儲(chǔ)器組織與尋址方式_第4頁
第2章 實(shí)模式下存儲(chǔ)器組織與尋址方式_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第2章 實(shí)模式下的存儲(chǔ)器組織與尋址方式 前面提到,數(shù)據(jù)可存儲(chǔ)在寄存器、內(nèi)存單前面提到,數(shù)據(jù)可存儲(chǔ)在寄存器、內(nèi)存單元,元,I/OI/O端口。現(xiàn)在需考慮的問題是:端口?,F(xiàn)在需考慮的問題是:在編在編程時(shí)如何訪問這些數(shù)據(jù)?程時(shí)如何訪問這些數(shù)據(jù)?(1 1)若在寄存器中,可直接用寄存器名來訪)若在寄存器中,可直接用寄存器名來訪問寄存器中的數(shù)據(jù)。問寄存器中的數(shù)據(jù)。(2 2)若在內(nèi)存單元或)若在內(nèi)存單元或I/OI/O端口,則需按地址端口,則需按地址訪問。訪問。2.1實(shí)模式下的存儲(chǔ)器組織 2.1.1 存儲(chǔ)單元的地址和內(nèi)容 2.1.2 存儲(chǔ)器的分段組織2.2尋址方式 2.2.1 數(shù)據(jù)尋址方式 2.2.2 程序存儲(chǔ)

2、器尋址方式2.1.1存儲(chǔ)單元的地址和內(nèi)容存儲(chǔ)單元地址 :8086系統(tǒng)中,為了標(biāo)識(shí)和存取每一個(gè)存儲(chǔ)單元,給每個(gè)存儲(chǔ)單元規(guī)定一個(gè)編號(hào),這就是存儲(chǔ)單元地址。 存儲(chǔ)單元的內(nèi)容 :一個(gè)存儲(chǔ)單元中存放的信息稱為該存儲(chǔ)單元的內(nèi)容。8086系統(tǒng)中一個(gè)存儲(chǔ)單元可存放一個(gè)字節(jié)數(shù)據(jù)。 從圖可看到,地址為34560H的存儲(chǔ)單元中的內(nèi)容是34H;而地址為34561H的字節(jié)存儲(chǔ)單元中的內(nèi)容是12H。2.1.2存儲(chǔ)器的地址分段 8086CPU的地址線是20位的,存儲(chǔ)器的物理地址是20位,而8086CPU中的寄存器都是16位的。那么如何用16位寄存器來表達(dá)20位物理地址信息?0000000000000000000000000

3、00000000000000111111111111111111111地址位數(shù)地址位數(shù)太長(zhǎng),已太長(zhǎng),已達(dá)達(dá)20位!位!思考題:為什么8086CPU的地址線設(shè)計(jì)為20位(或內(nèi)存單元的物理地址為什么設(shè)計(jì)成20位?)?如果設(shè)計(jì)成16位(和寄存器的寬度一樣),內(nèi)存訪問的地址表達(dá)就簡(jiǎn)單了。請(qǐng)問設(shè)計(jì)者這樣設(shè)計(jì)的優(yōu)點(diǎn)是?可以擴(kuò)大CPU的訪存空間。 220=1024KB, 216=64KB問題解決方法1 將存儲(chǔ)器分成若干段,對(duì)某一單元的地址用段首地址和相對(duì)于段首地址的偏移量綜合表示。 這種方法類似于電影院里對(duì)座位的編號(hào)。這種分段表示可有效縮減地址的長(zhǎng)度。0000000000000000000000001111

4、111111110000偏移量偏移量 01偏移量偏移量10這樣上圖中第一個(gè)標(biāo)注單元的地址為:段地址為:00000000000000000000偏移量(或偏移地址)為: 01它的物理地址為: 段地址+偏移量即:000000000000000000001這樣上圖中第二個(gè)標(biāo)注單元的地址為:段地址為:00001111111111110000偏移量(或偏移地址)為: 10它的物理地址為: 段地址+偏移量即:00001111111111110010按這樣的方法有以下兩個(gè)問題困惑著我們,值得進(jìn)一步思考?(1)偏移量如果過大,16位寄存器表示不了怎么辦?(2)段首地址(或段地址)為20位,如何用16位寄存器來

5、表示?對(duì)于問題對(duì)于問題1 1,如果將一段的長(zhǎng)度限制在,如果將一段的長(zhǎng)度限制在6464K K以內(nèi),則偏移量的位數(shù)不超過以內(nèi),則偏移量的位數(shù)不超過1616位,這樣位,這樣就可以用就可以用1616位寄存器表達(dá)。位寄存器表達(dá)。(1616位寄存器能表示的最大偏移量為:位寄存器能表示的最大偏移量為: 1111111111111111(16個(gè)1),即為216-1=64K-1,再加上段首的一個(gè)單元,共64K. 對(duì)于問題2,分段時(shí),如果只將單元地址的最后四位為0的地址作為段首地址,用16位寄存器存放它的前16位,在進(jìn)行地址運(yùn)算時(shí)再將16位段地址末尾補(bǔ)4個(gè)0。 這樣,20位物理地址的計(jì)算方法表示如下:16位段地址

6、位段地址16位偏移地址位偏移地址20位物理地址位物理地址+0 0 0 0 小結(jié):(1)在1M字節(jié)的存儲(chǔ)器里,每一個(gè)單元都有一個(gè)唯一的20位地址,稱為該單元的物理地址。CPU訪問存儲(chǔ)器時(shí),必須先確定要訪問的存儲(chǔ)單元的物理地址才能取得(或存入)該單元的內(nèi)容。 (2)根據(jù)要求可把1M字節(jié)地址空間劃成若干邏輯段。每個(gè)邏輯段必須滿足兩個(gè)條件:一是邏輯段的起始地址(簡(jiǎn)稱段首址)必須是16的倍數(shù)(即末尾4位是0);二是邏輯段的最大長(zhǎng)度為64K。(3)20位物理地址由16位段地址和16位偏移地址組成。段地址是每一段的起始地址,其低4位一定是0,這樣就可以規(guī)定段地址只取段起始地址的高16位來表示。偏移地址是指在

7、段內(nèi)相對(duì)于段起始地址的偏移值。這樣,物理地址 的計(jì)算方法表示如下:16位段地址16位偏移地址20位物理地址+0 0 0 0(4)一個(gè)匯編語言源程序,一般由兩部分組成: 代碼段+ 數(shù)據(jù)段,有時(shí)還包括堆棧段、附加段。 除非專門指定,在一般情況下,各段在存儲(chǔ)器中的分配(或段地址)由操作系統(tǒng)負(fù)責(zé),用戶程序中只涉及偏移量。例:MOV AX, 2000H 表示把DS+2000H地址所指向的單元的數(shù)傳送給AX寄存器。 (5)每段的最大長(zhǎng)度為64K,但各段的實(shí)際大小操作系統(tǒng)會(huì)根據(jù)實(shí)際需要來分配。不一定要占有64K最大空間。(6)CPU在物理地址的形成過程中,會(huì)按有一定規(guī)則去選擇段寄存器,除非在程序中特別說明。

8、段偏移用途CSIP指令尋址DSBX/DI/SI或16位數(shù)數(shù)據(jù)尋址SSSP/BP堆棧尋址ESDI(串操作)目標(biāo)串尋址(7)該存儲(chǔ)管理方式允許程序在存儲(chǔ)器內(nèi)重定位(一個(gè)程序不加修改在另外一個(gè)存儲(chǔ)區(qū)仍可以運(yùn)行),因?yàn)槌绦騼?nèi)只涉及依偏移地址,不同存儲(chǔ)區(qū)只需修改段寄存器即可。這方便了操作系統(tǒng)對(duì)存儲(chǔ)器的管理。2.22.2尋址方式尋址方式2.2.1 數(shù)據(jù)尋址方式(操作數(shù)尋址)2.2.2 程序?qū)ぶ贩绞剑ㄖ噶顚ぶ罚?.2.12.2.1數(shù)據(jù)尋址方式數(shù)據(jù)尋址方式 計(jì)算機(jī)中指令由操作碼和地址碼兩部分組成,指令的格式一般是:操作碼操作碼 地址碼地址碼1 地址碼地址碼2 指示計(jì)算機(jī)所要指示計(jì)算機(jī)所要執(zhí)行的操作執(zhí)行的操作例

9、: MOV AX, 2000 指令的操作對(duì)象是數(shù)據(jù),在指令中需給出操作數(shù)在內(nèi)存中的址或操作數(shù)本身址。 數(shù)據(jù)尋址方式:是指尋找指令中操作數(shù)的方式。 常用數(shù)據(jù)尋址方式(1)立即數(shù)尋址(2)寄存器尋址(3)寄存器間接尋址(4)直接尋址(5)基址變址尋址(1)立即數(shù)尋址n直接在指令中給出操作數(shù),即操作數(shù)緊跟在操作碼之后。 立即數(shù)尋址常用于給寄存器賦初值。例:MOV AX, 10 執(zhí)行后(AX)=000AH (2 ) 寄存器尋址寄存器尋址寄存器尋址方式的操作數(shù)在指令指明的寄存器中。匯編格式:R 其中R表示寄存器名。功能:操作數(shù)直接存放在寄存器R中?!纠俊纠?下列程序執(zhí)行后,(AX)=?,(BX)=?

10、 MOV AX,1234H MOV BX,5678H ADD AX,BX第一、二條指令A(yù)X、BX皆為目的操作數(shù)地址,為寄存器尋址方式。第三條指令中,AX為目的操作數(shù)地址,BX為源操作數(shù)地址。源地址和目的地址皆為寄存器尋址方式。圖形表示:執(zhí)行:1234HAX 5678HBX (AX)+(BX)AX執(zhí)行后:(AX)=68ACH,(BX)=5678H(3)寄存器間接尋址)寄存器間接尋址寄存器間接尋址方式中,寄存器的內(nèi)容為操作數(shù)的偏移地址,操作數(shù)在存儲(chǔ)器中。匯編格式:R功能:操作數(shù)存放在存儲(chǔ)器,寄存器R存放操作數(shù)的偏移地址。說明:對(duì)于數(shù)據(jù)段數(shù)據(jù)的尋址,若采用寄存器間接尋址方式,只能使用BX、SI、DI

11、來存放地址的偏移量,在指令運(yùn)行時(shí),計(jì)算機(jī)將用DS的值加上這個(gè)偏移量形成20位物理地址。DS+BX/SI/DI 物理地址例:寄存器和存儲(chǔ)器內(nèi)容分別為:例:寄存器和存儲(chǔ)器內(nèi)容分別為:SISIDSDS執(zhí)行指令:MOV AL ,SI 執(zhí)行后:(AL)=? 0030H2000H20030H12H寄存器使用說明: AX,BX,CX,DX這四個(gè)16位寄存器皆可作為兩個(gè)8個(gè)寄存器使用。AX:AH,AL; BX:BH,BLCX:CH,CL; DX:DH,DL(4)(4)直接尋址方式直接尋址方式 直接尋址方式中,操作數(shù)在存儲(chǔ)器中,指令直接給出操作數(shù)的偏移地址。在指令運(yùn)行時(shí),計(jì)算機(jī)將用DS的值加上這個(gè)偏移量形成20

12、位物理地址。例:MOV AL,0020若該程序段DS的值為3000H,則該指令的功能是將地址為30020H的內(nèi)存單元的內(nèi)容傳送至AL寄存器。(5 5)基址變址尋址)基址變址尋址用一基址寄存器(通常為BX)和一個(gè)變址寄存器(SI或DI)的內(nèi)容之和作為操作數(shù)在內(nèi)存中的偏移地址,段地址為DS。如BX=1000H,DI=0010H,DS=0100H,指令: MOV DX,BX+DI源操作數(shù)的物理地址為:DS16(左移4位)+ BX+DI即為:01000H +1010H 10010H2.2.22.2.2程序?qū)ぶ贩绞剑ㄖ噶顚ぶ罚┏绦驅(qū)ぶ贩绞剑ㄖ噶顚ぶ罚?程序的執(zhí)行需從存儲(chǔ)器(代碼段)中取出指令,這便是指令的尋址。 CS為代碼段段地址,IP指令指針寄存器存放的是指令地址的偏移量。 (1)在程序剛開始執(zhí)行時(shí),IP為0000H,尋到程序的第一條指令,送入CPU指令寄存器,分析并執(zhí)行;(2)若程序順序執(zhí)行,則IP會(huì)自動(dòng)加“1”,實(shí)現(xiàn)對(duì)第2條指令的尋址;(3)若程序要進(jìn)行轉(zhuǎn)移(分支或調(diào)用子程序等),則需改變IP的值(若是段間轉(zhuǎn)移或調(diào)用,則同時(shí)需改變CS的值)。 程序按序執(zhí)行,或分支、或循環(huán)、

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論