版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本章要求教學(xué)重點(diǎn)及難點(diǎn):物理地址計(jì)算1.了解存儲(chǔ)器地址和內(nèi)容的概念;2.了解存儲(chǔ)器地址分段的方式;3.掌握邏輯地址和物理地址的概念及計(jì)算方式;4.了解堆棧的概念及外部設(shè)備。計(jì)劃學(xué)時(shí):2學(xué)時(shí)第3章存儲(chǔ)器的分段
3.1存儲(chǔ)單元的地址和內(nèi)容基本概念:
計(jì)算機(jī)存儲(chǔ)信息的基本單位是位(Bit),一位可存儲(chǔ)一個(gè)二進(jìn)制數(shù)。每8個(gè)位組成一個(gè)字節(jié)。
存儲(chǔ)器存儲(chǔ)信息的基本單位是字節(jié)(Byte),由8個(gè)二進(jìn)制位組成。位編號(hào)如下:
在存儲(chǔ)器中,每一個(gè)字節(jié)單元都有一個(gè)與之對(duì)應(yīng)的、唯一的存儲(chǔ)器地址。稱為物理地址。對(duì)于16位字長的PC機(jī)(8086/8088),由兩個(gè)字節(jié)組成一個(gè)字(Word)。其位編號(hào)如下:
01234567
0123456789101112131415高位字節(jié)MSB低位字節(jié)LSB地址的定義每一個(gè)字節(jié)單元都有一個(gè)與之對(duì)應(yīng)的單元地址。對(duì)于字單元,由兩個(gè)字節(jié)單元組成,其地址是采用低位字節(jié)地址來表示的。對(duì)于多字單元(雙字,4字等),其地址同樣是采用最低位字節(jié)地址來表示的。地址范圍:不同機(jī)器,其可以訪問的物理地址范圍是不同的,一般由系統(tǒng)的地址總線寬度決定。例如:8086的地址總線為20位,其地址訪問范圍是:0H---0FFFFFH。而PentiumII的地址總線為36位,則地址范圍是:0H---0FFFFFFFFFH。存儲(chǔ)單元的內(nèi)容定義:存儲(chǔ)單元中存放的信息稱為該存儲(chǔ)單元的內(nèi)容表示:存儲(chǔ)地址加”()”如果用X表示某存儲(chǔ)單元的地址,則X單元的內(nèi)容可以表示為(X);假如X單元中存放著Y,而Y又是一個(gè)地址,則可用(Y)=((X))來表示Y單元的內(nèi)容。
34H12H…1EH2FH字節(jié)0000H0001H0002H0003H0004H0005H0006H1234H1235H0004H字節(jié)單元的內(nèi)容:(0004H)=34H0004H字單元的內(nèi)容:(0004H)=1234H0004H字單元的內(nèi)容為1234H,表示為:
(0004H)=1234H0004H字節(jié)單元存放的信息為34H,表示:(0004H)=34H
字單元由兩個(gè)字節(jié)單元組成,其地址采用它的低地址來表示。字存入存儲(chǔ)器:低位字節(jié)存入低地址單元,高位字節(jié)存入高地址單元。假如X單元中存放著Y,而Y又是一個(gè)地址,則可用(Y)=((X))來表示Y單元的內(nèi)容。
34H12H…1EH2FH字節(jié)0000H0001H0002H0003H0004H0005H0006H1234H1235H直接表示1234H字單元的內(nèi)容:
S=(1234H)=2F1EH直接給出S的單元地址,(1234H)=2F1EH例如,1234H字單元的內(nèi)容為S,有兩種表示方式:間接表示1234H字單元的內(nèi)容:
S=((0004H))=(1234H)=
2F1EHS的單元地址存放在0004H字單元中,(0004H)=1234H從0004H字單元中取出S的單元地址,再把S的內(nèi)容讀出來:((0004H))=2F1EH
8086/8088CPU有20根地址總線A19A18…A1A0,可以訪問存儲(chǔ)器的最大容量為:220B=1024KB=1MB,在8086CPU中所有可用來存放地址的寄存器都是16位的。3.2存儲(chǔ)器地址的分段
在IBMPC機(jī)里采用了存儲(chǔ)器地址分段的辦法。把1MB的存儲(chǔ)空間劃分成若干個(gè)段(Segment),每個(gè)段可由1~64KB(即65536B)個(gè)連續(xù)的字節(jié)單元組成。每個(gè)段是一個(gè)可獨(dú)立尋址的邏輯單位。在8086/8088的程序設(shè)計(jì)中,需要設(shè)立幾個(gè)段,每個(gè)段有多少個(gè)字節(jié)以及每個(gè)段的用途完全由用戶自己確定。同時(shí)每個(gè)段中存儲(chǔ)的代碼或數(shù)據(jù),可以存放在段內(nèi)任意單元中。
那么在16位字長的機(jī)器里,用什么辦法來提供20位地址呢?分段的基本規(guī)則
在編制程序時(shí),要把存儲(chǔ)器劃分成段,每個(gè)段最大可達(dá)64KB,這樣段內(nèi)地址可以用16位表示。
PC機(jī)對(duì)段的起始地址有限制,段不能起始于任意地址,而必須從任一小段(Paragraph)的首地址開始。機(jī)器規(guī)定:從0地址開始,每16個(gè)字節(jié)為一小段。00000,00001,00002,……,0000E,0000F;00010,00011,00012,……,0001E,0001F;00020,00021,00022,……,0002E,0002F;在十六進(jìn)制表示的地址中,最低位為0(即20位地址的低4位為0)。
雖然存儲(chǔ)器可以劃分成若干個(gè)段,但在任何時(shí)刻,一個(gè)程序只能訪問4個(gè)段中的內(nèi)容,這4個(gè)段分別是代碼段(CodeSegment),堆棧段(StackSegment),數(shù)據(jù)段(DataSegment)和附加段(ExtraSegment)。它們的段首地址的段基值分別由對(duì)應(yīng)的4個(gè)段寄存器CS,SS,DS,ES指明。它們分別保存各自段首地址的高16位值(A19~A4),由4個(gè)段寄存器指向的那些段叫當(dāng)前段(CurrentSegment)。所以當(dāng)前段至多可容納64KB的程序代碼,64KB的堆棧和128KB的數(shù)據(jù)(分別由DS、ES指向的當(dāng)前段)在規(guī)模不是很大的應(yīng)用程序中,這些容量是足夠使用。如果應(yīng)用規(guī)模較大,可以在程序中通過修改相應(yīng)段寄存器的內(nèi)容,從而訪問其他段,如可用LDS,LES指令等方式來改變當(dāng)前段。
CPU訪問主存必須傳送出物理地址,而用戶編程則使用邏輯地址,于是在8086/8088系列微型機(jī)中,每個(gè)存儲(chǔ)單元都有兩種形式的地址:物理地址(PhsysicalAddress)和邏輯地址(LogicalAddress)以及CPU內(nèi)如何把程序員使用的邏輯地址形成物理地址(真實(shí)地址)的問題。每一個(gè)存儲(chǔ)單元的物理地址是唯一的,就是這個(gè)單元的地址編碼。CPU與存儲(chǔ)器之間的任何信息交換,都必須使用20位的物理地址先行,經(jīng)地址譯碼器后形成開門信號(hào),把被訪問的存儲(chǔ)單元的“門”打開,方能進(jìn)行數(shù)據(jù)交換。在程序設(shè)計(jì)中,程序員使用的是邏輯地址,而不使用物理地址,這不僅有利于程序的開發(fā),且對(duì)存儲(chǔ)器的動(dòng)態(tài)管理也是有利的。一個(gè)邏輯地址是由段基值和偏移量(OFFSET)兩部分組成,而且都是無符號(hào)的16位二進(jìn)制數(shù)。3.3邏輯地址與物理地址段基值是一個(gè)段首地址的高16位,它存放在某一個(gè)16位段寄存器中。段首址的低4位為0,即A3A2A1A0=0000。偏移量表示了某存儲(chǔ)單元與它所對(duì)應(yīng)的段的段首地址之間的字節(jié)距離。如當(dāng)偏移量為‘0’時(shí),就在這個(gè)段的起始單元,當(dāng)偏移量為0FFFFH時(shí),就是這個(gè)段(最大)最末一個(gè)字節(jié)單元。每當(dāng)CPU訪問存儲(chǔ)器時(shí),總線接口部件BIU便把邏輯地址轉(zhuǎn)換成物理地址。
轉(zhuǎn)換方法是:首先把邏輯地址中的段寄存器保存的段基值左移4位(把段寄存器的內(nèi)容乘以16),其本質(zhì)是恢復(fù)A3A2A1A0的四位二進(jìn)制的0或一位16進(jìn)制的0,使之形成一個(gè)完整的段首地址。這也就是為什么段首址要從小段的首地址開始的原因。形成了20位的段起始地址(段基址)之后,再加上16位的無符號(hào)偏移量,即產(chǎn)生了CPU訪問主存單元的20位物理地址,從地址總線輸出。物理地址的計(jì)算計(jì)算公式:
物理地址=段地址×10H+偏移地址每個(gè)存儲(chǔ)單元只有唯一的物理地址,但它卻可以由不同的段地址和不同的偏移地址組成。
16位段地址15016位偏移地址150+20位物理地址190【例】
:計(jì)算下列存儲(chǔ)單元的物理地址:(1)2000:3000;(2)2100:2000;(3)2280:0800;(4)2250:0500;【解】:(1)物理地址=2000H×10H+3000H=23000H;(2)物理地址=2100H×10H+2000H=23000H;(3)物理地址=2280H×10H+0800H=23000H;(4)物理地址=2250H×10H+0500H=22A00H;
每個(gè)段寄存器可以按規(guī)定給出一個(gè)段的起始地址的段基值,每個(gè)段都有各自的用途。如前所述,代碼段存放的是要運(yùn)行的程序及數(shù)據(jù)。數(shù)據(jù)段存放運(yùn)行程序所用的數(shù)據(jù),如果在程序中使用了串操作處理指令,則其源操作數(shù)默認(rèn)存放在數(shù)據(jù)段中(源串可允許段超越)。堆棧段定義了堆棧的所在區(qū)域,堆棧是一個(gè)數(shù)據(jù)結(jié)構(gòu),它開辟了一個(gè)比較特殊的存儲(chǔ)區(qū),并以“后進(jìn)先出”的原則訪問這一區(qū)域。附加段是附加的數(shù)據(jù)段,它是一個(gè)輔助的數(shù)據(jù)區(qū),對(duì)于串處理指令,它是目的串操作數(shù)存放的區(qū)域,它不允許進(jìn)行段跨越。當(dāng)用戶在編制程序時(shí),應(yīng)該按照上述規(guī)定把程序的各部分放在規(guī)定的區(qū)段之中。除非專門指定,如用戶自行設(shè)定之外,在一般情況下,各段在存儲(chǔ)器中的分配是由操作系統(tǒng)負(fù)責(zé)的。每個(gè)段可以獨(dú)立地占用64KB存儲(chǔ)區(qū)。各段也允許部分重疊或完全重疊,下面的例子可以說明這種情況。
【例】如果代碼段中的程序占有16KB(4000H)存儲(chǔ)區(qū),數(shù)據(jù)段占有2KB(800H)存儲(chǔ)區(qū),堆棧段占有1KB存儲(chǔ)區(qū)。代碼段的區(qū)域本可以為01000H~10FFFH(64KB),由于程序區(qū)只需要16KB,所以程序區(qū)結(jié)束后的第一個(gè)小段的首地址就作為數(shù)據(jù)段的起始地址(05000H)。而數(shù)據(jù)段僅需2KB,則數(shù)據(jù)段結(jié)束后的第一個(gè)小段的首地址又成為堆棧段的起始地址(05800H)。這樣,代碼段和數(shù)據(jù)段及堆棧段重疊在一起了。
注意:每個(gè)存儲(chǔ)單元的內(nèi)容是絕對(duì)不允許發(fā)生沖突的,也就是說,某個(gè)存儲(chǔ)單元既存儲(chǔ)了指令代碼,又將存儲(chǔ)操作的數(shù)據(jù),這是絕對(duì)禁止的。這里所提到的重疊只是指每個(gè)區(qū)段的大小可允許根據(jù)編程的實(shí)際情況分配,并非一定要占用64KB的最大段空間。物理地址01000H10FFFH代碼段代碼段實(shí)際使用16KB04FFFH數(shù)據(jù)段05000H057FFH數(shù)據(jù)段實(shí)際使用2KB堆棧段05800H【例】:已知(CS)=1000H,(DS)=4000H,其中代碼段大小為1KB,數(shù)據(jù)段大小為64KB,試畫出對(duì)應(yīng)儲(chǔ)存器分段的示意圖,要求標(biāo)出首尾地址?!痉治觥浚?/p>
對(duì)于代碼段,由題意,大小為1KB,即對(duì)應(yīng)的偏移地址為:0H---3FFH,且CS為1000H,則對(duì)應(yīng)的物理地址為:
10000H---103FFH對(duì)于數(shù)據(jù)段,由題意,大小為64KB,即對(duì)應(yīng)的偏移地址為:0H---FFFFH,且DS為4000H,則對(duì)應(yīng)的物理地址為:
40000H---4FFFFH1000HCS4000HDSSSES代碼段數(shù)據(jù)段10000H103FFH40000H4FFFFH4000:00004000:FFFF
堆棧是一個(gè)特定的存儲(chǔ)區(qū),在這個(gè)存儲(chǔ)區(qū)中信息的進(jìn)出嚴(yán)格按照一定的規(guī)則進(jìn)行。堆棧主要用于暫存數(shù)據(jù)以及在“過程”調(diào)用或處理中斷時(shí)暫存斷點(diǎn)信息。不僅在現(xiàn)代程序設(shè)計(jì)中經(jīng)常使用堆棧,在其他一些領(lǐng)域(如編譯技術(shù))中亦廣泛地應(yīng)用堆棧的概念。
堆棧的結(jié)構(gòu)現(xiàn)在常采用軟件堆棧,由編程人員用軟件在存儲(chǔ)器中劃出一塊存儲(chǔ)區(qū)作為堆棧。該存儲(chǔ)區(qū)的一端是固定的,另一端是浮動(dòng)的,所有信息的存取都在浮動(dòng)的一端進(jìn)行,這是進(jìn)棧與出棧操作的特點(diǎn)。浮動(dòng)端的地址生長方向一般有兩種方法:一為向高地址方向生長稱為向上生長,另一種為向低地址方向生長,即為向下生長。8086/8088系列微機(jī)屬于向下生長的堆棧。3.4堆棧
這個(gè)存儲(chǔ)區(qū)最大地址的字存儲(chǔ)單元為堆棧底部,稱為棧底(Bottom)。在堆棧中存放的數(shù)據(jù)或斷點(diǎn)信息從這里開始,逐漸向地址小的方向“堆積”。在任何時(shí)刻,存放最后一個(gè)信息的字存儲(chǔ)單元為堆棧頂部,稱為棧頂(Top)。棧頂是隨著進(jìn)出棧信息的多少而變的。而棧底是由軟件設(shè)定后固定不變的。
堆棧指針SP始終指向堆棧頂部的地址。8086/8088堆棧的組織在8086/8088系列微機(jī)中,堆棧是由堆棧段寄存器(SS)指定的一段存儲(chǔ)區(qū),通常,堆棧段中所包含的存儲(chǔ)單元字節(jié)數(shù)即為堆棧深度或稱為堆棧長度。SP中始終包含段基址與棧頂之間的距離(字節(jié)數(shù))。當(dāng)SP初始化時(shí),它的值就是這個(gè)堆棧的長度,由于SP是16位的寄存器,而堆棧深度最大是64KB,則至多可存放32K個(gè)字?jǐn)?shù)據(jù)。
設(shè)SP=2000H,把1234H進(jìn)棧的示意圖如下。【例】:已知CPU各段寄存器的內(nèi)容為:(CS)=3000H,(DS)=1060H,(ES)=1140H,(SS)=2200H,SP=0200H其中代碼段大小為16KB,數(shù)據(jù)段、附加段大小為64KB,試畫出對(duì)應(yīng)儲(chǔ)存器分段的示意圖,要求標(biāo)出首尾地址?!痉治觥浚?/p>
對(duì)于代碼段,大小為16KB,即對(duì)應(yīng)的偏移地址為:0H---3FFFH,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年教育機(jī)構(gòu)員工保底薪資及教學(xué)成果獎(jiǎng)勵(lì)協(xié)議3篇
- 二零二五年度高校外語專業(yè)教師聘用協(xié)議3篇
- 二零二五年度城市景觀工程勘察設(shè)計(jì)合同模板3篇
- 二零二五年度海外旅游紀(jì)念品代理銷售合同3篇
- 二零二四年度專業(yè)管道疏通上門服務(wù)合同3篇
- 2025年度物流園區(qū)運(yùn)營管理承包合同3篇
- 2024年房屋買賣合同附贈(zèng)家具及家電使用協(xié)議3篇
- 二零二五年度智能電網(wǎng)設(shè)備采購供應(yīng)合同4篇
- 風(fēng)機(jī)共振消聲課程設(shè)計(jì)
- 二零二五年度綠色社區(qū)綠化建設(shè)合同3篇
- 高二物理競(jìng)賽霍爾效應(yīng) 課件
- 金融數(shù)學(xué)-(南京大學(xué))
- 基于核心素養(yǎng)下的英語寫作能力的培養(yǎng)策略
- 現(xiàn)場(chǎng)安全文明施工考核評(píng)分表
- 亞什蘭版膠衣操作指南
- 四年級(jí)上冊(cè)數(shù)學(xué)教案 6.1口算除法 人教版
- DB32-T 3129-2016適合機(jī)械化作業(yè)的單體鋼架塑料大棚 技術(shù)規(guī)范-(高清現(xiàn)行)
- 6.農(nóng)業(yè)產(chǎn)值與增加值核算統(tǒng)計(jì)報(bào)表制度(2020年)
- 人工挖孔樁施工監(jiān)測(cè)監(jiān)控措施
- 供應(yīng)商物料質(zhì)量問題賠償協(xié)議(終端)
- 物理人教版(2019)必修第二冊(cè)5.2運(yùn)動(dòng)的合成與分解(共19張ppt)
評(píng)論
0/150
提交評(píng)論