第2章80x86微處理器_第1頁(yè)
第2章80x86微處理器_第2頁(yè)
第2章80x86微處理器_第3頁(yè)
第2章80x86微處理器_第4頁(yè)
第2章80x86微處理器_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

12五月20231第2章8086微處理器2.1Intel8086微處理器

2.2存儲(chǔ)器物理地址的形成12五月202322.1.1Intel8086CPU內(nèi)部結(jié)構(gòu)功能上,包括運(yùn)算器和控制器兩大部件;運(yùn)算器:負(fù)責(zé)所有的算術(shù)邏輯運(yùn)算;控制器:負(fù)責(zé)微機(jī)系統(tǒng)的所有控制功能;結(jié)構(gòu)上,包括執(zhí)行單元EU和總線接口單元BIU兩個(gè)模塊;執(zhí)行單元EU包括指令譯碼部件、ALU和通用寄存器組,負(fù)責(zé)指令譯碼和執(zhí)行;總線接口單元BIU包括總線控制邏輯和專用的寄存器,負(fù)責(zé)CPU與外界的通信聯(lián)絡(luò);微型計(jì)算機(jī)的結(jié)構(gòu)12五月20233輸入設(shè)備控制器輸出設(shè)備存儲(chǔ)器運(yùn)算器12五月20234執(zhí)行部件(EU)執(zhí)行部分控制電路ALU標(biāo)志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器16位DB123456內(nèi)部暫存器

IP

ES

SSDSCS輸入/輸出控制電路外部總線∑地址加法器指令隊(duì)列總線接口部件(BIU)20位AB16位DB8位QB8086/8088CPU功能結(jié)構(gòu)12五月202351.執(zhí)行部件EU(ExecutionUnit)功能負(fù)責(zé)所有指令的譯碼和執(zhí)行;(1)獲取指令代碼,譯碼后產(chǎn)生控制信號(hào);(2)進(jìn)行算術(shù)和邏輯運(yùn)算,并根據(jù)運(yùn)算結(jié)果修改標(biāo)志寄存器狀態(tài)位狀態(tài);(3)為BIU提供需要傳送的數(shù)據(jù)和16位有效地址。組成寄存器組算術(shù)邏輯單元ALUEU控制部件12五月20236算術(shù)邏輯單元ALU16位的運(yùn)算器,負(fù)責(zé)所有的指令執(zhí)行期間的運(yùn)算;算術(shù)運(yùn)算:加、減、乘、除邏輯運(yùn)算:與、或、非、異或8086CPU的ALU可完成8位、16位數(shù)據(jù)的運(yùn)算;計(jì)算指令執(zhí)行時(shí)所需要的存儲(chǔ)單元的有效地址;針對(duì)相對(duì)尋址、基址加變址尋址、相對(duì)基址加變址尋址這三種尋址方式而言;12五月20237EU控制部件功能負(fù)責(zé)從BIU的指令隊(duì)列中取出指令;對(duì)指令操作碼進(jìn)行譯碼分析;按照工作時(shí)序向相關(guān)的部件發(fā)送相應(yīng)的控制信號(hào);組成指令寄存器、指令譯碼器時(shí)序控制部件微操作控制部件12五月202382.總線接口部件BIU(BusInterfaceUnit)功能負(fù)責(zé)CPU所有的訪問(wèn)操作;段式方式訪問(wèn)主存;直接譯碼的方式訪問(wèn)I/O端口;(1)從主存中讀取指令;(2)計(jì)算并形成所要訪問(wèn)主存的物理地址;

(3)訪問(wèn)主存、訪問(wèn)I/O,以獲取數(shù)據(jù)或保存結(jié)果。組成段寄存器和指令指針寄存器等 √

地址加法器指令隊(duì)列緩沖器

