




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第2章 寄存器(CPU工作原理),章節(jié)分布,2.1 通用寄存器 2.2 字在寄存器中的存儲 2.3 幾條匯編指令 2.4 物理地址 2.5 16位結構的CPU 2.6 8086CPU給出物理地址的方法,2.7 “段地址16+偏移地址 =物理地址”的本質(zhì)含義 2.8 段的概念 2.9 段寄存器 2.10 CS和IP 2.12 代碼段,CPU概述,一個典型的CPU由運算器、控制器、寄存器等器件組成,這些器件靠內(nèi)部總線相連。 內(nèi)部總線實現(xiàn)CPU內(nèi)部各個器件之間的聯(lián)系。 外部總線實現(xiàn)CPU和主板上其它器件的聯(lián)系。,寄存器概述,8086CPU有14個寄存器 它們的名稱為: AX、BX、CX、DX、SI、
2、DI、SP、BP、 IP、CS、SS、DS、ES、PSW。,2.1 通用寄存器,8086CPU所有的寄存器都是16位的,可以存放兩個字節(jié)。 AX、BX、CX、DX 通常用來存放一般性數(shù)據(jù)被稱為通用寄存器。 下面以AX為例,我們看一下寄存器的邏輯結構。,一個16位寄存器可以存儲一個16位的數(shù)據(jù)。(數(shù)據(jù)的存放情況) 一個16位寄存器所能存儲的數(shù)據(jù)的最大值為多少? 答案:216-1。,2.1 通用寄存器,16位數(shù)據(jù)在寄存器中的存放情況,數(shù)據(jù):18 二進制表示:10010 在寄存器AX中的存儲:,16位數(shù)據(jù)在寄存器中的存放情況,數(shù)據(jù):20000 二進制表示:0100111000100000 在寄存器A
3、X中的存儲:,2.1 通用寄存器,8086上一代CPU中的寄存器都是8位的; 為保證兼容性,這四個寄存器都可以分為兩個獨立的8位寄存器使用。 AX可以分為AH和AL; BX可以分為BH和BL; CX可以分為CH和CL; DX可以分為DH和DL。 8086CPU的8位寄存器存儲邏輯,2.1 通用寄存器,以AX為例,8086CPU的16位寄存器分為兩個8位寄存器的情況:,2.1 通用寄存器,AX的低8位(0位7位)構成了AL寄存器,高8位(8位15位)構成了AH寄存器。 AH和AL寄存器是可以獨立使用的8位寄存器。 8086CPU的8位寄存器數(shù)據(jù)存儲情況 一個8位寄存器所能存儲的數(shù)據(jù)的最大值是多少
4、? 答案:28-1。,2.1 通用寄存器,2.2 字在寄存器中的存儲,一個字可以存在一個16位寄存器中,這個字的高位字節(jié)和低位字節(jié)自然就存在這個寄存器的高8位寄存器和低8位寄存器中。,關于數(shù)制的討論,由于一個內(nèi)存單元可以存放 8位數(shù)據(jù),CPU中的寄存器又可存放 n 個 8位數(shù)據(jù)。也就是說,計算機中的數(shù)據(jù)大多是由1N個8位數(shù)據(jù)構成的。 用十六進制來表示數(shù)據(jù)可以直觀的看 出這個數(shù)據(jù)是由哪些8位數(shù)據(jù)構成的。,2.3 幾條匯編指令,匯編指令不區(qū)分大小寫,2.3 幾條匯編指令,CPU執(zhí)行下表中的程序段的每條指令后,對寄存器中的數(shù)據(jù)進行的改變。,2.3 幾條匯編指令,2.3 幾條匯編指令,這里的丟失,指的
5、是進位制不能在 8 位寄存器中保存,但是 CPU并不是真的丟棄這個進位值,這個問題會在后面的課程中討論。,特別提示,檢測點2.1(Page 19),2.4 物理地址,CPU訪問內(nèi)存單元時要給出內(nèi)存單元的地址。所有的內(nèi)存單元構成的存儲空間是一個一維的線性空間。 每一個內(nèi)存單元在這個空間中都有唯一的地址,這個唯一的地址稱為物理地址。,2.5 16位結構的CPU,概括的講,16位結構描述了一個CPU具有以下幾個方面特征: 1、運算器一次最多可以處理16位的數(shù)據(jù)。 2、寄存器的最大寬度為16位。 3、寄存器和運算器之間的通路是16位的。,2.6 8086CPU給出物理地址的方法,8086有20位地址總
6、線,可傳送20位地址,尋址能力為1M。 8086內(nèi)部為16位結構,它只能傳送16位的地址,表現(xiàn)出的尋址能力卻只有64K。,如何解決這個矛盾?,2.6 8086CPU給出物理地址的方法,8086CPU采用一種在內(nèi)部用兩個16位地址合成的方法來形成一個20位的物理地址。 8086CPU相關部件的邏輯結構,在8086CPU內(nèi)部用兩個16位地址合成的方法來形成一個20位的物理地址,地址加法器,地址加法器合成物理地址的方法: 物理地址=段地址16+偏移地址 例如: 8086CPU訪問地址為123C8H的內(nèi)存單元 由段地址16引發(fā)的討論,觀察移位次數(shù)和各種形式數(shù)據(jù)的關系: (1)一個數(shù)據(jù)的二進制形式左移1
7、位,相當于該數(shù)據(jù)乘以2; (2)一個數(shù)據(jù)的二進制形式左移N位,相當于該數(shù)據(jù)乘以2的N次方; (3)地址加法器如何完成段地址16的運算? 以二進制形式存放的段地址左移4位。,由段地址16引發(fā)的討論,2.7 “段地址16+偏移地址=物理地址”的本質(zhì)含義,兩個比喻說明: 說明“基礎地址+偏移地址 = 物理地址” 的思想:第一個比喻 說明“段地址16+偏移地址=物理地址”的思想:第二個比喻 8086CPU就是這樣一個只能提供兩張3位數(shù)據(jù)紙條的CPU。,“基礎地址+偏移地址 = 物理地址”,比如說,學校、體育館同在一條筆直的單行路上(學校位于路的起點0米處)。 讀者在學校,要去圖書館,問我那里的地址,我
8、可以用幾種方式描述這個地址?,“基礎地址+偏移地址 = 物理地址”,(1)從學校走2826m到圖書館。這2826可以認為是圖書館的物理地址。 (2)從學校走2000m到體育館,從體育館再走826m到圖書館。 第一個距離2000m是相對于起點的基礎地址; 第二個距離826m是將對于基礎地址的偏移地址。,“段地址16+偏移地址=物理地址”,比如我們只能通過紙條來通信,讀者問我圖書館的地址,我只能將它寫在紙上告訴讀者。 顯然我必須有一張可以容納 4 位數(shù)據(jù)的紙條才能寫下2826這個數(shù)據(jù):,“段地址16+偏移地址=物理地址”,不巧的是,沒有能容納4位數(shù)據(jù)的紙條,僅有兩張可以容納3位數(shù)據(jù)的紙條。 這樣我
9、只能以這種方式告訴讀者2826這個數(shù)據(jù):,2.8 段的概念,錯誤認識: 內(nèi)存被劃分成了一個一個的段,每一個段有一個段地址。 其實: 內(nèi)存并沒有分段,段的劃分來自于CPU,由于8086CPU用“(段地址16)+偏移地址=物理地址”的方式給出內(nèi)存單元的物理地址,使得我們可以用分段的方式來管理內(nèi)存。,2.8 段的概念,我們可以認為:地址10000H100FFH的內(nèi)存單元組成一個段,該段的起始地址( 基礎地址)為10000H,段地址為1000H,大小為100H。,2.8 段的概念,我們也可以認為地址10000H1007FH、10080H100FFH 的內(nèi)存單元組成兩個段,它們的起始地址( 基礎地址 )
10、為10000H和10080H,段地址為:1000H 和1008H,大小都為80H。,2.8 段的概念,以后,在編程時可以根據(jù)需要,將若干地址連續(xù)的內(nèi)存單元看作一個段,用段地址16定位段的起始地址(基礎地址),用偏移地址定位段中的內(nèi)存單元。 兩點需要注意 內(nèi)存單元地址小結 特別提示,兩點需要注意,(1)段地址16 必然是 16的倍數(shù),所以一個段的起始地址也一定是16的倍數(shù); (2)偏移地址為16位,16 位地址的尋址能力為 64K,所以一個段的長度最大為64K。,內(nèi)存單元地址小結,CPU訪問內(nèi)存單元時,必須向內(nèi)存提供內(nèi)存單元的物理地址。 8086CPU在內(nèi)部用段地址和偏移地址移位相加的方法形成最
11、終的物理地址。 思考兩個問題,(1)觀察下面的地址,讀者有什么發(fā)現(xiàn)? 結論:CPU可以用不同的段地址和偏移地址形成同一個物理地址。,內(nèi)存單元地址小結,內(nèi)存單元地址小結,(2)如果給定一個段地址,僅通過變化偏移地址來進行尋址,最多可以定位多少內(nèi)存單元? 結論:偏移地址16位,變化范圍為0FFFFH,僅用偏移地址來尋址最多可尋64K個內(nèi)存單元。 比如:給定段地址1000H,用偏移地址尋址,CPU的尋址范圍為:10000H1FFFFH。,內(nèi)存單元地址小結,在8086PC機中,存儲單元的地址用兩個元素來描述。即段地址和偏移地址。 “數(shù)據(jù)在21F60H內(nèi)存單元中?!睂τ?086PC機的兩種描述: (a)
12、數(shù)據(jù)存在內(nèi)存2000:1F60單元中; (b)數(shù)據(jù)存在內(nèi)存的2000段中的1F60H單元中。 可根據(jù)需要,將地址連續(xù)、起始地址為16的倍數(shù)的一組內(nèi)存單元定義為一個段。,特別提示,檢測點2.2(Page 25),2.9 段寄存器,段寄存器就是提供段地址的。 8086CPU有4個段寄存器: CS、DS、SS、ES 當8086CPU要訪問內(nèi)存時,由這4個段寄存器提供內(nèi)存單元的段地址。,2.10 CS和IP,CS和IP是8086CPU中最關鍵的寄存器,它們指示了CPU當前要讀取指令的地址。 CS為代碼段寄存器; IP為指令指針寄存器。,8086PC讀取和執(zhí)行指令相關部件,8086PC讀取和執(zhí)行指令演示
13、 8086PC工作過程的簡要描述,8086PC工作過程的簡要描述,(1)從CS:IP指向內(nèi)存單元讀取指令,讀取的指令進入指令緩沖器; (2)IP = IP + 所讀取指令的長度,從而指向下一條指令; (3)執(zhí)行指令。 轉到步驟 (1),重復這個過程。,8086PC工作過程的簡要描述,在 8086CPU 加電啟動或復位后( 即 CPU剛開始工作時)CS和IP被設置為CS=FFFFH,IP=0000H,即在8086PC機剛啟動時,CPU從內(nèi)存FFFF0H單元中讀取指令執(zhí)行,F(xiàn)FFF0H單元中的指令是8086PC機開機后執(zhí)行的第一條指令。,2.10 CS和IP,內(nèi)存中指令和數(shù)據(jù)沒有任何區(qū)別,都是二進
14、制信息,CPU在工作的時候把有的信息看作指令,有的信息看作數(shù)據(jù)。 CPU根據(jù)什么將內(nèi)存中的信息看作指令? CPU將CS:IP指向的內(nèi)存單元中的內(nèi)容看作指令。,2.10 CS和IP,在任何時候,CPU將CS、IP中的內(nèi)容當作指令的段地址和偏移地址,用它們合成指令的物理地址,到內(nèi)存中讀取指令碼,執(zhí)行。 如果說,內(nèi)存中的一段信息曾被CPU執(zhí)行過的話,那么,它所在的內(nèi)存單元必然被CS:IP指向過。,2.11 修改CS、IP的指令,在CPU中,程序員能夠用指令讀寫的部件只有寄存器,程序員可以通過改變寄存器中的內(nèi)容實現(xiàn)對CPU的控制。 CPU從何處執(zhí)行指令是由CS、IP中的內(nèi)容決定的,程序員可以通過改變C
15、S、IP中的內(nèi)容來控制CPU執(zhí)行目標指令。 我們?nèi)绾胃淖僀S、IP的值呢?,2.11 修改CS、IP的指令,8086CPU必須提供相應的指令 先回想我們?nèi)绾涡薷腁X中的值? mov指令不能用于設置CS、IP的值, 8086CPU沒有提供這樣的功能。 8086CPU為CS、IP提供了另外的指令來改變它們的值:轉移指令,如何修改AX中的值?,mov 指令 如:mov ax,123 mov指令可以改變8086CPU大部分寄存器的值,被稱為傳送指令。 能夠通過mov 指令改變CS、IP的值嗎?,2.11 修改CS、IP的指令,同時修改CS、IP的內(nèi)容: jmp 段地址:偏移地址 jmp 2AE3:3
16、jmp 3:0B16 功能:用指令中給出的段地址修改CS,偏移地址修改IP。,2.11 修改CS、IP的指令,僅修改IP的內(nèi)容: jmp 某一合法寄存器 jmp ax (類似于 mov IP,ax) jmp bx 功能:用寄存器中的值修改IP。,內(nèi)存中存放的機器碼和對應匯編指令情況: (初始:CS=2000H,IP=0000H) 請寫出指令執(zhí)行序列:,問題分析,問題分析結果:,(1)mov ax,6622 (2)jmp 1000:3 (3)mov ax,0000 (4)mov bx,ax (5)jmp bx (6)mov ax,0123H (7)轉到第(3)步執(zhí)行,2.12 代碼段,對于808
17、6PC機,在編程時,可以根據(jù)需要,將一組內(nèi)存單元定義為一個段。 可以將長度為 N( N64KB )的一組代碼,存在一組地址連續(xù)、起始地址為 16的倍數(shù)的內(nèi)存單元中,這段內(nèi)存是用來存放代碼的,從而定義了一個代碼段。 例如,2.12 代碼段,這段長度為 10 字節(jié)的指令,存在從123B0H123B9H的一組內(nèi)存單元中,我們就可以認為,123B0H123B9H這段內(nèi)存單元是用來存放代碼的 ,是一個代碼段 ,它的段地址為123BH,長度為10字節(jié)。,2.12 代碼段,如何使得代碼段中的指令被執(zhí)行呢? 將一段內(nèi)存當作代碼段,僅僅是我們在編程時的一種安排,CPU 并不會由于這種安排,就自動地將我們定義得代碼段中的指令當作指令來執(zhí)行。 CPU 只認被 CS:IP 指向的內(nèi)存單元中的內(nèi)容為指令。 所以要將CS:IP指向所定義的代碼段中的第一條指令的首地址。 CS = 123BH,IP = 0000H。,2.9節(jié)2.12節(jié) 小結,1、段地址在8086CPU的寄存器中存放。當8086CPU要訪問內(nèi)存時,由段寄存器
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 腫瘤醫(yī)院供應室護理實習生2025帶教計劃
- 2025高考英語寫作創(chuàng)新素材20個預測+滿分范文
- 2025年廣西壯族自治區(qū)事業(yè)單位招聘考試綜合類面試真題試卷
- 2025年防水工(初級)防水施工團隊管理規(guī)范歷年真題
- 2025年茶藝師職業(yè)技能鑒定試卷(茶藝師職業(yè)規(guī)劃)
- 2025年健康管理師(初級)職業(yè)技能鑒定模擬試題庫
- 2025年電子商務師(初級)職業(yè)技能鑒定試卷:電子商務營銷策略實施
- 金融行業(yè)介紹課件教學
- 重癥護理進修匯報課件
- 重大疾病介紹課件
- 垃圾分類創(chuàng)新創(chuàng)業(yè)項目
- 高血壓糖尿病管理
- 體育賽事中的后勤保障工作
- 瀝青鋪設作業(yè)的安全風險控制措施
- 建材家居業(yè)商業(yè)計劃書
- CNAS-CL01-A004:2018 實驗室能力認可準則在醫(yī)療器械檢測領域的應用說明
- 2025年中國果蔬加工行業(yè)市場調(diào)研分析及投資戰(zhàn)略咨詢報告
- DB50-T 1727.2-2024 零散天然氣橇裝回收安全技術規(guī)程 第2部分:壓縮天然氣
- 店面工程裝修合同書
- DB33T 1149-2018 城鎮(zhèn)供排水有限空間作業(yè)安全規(guī)程
- 反肩關節(jié)置換術的護理
評論
0/150
提交評論