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