總線控制邏輯12五月20239指令隊(duì)列緩沖器功能存放預(yù)取的指令,共6字節(jié)容量;8088CPU的指令隊(duì)列緩沖器為4字節(jié)容量;使用規(guī)則先進(jìn)先出,按順序送入EU執(zhí)行;提供EU執(zhí)行的所有指令。工作過(guò)程順序執(zhí)行程序時(shí),有空閑即自動(dòng)取指;程序發(fā)生轉(zhuǎn)移時(shí),清除緩沖器內(nèi)容,重新獲取指令。12五月202310總結(jié):分段管理模式下的訪存CPU要訪問(wèn)存儲(chǔ)器必須提供物理地址;一般使用段寄存器與指針寄存器來(lái)共同表示邏輯地址;在CPU內(nèi)部由地址加法器完成運(yùn)算,轉(zhuǎn)換成物理地址輸出訪問(wèn)主存儲(chǔ)器;代碼段段寄存器CS——指針寄存器為IP。數(shù)據(jù)段段寄存器DS——指針寄存器一般用BX、SI、DI。附加段段寄存器ES——指針寄存器一般用DI(字符串操作)。堆棧段段寄存器SS——指針寄存器SP指向棧頂,指針寄存器BP指向棧內(nèi)任意位置。12五月202311物理地址的形成12五月202312地址加法器功能形成16位系統(tǒng)的20位主存地址。取指令PA=(CS)×16+IP取數(shù)據(jù)PA=(DS/SS/ES)×16+有效地址訪問(wèn)I/O端口時(shí)不需進(jìn)行運(yùn)算。12五月202313指針寄存器指針寄存器其值可作為存儲(chǔ)單元地址,用于指令或CPU內(nèi)部執(zhí)行時(shí)尋址使用的寄存器。其值改變,所尋址到得存儲(chǔ)單元也會(huì)不同,因此形象地稱之為指針。匯編語(yǔ)言程序中,凡是和地址有關(guān)的都可以認(rèn)為是指針;寄存器、立即數(shù)、變量、標(biāo)號(hào)……能夠標(biāo)示一個(gè)存儲(chǔ)單元地址,用于尋址;12五月2023142.1.2Intel8086內(nèi)部寄存器CPU中為什么要使用寄存器寄存器比存儲(chǔ)器存取速度快使用靈活(如暫存運(yùn)算的中間數(shù)據(jù))、控制方便(如IP)寄存器的分類通用寄存器:傳送和暫存數(shù)據(jù);參與算術(shù)邏輯運(yùn)算并保存運(yùn)算結(jié)果;段寄存器:保存段地址,用于尋址時(shí)構(gòu)成物理地址;專用寄存器:CPU運(yùn)行的輔助工具。用戶編程時(shí)所用到的CPU用戶編程時(shí)所用到的CPU12五月202315通用寄存器類別16位8位名稱作用

AXAH、AL累加器常作隱含操作數(shù),可通用BXBH、BL基地址寄存器常作地址指針,可通用CXCH、CL計(jì)數(shù)器常存放計(jì)數(shù)值,可通用DXDH、DL數(shù)據(jù)寄存器常與累加器配合,可通用SI無(wú)源變址寄存器保存源操作數(shù)地址DI無(wú)目的變址寄存器保存目的操作數(shù)地址SP無(wú)棧頂指針只能保存堆棧棧頂?shù)刂稡P無(wú)堆棧指針可保存堆棧任意位置地址堆棧指針寄存器數(shù)據(jù)寄存器變址寄存器12五月202316累加器AX16位寄存器可以存儲(chǔ)2個(gè)字節(jié)的數(shù)據(jù);例如,數(shù)值2008H存放于AX累加器中。AX可分做兩個(gè)8位的寄存器使用,分別為AH和AL。(AX)=2008H,則(AH)=20H,(AL)=08H;BX、CX、DX類似。AX0123456789101112131415無(wú)符號(hào)數(shù)范圍為0~65535有符號(hào)數(shù)范圍為-32768~0010000000001000AHAL12五月202317數(shù)據(jù)寄存器AX、BX、CX和DX16位寄存器高低8位可分為兩個(gè)獨(dú)立寄存器使用;主要用于暫存指令執(zhí)行過(guò)程中的數(shù)據(jù);特殊用途AX:累加器,ALU運(yùn)算核心部件、某些指令的默認(rèn)寄存器;BX:基址寄存器,存放存儲(chǔ)單元的有效地址;CX:計(jì)數(shù)器,串操作指令和循環(huán)指令中的默認(rèn)計(jì)數(shù)器;DX:與AX合用保存32位數(shù)據(jù);I/O指令中存放端口地址。12五月202318變址寄存器SI、DI16位寄存器;常作為指針,存放存儲(chǔ)單元有效地址,也可暫存數(shù)據(jù);特殊用法:SI、DI中保存的地址信息可以隨著指令的執(zhí)行而自動(dòng)改變;SI:源變址寄存器,串操作中存放源串地址,默認(rèn)DS段;DI:目的變址寄存器,串操作中存放目的串地址,默認(rèn)ES段;該特殊用法只在字符串操作中有效,其它場(chǎng)合下作一般的指針寄存器使用;12五月202319堆棧指針寄存器SP、BP堆棧是一個(gè)先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),棧底位置不變;棧頂指針SP其中始終存放棧頂單元的有效地址;其值是由出入棧指令自動(dòng)更改的,一般不允許隨意對(duì)該寄存器賦值;堆棧指針BP其中數(shù)據(jù)一般作為地址進(jìn)行訪存;默認(rèn)對(duì)應(yīng)于SS段,可尋址堆棧中的任何單元。堆棧棧底1

