微型計(jì)算機(jī)原理與應(yīng)用課件.ppt_第1頁
微型計(jì)算機(jī)原理與應(yīng)用課件.ppt_第2頁
微型計(jì)算機(jī)原理與應(yīng)用課件.ppt_第3頁
微型計(jì)算機(jī)原理與應(yīng)用課件.ppt_第4頁
微型計(jì)算機(jī)原理與應(yīng)用課件.ppt_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本教案內(nèi)容,第2章 8086CPU結(jié)構(gòu)與功能 微處理器的外部結(jié)構(gòu) 微處理器的內(nèi)部結(jié)構(gòu) 微處理器的功能結(jié)構(gòu) 微處理器的寄存器組織 微處理器的存儲(chǔ)器和I/O組成,8086/8088 CPU內(nèi)部共有14個(gè)16位寄存器,用于提供運(yùn)算,控制指令執(zhí)行和對(duì)指令及操作數(shù)尋址。掌握每個(gè)寄存器的作用以及用法,是學(xué)好 匯編語言程序設(shè)計(jì)的基礎(chǔ)。,14個(gè)寄存器按其用途可分為三大類:,通用寄存器(8個(gè)),段寄存器 (4個(gè)),控制寄存器(2個(gè)),2.4 微處理器的寄存器組織,一.通用寄存器(8個(gè)),8個(gè)16位通用寄存器分為兩組:,地址指針和變址寄存器(個(gè)),數(shù)據(jù)寄存器(4個(gè)),2.4 微處理器的寄存器組織,存放數(shù)據(jù),16位,8位,DX,DL,DH,CX,CL,CH,BX,BL,BH,AX,AL,AH,累加器Accumulator,基址寄存器(地址寄存器) Base Register,計(jì)數(shù)器Count Register,數(shù)據(jù)寄存器Data Register,1.數(shù)據(jù)寄存器(4個(gè)),2.4 微處理器的寄存器組織,2.地址指針和變址寄存器(個(gè)),均為16位,也能存放數(shù)據(jù),均為地址寄存器,DI,SI,BP,SP,堆棧指針寄存器Stack Pointer,基址指針寄存器Base Pointer,源變址寄存器Source Index,目的變址寄存器Destination Index,2.4 微處理器的寄存器組織,二.段寄存器,堆棧信息,數(shù)據(jù)(數(shù)值、字符等),代碼(指令碼),在微機(jī)系統(tǒng)的內(nèi)存中通常存放著三類信息:,指示CPU執(zhí)行何種操作。,程序處理的對(duì)象或結(jié)果。,被保存的返回地址和中間結(jié)果等。,代碼段 數(shù)據(jù)段 堆棧段,2.4 微處理器的寄存器組織,有個(gè)段寄存器。 分別是:,SS,ES,DS,CS,代碼段寄存器。指向當(dāng)前的代碼段,指令由此段取出。Code Segment,數(shù)據(jù)段寄存器。指向當(dāng)前的數(shù)據(jù)段。Data Segment,附加數(shù)據(jù)段寄存器。指向當(dāng)前的附加數(shù)據(jù)段。Extra Segment,堆棧段寄存器。指向當(dāng)前的堆棧段。Stack Segment,16位,2.4 微處理器的寄存器組織,指令指針寄存器相當(dāng)于一般微處理器中的程序計(jì)數(shù)器(PC:Program Counter )。 它始終指向CPU下一條要取指令所在存貯器單元的偏移地址(段地址由CS提供)。 用戶不能更改IP的值,只有CPU執(zhí)行轉(zhuǎn)移指令,子程序調(diào)用指令和子程序返回指令以及中斷處理時(shí),IP才作相應(yīng)的改變。,四.控制寄存器(2個(gè)),1.指令指針寄存器(IP:Instruction Pointer )(16位),2.4 微處理器的寄存器組織,標(biāo)志寄存器相當(dāng)于一般微處理器中的程序狀態(tài)字寄存器(PSW)。16位,但有用的只有9位,其中:,2.標(biāo)志寄存器(FLAG),狀態(tài)標(biāo)志:CF,PF,AF,ZF,SF,OF,共6位,控制標(biāo)志:TF,IF,DF,共3位,如下圖所示:,2.4 微處理器的寄存器組織,CF(Carry Flag)進(jìn)位標(biāo)志。如果加法時(shí)最高位(對(duì)字節(jié)操作是D7位,對(duì)字操作是D15位)產(chǎn)生進(jìn)位或減法時(shí)最高位產(chǎn)生錯(cuò)位,則CF=1,否則CF=0。,狀 態(tài) 標(biāo) 志,反映的是ALU運(yùn)算后結(jié)果的狀態(tài),AF(Auxiliary Carry Flag)輔助進(jìn)位標(biāo)志。如果在加法時(shí)D3位有進(jìn)位或減法時(shí)D3位有借位,則AF=1,否則AF=0。這個(gè)標(biāo)志位用于實(shí)現(xiàn)BCD碼算術(shù)運(yùn)算結(jié)果的調(diào)整。,2.4 微處理器的寄存器組織,ZF(Zero Flag)零標(biāo)志位。 如果運(yùn)算結(jié)果各位都為零,則ZF=1,否則ZF=0。,SF(Sign Flag)符號(hào)標(biāo)志。 它總是和結(jié)果的最高位(字節(jié)操作時(shí)是D7,字操作時(shí)是D15)相同,因?yàn)樵谘a(bǔ)碼運(yùn)算時(shí)最高位是符號(hào)位,所以運(yùn)算結(jié)果為負(fù)時(shí),SF=1,否則SF=0.,2.4 微處理器的寄存器組織,OF(Overflow Flag)溢出標(biāo)志。 在加或減運(yùn)算中結(jié)果超出8位或者16位有符號(hào)數(shù)所能表示的數(shù)值范圍(-128 +127或-32768 +32767)時(shí),產(chǎn)生溢出,OF=1,否則OF=0。,PF(Parity Flag)奇偶標(biāo)志。如果操作結(jié)果的低8位中含有偶數(shù)個(gè)1,PF=1,否則PF=0。,2.4 微處理器的寄存器組織,例1:若CPU執(zhí)行5439H+476AH加法運(yùn)算指令:,那么,指令執(zhí)行后有: SF=1,ZF=0,PF=1,AF=1,CF=0,OF=1,0101 0100 0011 1001B,0100 0111 0110 1010B,1001 1011 1010 0011B,+,2.4 微處理器的寄存器組織,例2:若CPU執(zhí)行543AH-FE00H減法運(yùn)算指令;,那么,指令執(zhí)行后有: SF=0,ZF=0,PF=1,AF=0,CF=1,OF=0,0101 0100 0011 1010B,1111 1110 0000 0000B,0101 0110 0011 1010B,-,2.4 微處理器的寄存器組織,控 制 標(biāo) 志,用來控制CPU的操作特征(運(yùn)行狀態(tài)),DF(Direction Flag) 方向控制標(biāo)志。 可由指令置1/清0,CLD;DF=0,在進(jìn)行字符串操作時(shí),CPU每執(zhí)行一條串操作指令,對(duì)源或(與)目的操作數(shù)的地址會(huì)自動(dòng)進(jìn)行一次調(diào)整,其調(diào)整準(zhǔn)則為,0,自動(dòng)遞增。,STD;DF=1,DF=,1,自動(dòng)遞減。,2.4 微處理器的寄存器組織,IF(Interrupt Enable Flag),CLI;IF=0,CPU處于關(guān)中斷狀態(tài)。,1時(shí),CPU能響應(yīng)外部可屏蔽中斷請(qǐng)求;,當(dāng)IF=,IF對(duì)外部非可屏蔽中斷請(qǐng)求以及CPU內(nèi)部的中斷不起作用.,可由指令置1/清0:,外部可屏蔽中斷允許標(biāo)志。,STI;IF=1,CPU處于開中斷狀態(tài)。,0時(shí),CPU不能響應(yīng)外部可屏蔽中斷請(qǐng)求。,2.4 微處理器的寄存器組織,TF(Trap Flag)陷井標(biāo)志。 沒有專門的置1/清0指令。 當(dāng)TF=1時(shí),CPU每執(zhí)行完一條指令便自動(dòng)產(chǎn)生一個(gè)內(nèi)部中斷(類型為1),轉(zhuǎn)去執(zhí)行一個(gè)中斷服務(wù)程序,用戶可以借助中斷服務(wù)程序來檢查每條指令執(zhí)行的情況,稱為單步工作方式,常用于程序的調(diào)試。,2.4 微處理器的寄存器組織,一.存儲(chǔ)器地址空間和數(shù)據(jù)存儲(chǔ)格式,8086/8088的存儲(chǔ)器都是以字節(jié)(8位)為單位 組織的。 有20條地址總線, 字節(jié)(1B) 。 每個(gè)字節(jié)對(duì)應(yīng)一個(gè)唯一的地址, 地址范圍為 -1 (用16進(jìn)制表示為00000 FFFFFH),如圖所示。,2.5 微處理器的存儲(chǔ)器和I/O組織,存儲(chǔ)器,二 進(jìn) 制 地 址,十六進(jìn)制地址,00000,0000 0000 0000 0000 0000,00001,00002,00003,0000 0000 0000 0000 0001,0000 0000 0000 0000 0011,0000 0000 0000 0000 0010,FFFFE,FFFFF,1111 1111 1111 1111 1111,1111 1111 1111 1111 1110,2.5 微處理器的存儲(chǔ)器與I/O組織,存儲(chǔ)器內(nèi)兩個(gè)連續(xù)的字節(jié),定義為一個(gè)字, 低字節(jié)(低8位)存放在低地址中,高字節(jié)(高8位)存放在高地址中。 各位的編號(hào)方法是最低位(LSB)為位0,一個(gè)字節(jié)中,最高位(MAS)編號(hào)為位7;一個(gè)字中最高位的編號(hào)為位15。,這些約定如圖所示,2.5 微處理器的存儲(chǔ)器與I/O組織,15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0,(高字節(jié)),(低字節(jié)),地址=N+1,字地址,地址=N,2.5 微處理器的存儲(chǔ)器與I/O組織,字?jǐn)?shù)據(jù)在存儲(chǔ)器中存放的格式如圖所示,字單元的地址,一個(gè)字單元,一個(gè)字節(jié)單元,高字節(jié) 低字節(jié),D15 D8,D7 D0,字?jǐn)?shù)據(jù)在存儲(chǔ)器中存放格式示意圖,2.5 微處理器的存儲(chǔ)器與I/O組織,8086/8088允許字從任何地址開始。字的地址是偶地址時(shí),稱字的存儲(chǔ)是對(duì)準(zhǔn)的,若字的地址是奇地址時(shí),則稱字的存儲(chǔ)是未對(duì)準(zhǔn)的。,8086 CPU數(shù)據(jù)總線16位,對(duì)于訪問(讀或?qū)懀┳止?jié)的指令,需要一個(gè)總線周期。 對(duì)于訪問一個(gè)偶地址的字的指令,也只需要一個(gè)總線周期。 而對(duì)于訪問一個(gè)奇地址的字的指令,則需要兩個(gè)總線周期(CPU自動(dòng)完成)。,2.5 微處理器的存儲(chǔ)器與I/O組織,8088 CPU數(shù)據(jù)總線8位,無論是字,還是字節(jié) 數(shù)據(jù)存取操作,也無論是偶地址的字,還是奇地 址的字,每一個(gè)總線周期只能完成一個(gè)字節(jié)的數(shù) 據(jù)存取操作。對(duì)字?jǐn)?shù)據(jù)所組成的連續(xù)兩個(gè)總線周 期是由CPU 自動(dòng)完成的。,2.5 微處理器的存儲(chǔ)器與I/O組織,從前面的介紹可知,,二.存儲(chǔ)器的分段和物理地址的形式,1為什么要分段,8086/8088CPU有20條地址線(A19A0),能尋址外部存貯空間為 =1MB,而在8088/8086CPU內(nèi)部能向存貯器提供地址碼的地址寄存器有六個(gè),均為16位,所以用這六個(gè)16位地址寄存器任意一個(gè)給外部存貯器提供地址,只能提供 =64K個(gè)地址,所以,對(duì)1MB地址尋址不完。這六個(gè)16位地址寄存器分別為:,2.5 微處理器的存儲(chǔ)器與I/O組織,為了使8088/8086CPU能尋址到外部存貯器1MB空間中任何一個(gè)單元,8088/8086巧妙地采用了地址分段方法(將1MB空間分成若干個(gè)邏輯段),從而將尋址范圍擴(kuò)大到了1MB。,基址寄存器,DI,SI,BP,BX,基址指針寄存器,源變址寄存器,堆棧指針寄存器,目的變址寄存器,指令指針寄存器,SP,IP,2.5 微處理器的存儲(chǔ)器與I/O組織,1MB的存貯空間中,每個(gè)存貯單元的實(shí)際地址編 碼稱為該單元的物理地址(用PA表示)。,2怎么分段,各邏輯段的起始地址必須能被16整除,即一個(gè) 段的起始地址(20位物理地址)的低4位二進(jìn)制 碼必須是0。,把1MB的存貯空間劃分成若干個(gè)邏輯段,每段最 多64KB。,2.5 微處理器的存儲(chǔ)器與I/O組織,一個(gè)段的起始地址的高16位自然數(shù)為該段的段地址.顯然,在1MB的存貯空間中,可以有 個(gè)段地址.每個(gè)相鄰的兩個(gè)段地址之間相隔16個(gè)存貯單元。,在一個(gè)段內(nèi)的每個(gè)存貯單元,可以用相對(duì)于本段的起始地址的偏移量來表示,這個(gè)偏移量稱為段內(nèi)偏移地址,也稱為有效地址(EA)。,段內(nèi)偏移地址也用16位二進(jìn)制編碼表示.所以,在一個(gè)段內(nèi)有 =64K個(gè)偏移地址(即一個(gè)段最大為64KB)。,2.5 微處理器的存儲(chǔ)器與I/O組織,在一個(gè)64KB的段內(nèi),每個(gè)偏移地址單元的段地址是相同的.所以段地址也稱為段基址。,由于相鄰兩個(gè)段地址只相隔16個(gè)單元,所以段與段之間大部分空間互相覆蓋(重疊)。,存貯器段的劃分與段的覆蓋示意圖如下圖所示。,2.5 微處理器的存儲(chǔ)器與I/O組織,存貯器段的劃分與段的覆蓋示意圖,段0,段1,段2,段地址,2.5 微處理器的存儲(chǔ)器與I/O組織,段地址和段內(nèi)偏移地址都是無符號(hào)的16位二進(jìn)制數(shù),常用4位十六進(jìn)制數(shù)表示。這種方法表示的存貯器單元的地址稱為邏輯地址。如下圖所示。,2物理地址(PA)的形成,邏輯地址的表示格式為:段地址:偏移地址,2.5 微處理器的存儲(chǔ)器與I/O組織,XXXXXH,XXXXH : XXXXH,段地址:段內(nèi)偏移地址,邏輯地址,20位物理地址,2.5 微處理器的存儲(chǔ)器與I/O組織,其中段地址有段寄存器提供:,一個(gè)存儲(chǔ)單元用邏輯地址表示后,CPU 對(duì)該 單元的尋址就應(yīng)提供兩部分地址,段地址,段內(nèi)有效地址,2.5 微處理器的存儲(chǔ)器與I/O組織,段內(nèi)偏移地址由下列地址寄存器提供:,BX BP SI DI,CPU 對(duì)存儲(chǔ)器進(jìn)行數(shù)據(jù)讀/寫操作時(shí),由這些寄存器以某種尋址方式向存儲(chǔ)器提供段內(nèi)偏移地址。,2.5 微處理器的存儲(chǔ)器與I/O組織,已知某存儲(chǔ)單元的邏輯地址,怎樣求該單元的 物理地址PA: 物理地址=段地址 10H+段內(nèi)偏移地址,8086/8088 CPU中的BIU單元用來完成物理地址的計(jì)算,其計(jì)算方法如圖所示。,2.5 微處理器的存儲(chǔ)器與I/O組織,物理地址的形成,19 0,16位段基址,16位段內(nèi)偏移地址,16位段基址 0 0 0 0,20位物理地址,19 0,15 段寄存器 0,15 EA 0,2.5 微處理器的存儲(chǔ)器與I/O組織,例1:某單元的邏輯地址為4B09H:5678H,則該存儲(chǔ)單元的物理地址為:,物理地址(PA)=段地址 10H+EA =4B09H 10H+5678H =4B090H+5678H =50708H,2.5 微處理器的存儲(chǔ)器與I/O組織,例2:圖中物理地址為00020H單元,其邏輯地址可以有:,2.5 微處理器的存儲(chǔ)器與I/O組織,0002H:0000H,由此可見,一個(gè)存儲(chǔ)單元,若用不同的邏輯地址表示,其PA是唯一的。,2.5 微處理器的存儲(chǔ)器與I/O組織,在訪問存儲(chǔ)器時(shí),段地址總是由段寄存器提供的。8086/8088微處理器中有4個(gè)段寄存器(CS、DS、SS、ES),所以CPU可以通過這4個(gè)段寄存器來訪問4個(gè)不同的段。用程序?qū)Χ渭拇嫫鞯膬?nèi)容進(jìn)行修改,可實(shí)現(xiàn)訪問所有的段。 一般地,把段地址裝入段寄存器的那些段(不超過4個(gè))稱為當(dāng)前段。,2.5 微處理器的存儲(chǔ)器與I/O組織,三.信息的分段存儲(chǔ)與段寄存器的關(guān)系,特別要指出的是,用戶用8086/8088匯編語言編寫程序時(shí),要把程序中的不同信息安排在不同的段,也就是說,用戶源程序匯編后在存儲(chǔ)器中存放是按照不同的信息放在不同的邏輯段。而程序中的信息包括:,2.5 微處理器的存儲(chǔ)器與I/O組織,其中,代碼信息,存放在代碼段,其地址由CS:IP提供。,2.5 微處理器的存儲(chǔ)器與I/O組織,8086/8088CPU各種類型訪問存儲(chǔ)器時(shí),其地址成分的來源見下表所示。,

溫馨提示

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