資源描述:
《微機(jī)原理與接口技術(shù)-郭蘭英-第2章》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、微機(jī)原理與接口技術(shù)第2章微處理器存儲(chǔ)器管理技術(shù)教學(xué)重點(diǎn)●實(shí)模式存儲(chǔ)器尋址●保護(hù)模式存儲(chǔ)器尋址●分段存儲(chǔ)器管理●分頁(yè)存儲(chǔ)器管理微處理器的工作模式Intel系列微處理器如何尋址與微處理器的工作模式有關(guān)。微處理器的工作模式:實(shí)模式保護(hù)模式只允許微處理器尋址第一個(gè)1MB內(nèi)存空間允許微處理器尋址第一個(gè)1MB及第一個(gè)1MB以上的內(nèi)存空間在計(jì)算機(jī)的內(nèi)存中存放著三類信息:代碼:即指令操作碼,指出CPU執(zhí)行什么操作;數(shù)據(jù):即數(shù)值和字符等,程序加工對(duì)象;堆棧:即臨時(shí)保存的返回地址和中間結(jié)果。為了避免混淆,這三類信息分別存放在各自的存儲(chǔ)區(qū)域內(nèi)。段寄
2、存器指示這些存儲(chǔ)區(qū)域段地址。物理地址和邏輯地址物理地址是存儲(chǔ)器中某一單元的實(shí)際地址,用20位地址碼表示,用16進(jìn)制表示是00000H?FFFFFH中的一個(gè)單元,CPU訪問(wèn)存儲(chǔ)器時(shí),地址總線上送出的是物理地址.PA=(段地址)×10H+偏移地址編制程序時(shí),則采用邏輯地址,邏輯地址由段地址和偏移地址(偏移量)組成。邏輯地址=段地址:偏移地址有效地址EA注意:有些尋址方式將多個(gè)寄存器和一個(gè)偏移量組合構(gòu)成偏移地址,在此情況下,這些值可能超過(guò)FFFFH。如(CS)=4000H,(IP)=F000H+3000H=(1)2000H(偏移地址
3、)物理地址:42000H,而不是52000H。00000100001FFFFFFFFF實(shí)模式內(nèi)存實(shí)模式存儲(chǔ)器尋址實(shí)模式下尋址:邏輯地址段基址:偏移地址物理地址=段地址?10H+偏移地址。1F00064KB段1000段寄存器偏移地址=F000邏輯地址段起始地址(段首地址/段基址)的高16位稱為段地址段基地址說(shuō)明邏輯段在主存中的起始位置8088規(guī)定段基地址必須是16的整數(shù)倍:xxxx0H省略低4位0000B,段地址就可以用16位數(shù)據(jù)表示,就能用16位段寄存器表達(dá)段地址偏移地址說(shuō)明主存單元距離段起始位置的偏移量每段不超過(guò)64KB,偏
4、移地址也可用16位數(shù)據(jù)表示物理地址和邏輯地址之間的轉(zhuǎn)換關(guān)系已知一個(gè)存儲(chǔ)單元的邏輯地址為:1380H:0F00H,請(qǐng)計(jì)算其物理地址?將邏輯地址中的段地址左移4位(二進(jìn)制),加上偏移地址就得到20位物理地址段基址150偏移地址150段基址000015030物理地址190+E.g.物理地址14700H邏輯地址1460H:100H物理地址和邏輯地址E.g.物理地址14700H邏輯地址1450H:200H一個(gè)物理地址可以有多個(gè)邏輯地址段寄存器8088有4個(gè)16位段寄存器CS(代碼段)指明當(dāng)前代碼段的段地址SS(堆棧段)指明當(dāng)前堆棧段的段
5、地址DS(數(shù)據(jù)段)指明當(dāng)前數(shù)據(jù)段的段地址ES(附加段)指明當(dāng)前附加段的段地址每個(gè)段寄存器用來(lái)確定一個(gè)邏輯段的段地址,每種邏輯段均有各自的用途代碼段寄存器CS(CodeSegment)代碼段用來(lái)存放程序的指令序列代碼段寄存器CS存放代碼段的段地址指令指針寄存器IP指示下一條指令的偏移地址處理器利用CS:IP取得下一條要執(zhí)行的指令地址代碼段寄存器CS(CodeSegment)堆棧段寄存器SS(StackSegment)堆棧段確定堆棧所在的主存區(qū)域堆棧段寄存器SS存放堆棧段的段地址堆棧指針寄存器SP指示堆棧棧頂?shù)钠频刂诽幚砥骼肧
6、S:SP操作堆棧頂?shù)臄?shù)據(jù)堆棧段寄存器SS(StackSegment)數(shù)據(jù)段寄存器DS(DataSegment)數(shù)據(jù)段存放運(yùn)行程序所用的數(shù)據(jù)數(shù)據(jù)段寄存器DS存放數(shù)據(jù)段的段地址各種主存尋址方式(有效地址EA)得到存儲(chǔ)器中操作數(shù)的偏移地址處理器利用DS:EA存取數(shù)據(jù)段中的數(shù)據(jù)數(shù)據(jù)段寄存器DS(DataSegment)附加段寄存器ES(ExtraSegment)附加段是附加的數(shù)據(jù)段,也保存數(shù)據(jù):附加段寄存器ES存放附加段的段地址各種主存尋址方式(有效地址EA)得到存儲(chǔ)器中操作數(shù)的偏移地址處理器利用ES:EA存取附加段中的數(shù)據(jù)串操作指令
7、將附加段作為其目的操作數(shù)的存放區(qū)域附加段寄存器ES(ExtraSegment)如何分配各個(gè)邏輯段程序的指令序列必須安排在代碼段程序使用的堆棧一定在堆棧段程序中的數(shù)據(jù)默認(rèn)是安排在數(shù)據(jù)段,也經(jīng)常安排在附加段,尤其是串操作的目的區(qū)必須是附加段數(shù)據(jù)的存放比較靈活,實(shí)際上可以存放在任何一種邏輯段中如何分配各個(gè)邏輯段段超越前綴指令沒(méi)有指明時(shí),一般的數(shù)據(jù)訪問(wèn)在DS段;默認(rèn)的情況允許改變,需要使用段超越前綴;8088指令系統(tǒng)中有4個(gè):CS:;代碼段超越,使用代碼段的數(shù)據(jù)SS:;堆棧段超越,使用堆棧段的數(shù)據(jù)DS:;數(shù)據(jù)段超越,使用數(shù)據(jù)段的數(shù)據(jù)E
8、S:;附加段超越,使用附加段的數(shù)據(jù)段超越前綴指令段超越的示例沒(méi)有段超越的指令實(shí)例:MOVAX,[2000H];AX←DS:[2000H];從默認(rèn)的DS數(shù)據(jù)段取出數(shù)據(jù)采用段超越前綴的指令實(shí)例:MOVAX,ES:[2000H];AX←ES:[2000H];從指定的ES附加段取出數(shù)