2

31

2

3

3

2

1棧頂12五月202320段寄存器類別16位8位名稱作用段寄存器無(wú)代碼段段寄存器存放代碼段段地址無(wú)數(shù)據(jù)段段寄存器存放數(shù)據(jù)段段地址無(wú)附加段段寄存器存放附加段段地址無(wú)堆棧段段寄存器存放堆棧段段地址一段匯編語(yǔ)言程序至少有一個(gè)邏輯段——代碼段,用于存放代碼;一段匯編語(yǔ)言程序最多有4個(gè)邏輯段——1個(gè)代碼段,3個(gè)數(shù)據(jù)段,分別用于存放代碼和數(shù)據(jù);CSDSESSS12五月202321CS(CodeSegment)代碼段用來(lái)存放要執(zhí)行的指令序列;段首地址用代碼段寄存器CS來(lái)保存;指令指針寄存器IP指示本段中的地址;將要執(zhí)行的下條指令的有效地址;CPU利用CS:IP形成存儲(chǔ)單元的物理地址,以獲取下條要執(zhí)行指令的代碼。12五月202322DS(DataSegment)數(shù)據(jù)段用來(lái)存放程序運(yùn)行所需要的數(shù)據(jù);段首地址用數(shù)據(jù)段寄存器DS來(lái)保存;CPU利用DS:EA形成存儲(chǔ)單元的物理地址,以獲取數(shù)據(jù)段中的數(shù)據(jù);EA的形成方式詳見(jiàn)第3章尋址方式的介紹。12五月202323ES(ExtraSegment)附加段即附加的數(shù)據(jù)段,保存程序運(yùn)行所需要的數(shù)據(jù);段首地址用附加段寄存器ES來(lái)保存;CPU利用ES:EA形成存儲(chǔ)單元的物理地址,以獲取附加段中的數(shù)據(jù);串操作指令常將附加段ES作為目的操作數(shù)的存放區(qū)域。12五月202324SS(StackSegment)堆棧用于存儲(chǔ)程序運(yùn)行中需要臨時(shí)保護(hù)的數(shù)據(jù);段首地址用堆棧段寄存器SS來(lái)保存;堆棧指針寄存器SP保存堆棧棧頂?shù)挠行У刂?;CPU利用SS:SP對(duì)堆棧棧頂單元進(jìn)行操作;

利用SS:BP對(duì)堆棧中的任一單元進(jìn)行操作。8086/8088段寄存器與提供段內(nèi)移地址的寄存器之間的默認(rèn)組合

段寄存器

提供段內(nèi)偏移地址的寄存器

CS

IP

DS

BX、SI、DI或一個(gè)16位數(shù)

SS

SP或BP

ES

