《CPU資源和存儲器》PPT課件.ppt_第1頁
《CPU資源和存儲器》PPT課件.ppt_第2頁
《CPU資源和存儲器》PPT課件.ppt_第3頁
《CPU資源和存儲器》PPT課件.ppt_第4頁
《CPU資源和存儲器》PPT課件.ppt_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章 CPU資源和存儲器 2.1 寄存器組 2.2 存儲器的管理模式 微機(jī)系統(tǒng)組成結(jié)構(gòu)圖 I/O 接 口 主存儲器 系統(tǒng)總線 輔助存儲器 輸入設(shè)備 輸出設(shè)備 CPU 寄存器 控制器 運算器 時鐘 8086 CPU的內(nèi)部結(jié)構(gòu) 8086內(nèi)部結(jié)構(gòu)有兩個功能模塊: 1.執(zhí)行單元(Execution Unit,EU): 負(fù)責(zé)指令的譯碼和執(zhí)行 2.總線接口單元(Bus Inference Unit, BIU ) 主要負(fù)責(zé)讀取指令和操作數(shù) *3 內(nèi)部暫存器 IP ES SS DS CS 輸入/輸出 控制電路 外部總線 執(zhí)行部分 控制電路 1 2 3 4 5 6 ALU 標(biāo)志寄存器 AH AL BH BL CH CL DH DL SP BP SI DI 通用寄存器 地址加法器 指令隊列緩沖器 執(zhí)行部件 (EU) 總線接口部件 (BIU) 16位 20位 16位 8位 2.1 寄存器組 CPU中為什么要使用寄存器 寄存器比存儲器存取速度快 使用靈活(如暫存運算的中間數(shù)據(jù))、控制方便(如IP) 寄存器的分類 通用寄存器:傳送和暫存數(shù)據(jù);參與算術(shù)邏輯運算并保存運 算結(jié)果; 段寄存器:保存段地址,用于尋址時構(gòu)成物理地址; 專用寄存器:CPU運行的輔助工具。 *5 通 用 寄 存 器 *6 類別32位16位8位名稱作用 數(shù)據(jù)寄 存器 EAXAXAH、AL累加器常作隱含操作數(shù),可通用 EBXBXBH、BL基地址寄存器常作地址指針,可通用 ECXCXCH、CL計數(shù)器常存放計數(shù)值,可通用 EDXDXDH、DL數(shù)據(jù)寄存器常與累加器配合,可通用 變址寄 存器 ESISI無源變址寄存器保存源操作數(shù)地址 EDIDI無目的變址寄存器保存目的操作數(shù)地址 ESPSP無棧頂指針只能保存堆棧棧頂?shù)刂?EBPBP無堆棧指針可保存堆棧任意位置地址 堆棧指 針寄存 器 數(shù)據(jù)寄存器AX、BX、CX和DX 16位寄存器 高低8位可分為兩個獨立寄存器使用; 主要用于暫存指令執(zhí)行過程中的數(shù)據(jù); 特殊用途 AX:累加器,ALU運算核心部件、某些指令的默認(rèn)寄存器; BX:基址寄存器,存放存儲單元的有效地址; CX:計數(shù)器,串操作指令和循環(huán)指令中的默認(rèn)計數(shù)器; DX:與AX合用保存32位數(shù)據(jù);I/O指令中存放端口地址。 *7 累加器AX 16位寄存器可以存儲2個字節(jié)的數(shù)據(jù); 例如,數(shù)值2008H存放于AX累加器中。 AX可分做兩個8位的寄存器使用,分別為AH和AL。 (AX)=2008H,則(AH)=20H,(AL)=08H; BX、CX、DX類似。 *8 AX 0123456789101112131415 無符號數(shù)范圍為065535 有符號數(shù)范圍為-32768+32767 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 AHAL 變址寄存器SI、DI 16位寄存器; 常作為指針,存放存儲單元有效地址,也可暫存數(shù)據(jù); 特殊用法: SI、DI中保存的地址信息可以隨著指令的執(zhí)行而自動改變; SI:源變址寄存器,串操作中存放源串地址,默認(rèn)DS段; DI:目的變址寄存器,串操作中存放目的串地址,默認(rèn)ES段; 該特殊用法只在字符串操作中有效,其它場合下作一般的指 針寄存器使用; *9 堆棧指針寄存器SP、BP 堆棧是一個先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),棧底位 置不變; 棧頂指針SP 其中始終存放棧頂單元的有效地址; 其值是由出入棧指令自動更改的,一 般不允許隨意對該寄存器賦值; 堆棧指針BP 其中數(shù)據(jù)一般作為地址進(jìn)行訪存; 默認(rèn)對應(yīng)于SS段,可尋址堆棧中的任 何單元。 *10 堆棧 棧底 1 2 3 1 2 3 3 2 1 棧頂 段 寄 存 器 類別16位8位名稱作用 段寄存器無代碼段段寄存器存放代碼段段地址 無數(shù)據(jù)段段寄存器存放數(shù)據(jù)段段地址 無附加段段寄存器存放附加段段地址 無堆棧段段寄存器存放堆棧段段地址 一段匯編語言程序至少有一個邏輯段代碼段,用于存放 代碼; 一段匯編語言程序最多有4個邏輯段1個代碼段,3個數(shù)據(jù) 段,分別用于存放代碼和數(shù)據(jù); *11 CS DS ES SS CS (Code Segment) 代碼段 用來存放要執(zhí)行的指令序列; 段首地址用代碼段寄存器CS來保存; 指令指針寄存器IP指示本段中的地址; n將要執(zhí)行的下條指令的有效地址; CPU利用CS:IP形成存儲單元的物理地址,以獲取下條 要執(zhí)行指令的代碼。 *12 DS (Data Segment) 數(shù)據(jù)段 用來存放程序運行所需要的數(shù)據(jù); 段首地址用數(shù)據(jù)段寄存器DS來保存; CPU利用DS:EA形成存儲單元的物理地址,以獲取數(shù) 據(jù)段中的數(shù)據(jù); nEA的形成方式詳見第3章尋址方式的介紹。 *13 ES (Extra Segment) 附加段 即附加的數(shù)據(jù)段,保存程序運行所需要的數(shù)據(jù); 段首地址用附加段寄存器ES來保存; CPU利用ES:EA形成存儲單元的物理地址,以獲取附加 段中的數(shù)據(jù); 串操作指令常將附加段ES作為目的操作數(shù)的存放區(qū)域。 *14 SS (Stack Segment) 堆棧 用于存儲程序運行中需要臨時保護(hù)的數(shù)據(jù); 段首地址用堆棧段寄存器SS來保存; 堆棧指針寄存器SP保存堆棧棧頂?shù)挠行У刂罚?CPU利用SS:SP對堆棧棧頂單元進(jìn)行操作; 利用SS:BP對堆棧中的任一單元進(jìn)行操作。 *15 專 用 寄 存 器 指令指針I(yè)P 保存將要執(zhí)行指令的有效地址; 該寄存器的內(nèi)容是不允許人為更改的,通過指令的執(zhí)行而自 動改變。 標(biāo)志寄存器FLAG 該寄存器是利用其中的每一位來反映當(dāng)前CPU執(zhí)行指令的 結(jié)果或控制指令執(zhí)行形式。 *16 類別16位8位名稱作用 專用 寄存器 IP無指令指針寄存器 保存將要取出的指令有效地址 FLAG 無標(biāo)志寄存器 保存CPU當(dāng)前的狀態(tài)標(biāo)志信息 16位標(biāo)志寄存器 僅用到其中9位,且按位使用; 6位狀態(tài)標(biāo)志位:反映ALU的執(zhí)行狀態(tài); n按照ALU指令執(zhí)行的結(jié)果設(shè)置各狀態(tài)標(biāo)志位; 3位控制標(biāo)志位:控制CPU的某些功能; *17 1514131211109876543210 OFDFIFTFSFZFAFPFCF 進(jìn)位標(biāo)志 零標(biāo)志 符號標(biāo)志 溢出標(biāo)志 方向標(biāo)志 中斷允許標(biāo)志 陷阱標(biāo)志 奇偶標(biāo)志 輔助進(jìn)位標(biāo)志 常用的狀態(tài)標(biāo)志位 進(jìn)位標(biāo)志位CF 運算結(jié)果有進(jìn)位或借位時,CF=1,否則CF=0; 溢出標(biāo)志位OF 運算結(jié)果超出了數(shù)據(jù)表示范圍時,OF=1,否則OF=0; 符號標(biāo)志位SF 運算結(jié)果為負(fù)數(shù)時,SF=1,否則SF=0; 零標(biāo)志位ZF 運算結(jié)果為0時,ZF=1,否則ZF=0; *18 標(biāo)志位設(shè)置 例1:3AH + 7CH例2:0AAH + 7CH *19 3A H = 0011 1010 B +) 7C H = 0111 1100 B 1011 0110 B = 0B6H CF = SF = ZF = OF = 1 0 10 AA H = 1010 1010 B +) 7C H = 0111 1100 B 1 0010 0110 B = (1)26H CF = SF = ZF = OF = 0 1 00 問題: 什么是溢出? 溢出和進(jìn)位有何區(qū)別? 如何判斷溢出? *20 什么是溢出? 微機(jī)中常用補碼來表示有符號數(shù); 8位表達(dá)的范圍是:-128 +127 16位表達(dá)的有符號數(shù)范圍是:-32768 +32767 如果運算結(jié)果超出這個范圍,就產(chǎn)生了溢出,則表示該運 算結(jié)果不正確! 注意:只有加減法運算中才會出現(xiàn)溢出現(xiàn)象,在其他運算 中無溢出! *21 溢出和進(jìn)位的區(qū)別 溢出標(biāo)志OF和進(jìn)位標(biāo)志CF是兩個意義不同的標(biāo)志位; 進(jìn)位標(biāo)志CF 其設(shè)置完全根據(jù)二進(jìn)制數(shù)據(jù)的計算情況設(shè)置; 表示無符號數(shù)的運算結(jié)果是否溢出; 無論CF為何值,無符號數(shù)的運算結(jié)果均正確。 溢出標(biāo)志OF 其設(shè)置是把數(shù)據(jù)看作有符號數(shù)來判斷的; 表示有符號數(shù)運算結(jié)果是否溢出; 當(dāng)OF=1時,有符號數(shù)的運算結(jié)果不正確。 *22 前面例子的結(jié)果 例1:3AH + 7CHB6H 作為無符號數(shù):58124182 ,范圍內(nèi),無進(jìn)位 作為有符號數(shù):58124182 ,范圍外,有溢出 例2:AAH + 7CH(1) 26H 作為無符號數(shù):170124294, 范圍外,有進(jìn)位 作為有符號數(shù):8612438 ,范圍內(nèi),無溢出 *23 如何判斷溢出? 判斷運算結(jié)果是否溢出的規(guī)則:運算前后數(shù)據(jù)的符號 將減法運算轉(zhuǎn)換成加法運算; x y補 x補 + y補 (mod 2n+1) 當(dāng)正數(shù)+正數(shù)=負(fù)數(shù),或者負(fù)數(shù)+負(fù)數(shù)=正數(shù)時,產(chǎn)生溢出。 其他判斷方法: 直接判別法:不容易判斷; 進(jìn)位判別法:最高位和次高位的進(jìn)位位相異或。 *24 判斷標(biāo)志位狀態(tài) 例:計算(-56)+(-67)=? ,并給出6個狀態(tài)標(biāo)志位的狀態(tài)。 *25 1100 1000 1011 1101 (1)1000 0101 CF= , ZF= ,SF= ,OF= = -123D 1010 (-56)補1100 1000 (-67)補1011 1101 2.2 存儲器的管理模式 主存儲器用于存放系統(tǒng)運行所需要的所有的程序和數(shù)據(jù); 開機(jī)后自動從BIOS和輔存中調(diào)入數(shù)據(jù),掉電后丟失; 存儲器的基本單位是存儲單元; 每個存儲單元的大小可以是一個字節(jié),或一個字; n8086 CPU的主存是以字節(jié)進(jìn)行組織的; 每個存儲單元都有一個唯一的編號,稱為物理地址,用于 CPU訪問; 存儲器容量單位 bit、Byte、KB、MB、GB *26 物理地址(Physical Address,PA) 將整個存儲器從第一單元到最后一個單元 按順序編號所得到的地址稱為物理地址; 物理地址可以唯一地標(biāo)識每一個存儲單元 ; CPU訪問主存時,必須通過地址總線輸出 所要訪問存儲單元的的物理地址。 系統(tǒng)的最大主存容量取決于地址總線的位 數(shù); *27 主存儲器 000B 001B 010B 111B CPU對主存儲器的訪問過程 1.CPU通過控制總線,發(fā)出訪存信號,通知主存準(zhǔn)備數(shù)據(jù)讀寫; 2.CPU通過地址總線,發(fā)出存儲單元的地址; 主存儲器接收到地址后,譯碼,尋址正確的存儲單元; 3.CPU通過控制總線,發(fā)出讀寫的命令; 主存儲器將準(zhǔn)備執(zhí)行讀寫操作; 4.CPU通過數(shù)據(jù)總線,讀出或?qū)懭氲臄?shù)據(jù); *28 CPU 主存 數(shù)據(jù)總線 地址總線 讀寫控制線 訪存控制線 8086需要4個時鐘周期, 80486只需要1個時鐘周期 。 1 PA 1100 0110 1 1100 0110 存儲單元中數(shù)據(jù)的存取方法 基本原則:高高低低原則 即低地址單元存放低位數(shù)據(jù), 高地址單元存放高位數(shù)據(jù)。 例如,存儲器如右圖所示 12341H單元的字節(jié)數(shù)據(jù)為34H; 12341H單元的字?jǐn)?shù)據(jù)為5634H。 *29 12 34 56 78 90 12340H 12341H 12342H 12343H 12344H 存儲器分段管理的原因 16位系統(tǒng)中 地址總線20根 可尋址主存空間為220=1MB 地址區(qū)間00FFFFFH 機(jī)器字長16位 運算的最大位數(shù)、指針等只有16位 可直接尋址的空間為216=64KB 地址區(qū)間00FFFFH 因此,采用分段方式管理和訪問內(nèi)存。 *30 物理地址 存儲器的分段管理 分段的思想: 用兩個16位地址合成的方法形成一個20位的物理地址 關(guān)于分段的規(guī)定 段的起始:每個邏輯段的起始地址必須是16的倍數(shù)。 即:xxxx xxxx xxxx xxxx 0000B 或:xxxx0H 段的容量:每個邏輯段的最大容量可以達(dá)到64KB。 注意:各邏輯段之間是可以重疊的。 *31 主存實際上并沒有從物 理上分段,段的劃分只 是來自于CPU的管理! 存儲器的分段管理模式 *32 物理地址 00000H 12340H 12341H 22000H 2233FH 0FFFFFH 主存儲器 段起始單元 邏輯段1 段地址為:1234H 保存于段寄存器中 偏移地址 0000H 0001H 0002H 0FFFFH 段起始單元 邏輯段2 段地址為:2200H 保存于段寄存器中 偏移地址 0000H 0001H 0002H 0FFFFH 關(guān)于分段 1MB空間最多能分成多少個段? 邏輯段最密集的劃分方式 每隔16個存儲單元開始一個新段,各段都是重疊的; 所以,1MB最多可以有2201621664K 個段 1MB空間最少能分成多少個段? 邏輯段最松散的劃分方式 每隔 64K 個存儲單元開始一個新段,各段不重疊; 所以,1MB最少可以有 22021616 個段 *33 物理地址的形成 任意一個物理地址均可以用段地址和偏移地址兩部分形成; 邏輯地址:段地址 + 偏移地址 分段的不同,可導(dǎo)致同一個物理地址對應(yīng)多個不同的邏輯地 址。 物理地址(PA)=段地址16 + 偏移地址 段地址:段起始單元物理地址的高16位,其值由段寄存器( CS、DS、ES、SS)保存; 偏移地址:也叫有效地址(EA) ,指實際單元和段起始單元 之間的距離。 *34 即將段地址左移4個二進(jìn)制位 分段模式下主存儲器的地址類型 物理地址 每個存儲單元在整個存儲器中的唯一標(biāo)識; 段地址 邏輯段首單元的物理地址的高16位; 有效地址EA(段內(nèi)偏移地址) 該存儲單元相對于段首單元的偏移量; 該單元物理地址 = 有效地址 + 段首單元的物理地址; 邏輯地址 由段地址和有效地址表示的存儲單元地址形式; *35 某單元A的物理地址為23000H 若段起始地址為20000H,即段地址為2000H 則A的有效地址為3000H 該段中,A的邏輯地址可表示為2000H:3000H 段寄存器的引用 段寄存器要與指針寄存器一起使用來訪問主存; 代碼段段寄存器CS指針寄存器為IP。 數(shù)據(jù)段段寄存器DS指針寄存器一般用BX、SI、DI。 附加段段寄存器ES指針寄存器一般用DI(字符串操作)。 堆棧段段寄存器SS指針寄存

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論