freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

8086計(jì)算機(jī)組織-資料下載頁(yè)

2025-08-07 11:13本頁(yè)面
  

【正文】 在匯編語(yǔ)言程序中, 存儲(chǔ)單元通常不是用其物理地址標(biāo)識(shí)的,而是用其邏輯地址標(biāo)識(shí)的。邏輯地址的段地址由段寄存器給出,偏移量可由寄存器 (SI、 DI、 BP和 BX等 )給出,也可用符號(hào)地址或具體的數(shù)值給出。 至于在指令中如何指出存儲(chǔ)單元的邏輯地址將在第 3章 “ 尋址方式 ” 中給出詳細(xì)說明。 2 段寄存器 8086有 4個(gè) 16位段寄存器: CS(代碼段寄存器)指明 代碼段 的起始地址 SS(堆棧段寄存器)指明 堆棧段 的起始地址 DS(數(shù)據(jù)段寄存器)指明 數(shù)據(jù)段 的起始地址 ES(附加段寄存器)指明 附加段 的起始地址 每個(gè)段寄存器用來確定一個(gè)段的起始地址,每種段均有各自的用途。 段寄存器的引用 段寄存器是因?yàn)閷?duì)內(nèi)存的分段管理而設(shè)置的。 16位 CPU有四個(gè)段寄存器,所以,其程序可同時(shí)訪問四個(gè)不同含義的段 。段寄存器及其偏移量的引用關(guān)系如圖所示。 段寄存器 CS指向存放程序的內(nèi)存段, IP是用來存放下條待執(zhí)行的指令在該段的偏移量,把它們合在一起可在該內(nèi)存段內(nèi)取到下次要執(zhí)行的指令。 段和段寄存器的引用示意圖 段寄存器 SS指向用于堆棧的內(nèi)存段, SP是用來指向該堆棧的棧頂,把它們合在一起可訪問棧頂單元。另外,當(dāng)偏移量用到了指針寄存器 BP,則其缺省的段寄存器也是 SS,并且用 BP可訪問整個(gè)堆棧,不僅僅是只訪問棧頂。 段寄存器 DS指向數(shù)據(jù)段, ES指向附加段,在存取操作數(shù)時(shí),二者之一和一個(gè)偏移量合并就可得到存儲(chǔ)單元的物理地址。 該偏移量可以是具體數(shù)值、符號(hào)地址和指針寄存器的值等之一,具體情況將由指令的尋址方式來決定。 段和段寄存器的引用示意圖 通常, 缺省的數(shù)據(jù)段寄存器是 DS, 只有一個(gè)例外,即: 在進(jìn)行串操作時(shí),其目的地址的段寄存器規(guī)定為 ES。當(dāng)然,在一般指令中,我們還可以用強(qiáng)置前綴的方法來改變操作數(shù)的段寄存器 (見:第 3章中的強(qiáng)置前綴的書寫格式,即段超越 ) 段超越的示例 ? 沒有段超越的指令實(shí)例: ? MOV AX,[2022H] ; AX← DS:[2022H] ?;從默認(rèn)的 DS數(shù)據(jù)段取出數(shù)據(jù) ? 采用段超越前綴的指令實(shí)例: ? MOV AX,ES:[2022H] ; AX← ES:[2022H] ?;從指定的 ES附加段取出數(shù)據(jù) 一般情況下,段寄存器及其指針寄存器的引用關(guān)系如下表所示。表中的 “ 可選用的段寄存器 ” 即是可以用強(qiáng)置說明這些段寄存器的值來作為其操作數(shù)地址的段地址 。 訪問存儲(chǔ)器方式 缺省的段 寄存器 可選用的段 寄存器 偏移量 取指令 CS IP 堆棧操作 SS SP 一般取操作數(shù) DS CS、 ES、SS 有效地址 串操作 源操作數(shù) DS CS、 ES、SS SI 目標(biāo)操作數(shù) ES DI 使用指針寄存器 BP SS CS、 DS、ES 有效地址 由上表可以看出 16位 CPU在段寄存器的引用方面有如下規(guī)定: 取指令 所用的段寄存器和偏移量一定是用 CS和 IP; 堆棧操作 所用的段寄存器和偏移量一定是 SS和 SP; 串操作 的目標(biāo)操作數(shù)所用的段寄存器和偏移量一定是 ES和 DI; 其它情況,段寄存器除了其默認(rèn)引用的寄存器外,還可以強(qiáng)行改變?yōu)槠渌渭拇嫫?。 對(duì)于上述規(guī)定,隨著后續(xù)內(nèi)容的敘述,將會(huì)對(duì)它們有更進(jìn)一步理解。 存儲(chǔ)器的 邏輯 分段: 存儲(chǔ)器 64KB代碼 01500H 42022H 1CD00H 0150H 4200H 1CD0H 段寄存器 CS DS SS ES 64KB堆棧 64KB數(shù)據(jù) 64KB附加數(shù)據(jù) B0000H B000H 存儲(chǔ)器 8KB代碼 2KB數(shù)據(jù) 256堆棧 02022H 04800H 04000H 0200H 0400H 0480H CS DS SS 優(yōu)點(diǎn) : 允許程序在存儲(chǔ)器內(nèi)重定位; 允許實(shí)模式程序在保護(hù)模式下運(yùn)行; 有利于程序和數(shù)據(jù)的分離。 各段允許重疊 保護(hù)模式存儲(chǔ)器尋址 ? 80286及其后機(jī)器采用保護(hù)模式的存儲(chǔ)尋址的原因 ( 1) 80286及其后機(jī)器提供了 16MB、 4GB以及更多的存儲(chǔ)空間,那么如何尋址呢? ( 2)解決了 多任務(wù)處理 的問題,同時(shí)支持虛擬存儲(chǔ)器特性(程序運(yùn)行時(shí),只需把需要執(zhí)行的代碼從外存調(diào)入內(nèi)存即可)。 ? 保護(hù)模式的存儲(chǔ)尋址的管理方法 ( 1)邏輯地址由 選擇器 和偏移地址( 32位、 4GB)兩部分組成, 選擇器放在段寄存器中,由操作系統(tǒng)管理計(jì)算段基址,再加上偏移地址,找到相應(yīng)的存儲(chǔ)單元。 ( 2)用戶 設(shè)計(jì)程序時(shí),和 8086實(shí)模式存儲(chǔ)尋址一樣,只需要設(shè)置段寄存器的內(nèi)容即可 。 支持 多任務(wù) 處理功能 支持 虛擬存儲(chǔ)器 特性 保護(hù)模式下的存儲(chǔ)器尋址 所選存儲(chǔ)單元 描 述 符 64 描述符表 所選段 存 儲(chǔ) 器 段基地址 32 選擇器 16 偏移地址 32 邏輯地址 ? 保護(hù)模式存儲(chǔ)器尋址 堆棧 (Stack) 1. 什么是堆棧 堆棧有兩種形式:一種是 硬堆棧 , 即用寄存器組來實(shí)現(xiàn)的 。 另一種是 軟堆棧 , 即用主存的一部分空間作堆棧 。堆棧的運(yùn)行方式為 先進(jìn)后出 或 先進(jìn)先出 兩種 , 先進(jìn)后出型堆棧的操作數(shù)只能從一個(gè)口進(jìn)行讀或?qū)?。 堆棧主要用于暫存數(shù)據(jù)以及在 “ 過程 ” 調(diào)用或處理中斷時(shí)暫存斷點(diǎn)信息 。 2. 堆棧的構(gòu)造 現(xiàn)在通常采用軟堆棧 , 由程序設(shè)計(jì)人員用程序在存儲(chǔ)器中劃出一塊存儲(chǔ)區(qū)作為堆棧 。 這個(gè)存儲(chǔ)區(qū)最大地址的字存儲(chǔ)單元為堆棧底部 , 叫 棧底 (Bottom)。 在堆棧中存放的數(shù)據(jù)或斷點(diǎn)信息從這里開始 , 逐漸向地址小的方向 “ 堆積 ” 。 在任何時(shí)刻 , 存放最后一個(gè)信息的存儲(chǔ)單元 (即已存放信息的最小地址單元 )為堆棧頂部 , 叫 棧頂 (TOP)。 棧頂是隨著存放信息的多少而變的 由于堆棧頂部是浮動(dòng)的 , 為了指示現(xiàn)在堆棧中存放數(shù)據(jù)的位置 , 通常設(shè)置一個(gè)指針 —— 堆棧指針 SP(Stack Pointer), 它始終指向堆棧的頂部 。 8086堆棧的組織 棧底為堆??臻g的高地址單元 , 棧頂為低地址單元 。 數(shù)據(jù)進(jìn)棧后 , 棧頂向低地址方向浮動(dòng);數(shù)據(jù)出棧后 , 棧頂向高地址方向調(diào)整 。 一個(gè) 16位的數(shù)據(jù)進(jìn)棧的規(guī)律是:高位字節(jié)存入高地址單元 , 低位字節(jié)存入低地址單元 。 一個(gè) 16位數(shù)據(jù)出棧規(guī)律是:低位字節(jié)彈到目標(biāo)操作數(shù)低位 , 高位字節(jié)彈到目標(biāo)操作數(shù)據(jù)高位 。 為了指示棧頂?shù)漠?dāng)前位置 , 用 SP存放棧頂?shù)挠行У刂?。 堆棧是按 字 組織的 , 即每次在堆棧中存取數(shù)據(jù)均是兩個(gè)字節(jié) , 數(shù)據(jù)在堆棧中存放的格式是: 外部設(shè)備 外部設(shè)備與主機(jī)的通信是通過外設(shè)接口 ( Interface) 進(jìn)行的 , 每個(gè)接口包括一組寄存器 。 ? 數(shù)據(jù)寄存器:存放外設(shè)和主機(jī)間傳送的數(shù)據(jù) ? 狀態(tài)寄存器:保存外設(shè)或接口的狀態(tài)信息 ? 命令寄存器:保存 CPU發(fā)給外設(shè)或接口的控制命令 外設(shè)中每個(gè)寄存器都分配一個(gè)端口 ( Port) 地址 (端口號(hào)) , 80x86允許有 65535個(gè) 8位或 16位端口 , 構(gòu)成一個(gè)獨(dú)立于內(nèi)存的 I / O 地址空間: 0000H ~ FFFFH。 386以后有 32位端口 . 便于用戶使用外設(shè) , 80x86提供了兩種類型的例行程序共用戶調(diào)用: BIOS 和 DOS功能調(diào)用 。 第 2章作業(yè) Page 33 , , , , 補(bǔ)充: 一個(gè)有16個(gè)字的數(shù)據(jù)區(qū) , 它的起始地址為70A0:DDF6 , 請(qǐng)寫出這個(gè)數(shù)據(jù)區(qū)首末字單元的物理地址 .
點(diǎn)擊復(fù)制文檔內(nèi)容
外語(yǔ)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1