DI(用于字符串操作指令)12五月202326專用寄存器類別16位8位名稱作用專用寄存器IP無(wú)指令指針寄存器保存將要取出的指令有效地址FLAG無(wú)標(biāo)志寄存器保存CPU當(dāng)前的狀態(tài)標(biāo)志信息指令指針I(yè)P保存將要執(zhí)行指令的有效地址;該寄存器的內(nèi)容是不允許人為更改的,通過(guò)指令的執(zhí)行而自動(dòng)改變。標(biāo)志寄存器FLAG該寄存器是利用其中的每一位來(lái)反映當(dāng)前CPU執(zhí)行指令的結(jié)果或控制指令執(zhí)行形式。12五月20232716位標(biāo)志寄存器僅用到其中9位,且按位使用;6位狀態(tài)標(biāo)志位:反映ALU的執(zhí)行狀態(tài);按照ALU指令執(zhí)行的結(jié)果設(shè)置各狀態(tài)標(biāo)志位;3位控制標(biāo)志位:控制CPU的某些功能;1514131211109876543210OFDFIFTFSFZFAFPFCF進(jìn)位標(biāo)志零標(biāo)志符號(hào)標(biāo)志溢出標(biāo)志方向標(biāo)志中斷允許標(biāo)志陷阱標(biāo)志奇偶標(biāo)志輔助進(jìn)位標(biāo)志12五月202328常用的狀態(tài)標(biāo)志位進(jìn)位標(biāo)志位CF運(yùn)算結(jié)果有進(jìn)位或借位時(shí),CF=1,否則CF=0;溢出標(biāo)志位OF運(yùn)算結(jié)果超出了數(shù)據(jù)表示范圍時(shí),OF=1,否則OF=0;符號(hào)標(biāo)志位SF運(yùn)算結(jié)果為負(fù)數(shù)時(shí),SF=1,否則SF=0;零標(biāo)志位ZF運(yùn)算結(jié)果為0時(shí),ZF=1,否則ZF=0;標(biāo)志位設(shè)置例1:3AH+7CH例2:0AAH+7CH12五月2023293AH=00111010B+)7CH=01111100B10110110B=0B6HCF=SF=ZF=OF=1010AAH=10101010B+)7CH=01111100B100100110B=(1)26HCF=SF=ZF=OF=010012五月2023302.2存儲(chǔ)器物理地址的形成2.2.1存儲(chǔ)器的結(jié)構(gòu)2.2.2物理地址的形成2.2.3存儲(chǔ)器單元的地址和內(nèi)容12五月2023312.2.1存儲(chǔ)器結(jié)構(gòu)主存儲(chǔ)器用于存放系統(tǒng)運(yùn)行所需要的所有的程序和數(shù)據(jù);開(kāi)機(jī)后自動(dòng)從BIOS和輔存中調(diào)入數(shù)據(jù),掉電后丟失;存儲(chǔ)器的基本單位是存儲(chǔ)單元;每個(gè)存儲(chǔ)單元的大小可以是一個(gè)字節(jié),或一個(gè)字;8086CPU的主存是以字節(jié)進(jìn)行組織的;每個(gè)存儲(chǔ)單元都有一個(gè)唯一的編號(hào),稱為物理地址,用于CPU訪問(wèn);存儲(chǔ)器容量單位bit、Byte、KB、MB、GB、TB、EB、PB、……12五月202332物理地址(PhysicalAddress,PA)將整個(gè)存儲(chǔ)器從第一單元到最后一個(gè)單元按順序編號(hào)所得到的地址稱為物理地址;物理地址可以唯一地標(biāo)識(shí)每一個(gè)存儲(chǔ)單元;CPU訪問(wèn)主存時(shí),必須通過(guò)地址總線輸出所要訪問(wèn)存儲(chǔ)單元的的物理地址。系統(tǒng)的最大主存容量取決于地址總線的位數(shù);……主存儲(chǔ)器0???00B0???01B0???10B……1???11B12五月202333CPU對(duì)主存儲(chǔ)器的訪問(wèn)過(guò)程CPU通過(guò)控制總線,發(fā)出訪存信號(hào),通知主存準(zhǔn)備數(shù)據(jù)讀寫;CPU通過(guò)地址總線,發(fā)出存儲(chǔ)單元的地址;主存儲(chǔ)器接收到地址后,譯碼,尋址正確的存儲(chǔ)單元;CPU通過(guò)控制總線,發(fā)出讀寫的命令;主存儲(chǔ)器將準(zhǔn)備執(zhí)行讀寫操作;CPU通過(guò)數(shù)據(jù)總線,讀出或?qū)懭氲臄?shù)據(jù);CPU主存數(shù)據(jù)總線地址總線讀寫控制線訪存控制線8086需要4個(gè)時(shí)鐘周期,80486只需要1個(gè)時(shí)鐘周期。讀PA11000110允許1100011012五月2023342.2.28086CPU對(duì)主存的分段管理模式分段的原因16位系統(tǒng)中,地址總線20根 可尋址主存空間為220=1MB 物理地址區(qū)間0~0FFFFFH16位系統(tǒng)中,機(jī)器字長(zhǎng)16位 運(yùn)算的最大位數(shù)、指針等只有16位 可直接尋址的空間為216=64KB

直接使用的地址區(qū)間0~0FFFFH因此,采用分段方式管理和訪問(wèn)主存。12五月202335存儲(chǔ)器的分段管理分段的思想:將存儲(chǔ)器劃分成若干區(qū)間,標(biāo)記起始地址,區(qū)間內(nèi)用較少位數(shù)的地址尋址;用兩個(gè)16位地址合成的方法形成一個(gè)20位的物理地址;段地址、段內(nèi)偏移地址(有效地址)關(guān)于分段的規(guī)定段的起始:每個(gè)邏輯段的起始地址必須是16的倍數(shù)。即:xxxxxxxxxxxxxxxx0000B或:xxxx0H段的容量:每個(gè)邏輯段的最大容量可以達(dá)到64KB。注意:各邏輯段之間是可以重疊的。主存實(shí)際上并沒(méi)有從物理上分段,段的劃分只是來(lái)自于CPU的管理!區(qū)間不固定,隨機(jī)劃分!12五月202336存儲(chǔ)器的分段示意……………………物理地址00000H……12340H12341H……22000H……2233FH……0FFFFFH主存儲(chǔ)器段起始單元……邏輯段1段地址為:1234H保存于段寄存器中偏移地址0000H0001H0002H……0FFFFH段起始單元……邏輯段2段地址為:2200H保存于段寄存器中偏移地址0000H0001H0002H……0FFFFH圖3.3物理地址的形成12五月202338關(guān)于分段1MB空間最多能分成多少個(gè)段?邏輯段最密集的劃分方式

——每隔16個(gè)存儲(chǔ)單元開(kāi)始一個(gè)新段,各段都是重疊的;所以,1MB最多可以有220÷16=216=64K個(gè)段1MB空間最少能分成多少個(gè)段?邏輯段最松散的劃分方式

——每隔64K個(gè)存儲(chǔ)單元開(kāi)始一個(gè)新段,各段不重疊;所以,1MB最少可以有220÷216=16個(gè)段12五月202339分段模式下主存儲(chǔ)器的地址類型物理地址每個(gè)存儲(chǔ)單元在整個(gè)存儲(chǔ)器中的唯一標(biāo)識(shí);段地址邏輯段首單元的物理地址的高16位;有效地址EA(段內(nèi)偏移地址)該存儲(chǔ)單元相對(duì)于段首單元的偏移量;該單元物理地址=有效地址+段首單元的物理地址;邏輯地址由段地址和有效地址表示的存儲(chǔ)單元地址形式;某單元A的物理地址為23000H若段起始地址為20000H,即段地址為2000H則A的有效地址為3000H該段中,A的邏輯地址可表示為2000H:3000H12五月202340任意一個(gè)物理地址均可以用段地址和偏移地址兩部分形成;邏輯地址:“段地址:偏移地址”分段的不同,可導(dǎo)致同一個(gè)物理地址對(duì)應(yīng)多個(gè)不同的邏輯地址。物理地址(PA)=段地址×16+偏移地址段地址:段起始單元物理地址

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論