版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、8086處理辦法器編程結(jié)構(gòu) 8086處理辦法器編程結(jié)構(gòu) 學(xué)學(xué) 習(xí)習(xí) 目目 的的 通過對本章的學(xué)習(xí),能夠達(dá)到下列要求: n描述80X86結(jié)構(gòu)特點(diǎn) n掌握8086的功能結(jié)構(gòu) n掌握8086微處理器的執(zhí)行環(huán)境 8086處理辦法器編程結(jié)構(gòu) 教學(xué)重點(diǎn) 1、8086/8微處理器的編程結(jié)構(gòu),處微處理器的編程結(jié)構(gòu),處 理器狀態(tài)字理器狀態(tài)字PSW各個(gè)標(biāo)志位各個(gè)標(biāo)志位 2、8086/8微機(jī)系統(tǒng)的存儲(chǔ)器組織微機(jī)系統(tǒng)的存儲(chǔ)器組織。 8086處理辦法器編程結(jié)構(gòu) 2.1.1 8086功能的擴(kuò)展 n1、從16位擴(kuò)展32位 n8086尋址1MB n80386(32位機(jī))尋址4GB n2、從實(shí)模式至保護(hù)模式 n 實(shí)模式:單用戶
2、、多任務(wù)的磁盤操作系統(tǒng)。操作 系統(tǒng)本身沒有程序隔離,沒有保護(hù)。 n保護(hù)模式:可以實(shí)現(xiàn)操作系統(tǒng)核心程序與應(yīng)用程序 的嚴(yán)格的隔離。保護(hù)模式支持多任務(wù)機(jī)制,任務(wù)之 間完全隔離。 2.1 80X86系列微處理器是系列微處理器是8086的延伸的延伸 8086處理辦法器編程結(jié)構(gòu) n3、片內(nèi)存儲(chǔ)器管理單元(MMU) n 引入了存儲(chǔ)管理單元(MMU),操作系統(tǒng)方便地 實(shí)現(xiàn)頁(每頁為4KB)虛擬存儲(chǔ)器管理。 n4、浮點(diǎn)支持 n 協(xié)處理器(浮點(diǎn)運(yùn)算) n5、MMX技術(shù) n MMX技術(shù)是Intel公司為增強(qiáng) CPU 在音像、圖形和通信應(yīng) 用方面而采取的技術(shù),并增加相應(yīng)的指令。 n6、 SIMD n 單指令多數(shù)據(jù)(S
3、IMD) 8086處理辦法器編程結(jié)構(gòu) 2.1.2 8086性能的提高 n1、利用流水線技術(shù)提高操作的并行性、利用流水線技術(shù)提高操作的并行性 n 同時(shí)執(zhí)行多條指令同時(shí)執(zhí)行多條指令 n2、引入片內(nèi)緩存(、引入片內(nèi)緩存(cache) n在處理器芯片中實(shí)現(xiàn)緩存在處理器芯片中實(shí)現(xiàn)緩存 nCPU和內(nèi)存之間的中介和內(nèi)存之間的中介 8086處理辦法器編程結(jié)構(gòu) 2.2 8086的功能結(jié)構(gòu)的功能結(jié)構(gòu) 8086:Intel系列的系列的16位微處理器,位微處理器,16條數(shù)據(jù)線、條數(shù)據(jù)線、20條條 地址線,可尋址地址范圍地址線,可尋址地址范圍220=1MB,80868086工作時(shí),只工作時(shí),只 要一個(gè)要一個(gè) 5V 5V
4、 電源和一個(gè)時(shí)鐘,時(shí)鐘頻率為電源和一個(gè)時(shí)鐘,時(shí)鐘頻率為5MHz5MHz 。 8088:內(nèi)部與:內(nèi)部與8086兼容,也是一個(gè)兼容,也是一個(gè)16位微處理器,只位微處理器,只 是外部數(shù)據(jù)總線為是外部數(shù)據(jù)總線為8位,所以稱為準(zhǔn)位,所以稱為準(zhǔn)16位微處理器。位微處理器。它它 具有包括乘法和除法的具有包括乘法和除法的1616位運(yùn)算指令,所以能處理位運(yùn)算指令,所以能處理1616 位數(shù)據(jù),還能處理位數(shù)據(jù),還能處理8 8位數(shù)據(jù)。位數(shù)據(jù)。80888088有有2020根地址線,所以根地址線,所以 可尋址的地址空間達(dá)可尋址的地址空間達(dá)2 220 20即 即1M1M字節(jié)。字節(jié)。 8086處理辦法器編程結(jié)構(gòu) 2.2 80
5、86的編程結(jié)構(gòu) 80868086的編程結(jié)構(gòu)從功能分成兩個(gè)單元的編程結(jié)構(gòu)從功能分成兩個(gè)單元 (1 1)總線接口單元)總線接口單元BIUBIU p管理管理80868086與系統(tǒng)總線的接口與系統(tǒng)總線的接口 p負(fù)責(zé)負(fù)責(zé)CPUCPU對存儲(chǔ)器和外設(shè)進(jìn)行訪問對存儲(chǔ)器和外設(shè)進(jìn)行訪問, , 取指令和取指令和 內(nèi)存中的數(shù)據(jù)內(nèi)存中的數(shù)據(jù) (2 2)執(zhí)行單元)執(zhí)行單元EUEU p負(fù)責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運(yùn)算負(fù)責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運(yùn)算 n兩個(gè)單元相互獨(dú)立,分別完成各自操作兩個(gè)單元相互獨(dú)立,分別完成各自操作 n兩個(gè)單元可以并行執(zhí)行,實(shí)現(xiàn)指令取指和兩個(gè)單元可以并行執(zhí)行,實(shí)現(xiàn)指令取指和 執(zhí)行的流水線操作執(zhí)行的流水線
6、操作 8086處理辦法器編程結(jié)構(gòu) 外部總線外部總線 內(nèi)部暫存器內(nèi)部暫存器 IP ES SS DS CS 輸入輸入/輸出輸出 控制電路控制電路 執(zhí)行部分執(zhí)行部分 控制電路控制電路 1 2 3 4 5 6 ALU 標(biāo)志寄存器標(biāo)志寄存器 AH AL BH BL CH CL DH DL SP BP SI DI 通用通用 寄存寄存 器器 地址地址 加法加法 器器 指令隊(duì)列緩沖器指令隊(duì)列緩沖器 執(zhí)行部件執(zhí)行部件 (EU) 總線接口部件總線接口部件 (BIU) 16位位 20位位 16位位 16位位 8086處理辦法器編程結(jié)構(gòu) (3) 8086/8088BIU的特點(diǎn)的特點(diǎn) 80868086的指令隊(duì)列為的指令
7、隊(duì)列為6 6個(gè)字節(jié),在執(zhí)行指令的個(gè)字節(jié),在執(zhí)行指令的 同時(shí),可從內(nèi)存中取出后續(xù)的指令代碼,同時(shí),可從內(nèi)存中取出后續(xù)的指令代碼, 放在指令隊(duì)列中。放在指令隊(duì)列中。 地址加法器用來產(chǎn)生地址加法器用來產(chǎn)生2020位物理地址。位物理地址。80868086 可用可用2020位地址尋址位地址尋址1M1M字節(jié)的內(nèi)存空間,而字節(jié)的內(nèi)存空間,而 CPUCPU內(nèi)部的寄存器都是內(nèi)部的寄存器都是16 16 位,需要由位,需要由2020位位 的地址加法器完成地址運(yùn)算。的地址加法器完成地址運(yùn)算。 如:如:CSCS0FE00H0FE00H,IPIP0400H0400H,則表示要取指,則表示要取指 令代碼的物理地址為令代碼的
8、物理地址為0FE400H0FE400H。 8086處理辦法器編程結(jié)構(gòu) (4) BIU與與EU的動(dòng)作協(xié)調(diào)原則的動(dòng)作協(xié)調(diào)原則 每當(dāng)每當(dāng)80868086的指令隊(duì)列中有兩個(gè)空字的指令隊(duì)列中有兩個(gè)空字 節(jié),節(jié),BIUBIU就會(huì)自動(dòng)把指令取到指令就會(huì)自動(dòng)把指令取到指令 隊(duì)列中。其取指的順序是按指令在隊(duì)列中。其取指的順序是按指令在 程序中出現(xiàn)的前后順序。程序中出現(xiàn)的前后順序。 8086處理辦法器編程結(jié)構(gòu) (4) BIU與與EU的動(dòng)作協(xié)調(diào)原則的動(dòng)作協(xié)調(diào)原則 每當(dāng)每當(dāng)EUEU準(zhǔn)備執(zhí)行一條指令時(shí),它會(huì)從準(zhǔn)備執(zhí)行一條指令時(shí),它會(huì)從BIUBIU部件部件 的指令隊(duì)列前部取出指令的代碼。的指令隊(duì)列前部取出指令的代碼。 p
9、執(zhí)行指令的過程中,如果必須訪問存儲(chǔ)器或者執(zhí)行指令的過程中,如果必須訪問存儲(chǔ)器或者I I O O端口,那么端口,那么EUEU就會(huì)請求就會(huì)請求BIUBIU,進(jìn)入總線周期,進(jìn)入總線周期, 完成訪問內(nèi)存或者完成訪問內(nèi)存或者I IO O端口的操作端口的操作 ; p如果如果BIUBIU正處于空閑狀態(tài),立即響應(yīng)正處于空閑狀態(tài),立即響應(yīng)EUEU的總線請的總線請 求。求。 p如如BIUBIU正取指令,則正取指令,則BIUBIU完成取指總線周期,再響完成取指總線周期,再響 應(yīng)應(yīng)EUEU的訪問總線請求。的訪問總線請求。 8086處理辦法器編程結(jié)構(gòu) 當(dāng)指令隊(duì)列已滿,且當(dāng)指令隊(duì)列已滿,且EUEU又沒有總線訪問請又沒有總
10、線訪問請 求時(shí),求時(shí),BIUBIU便進(jìn)入空閑狀態(tài)。便進(jìn)入空閑狀態(tài)。 在執(zhí)行轉(zhuǎn)移指令、調(diào)用指令和返回指令時(shí),在執(zhí)行轉(zhuǎn)移指令、調(diào)用指令和返回指令時(shí), 由于待執(zhí)行指令的順序發(fā)生了變化,則指令由于待執(zhí)行指令的順序發(fā)生了變化,則指令 隊(duì)列中已經(jīng)裝入的字節(jié)被自動(dòng)消除,隊(duì)列中已經(jīng)裝入的字節(jié)被自動(dòng)消除,BIUBIU會(huì)接會(huì)接 著往指令隊(duì)列裝入轉(zhuǎn)向的另一程序段中的指著往指令隊(duì)列裝入轉(zhuǎn)向的另一程序段中的指 令代碼。令代碼。 (4) BIU與與EU的動(dòng)作協(xié)調(diào)原則的動(dòng)作協(xié)調(diào)原則 8086處理辦法器編程結(jié)構(gòu) p將將8086CPU8086CPU分成二個(gè)獨(dú)立的功能部件使二者能夠分成二個(gè)獨(dú)立的功能部件使二者能夠 并行工作,把取
11、指令工作和分析指令、執(zhí)行指令并行工作,把取指令工作和分析指令、執(zhí)行指令 工作重疊進(jìn)行,從而提高工作重疊進(jìn)行,從而提高CPUCPU的工作效力,加快的工作效力,加快 指令的執(zhí)行速度。指令的執(zhí)行速度。 p指令隊(duì)列可以被看成是一個(gè)特殊的指令隊(duì)列可以被看成是一個(gè)特殊的RAMRAM,它的工,它的工 作原理是作原理是“先進(jìn)先出先進(jìn)先出”,寫入的指令只能存放在寫入的指令只能存放在 隊(duì)列尾,讀出的指令是隊(duì)列頭存放的指令。隊(duì)列尾,讀出的指令是隊(duì)列頭存放的指令。 pEUEU和和BIUBIU之間就是通過指令隊(duì)列聯(lián)系起來,多數(shù)之間就是通過指令隊(duì)列聯(lián)系起來,多數(shù) 情況下,情況下,BIUBIU在不停地向隊(duì)列寫入指令,而在不
12、停地向隊(duì)列寫入指令,而EUEU每每 執(zhí)行完一條指令后,就向隊(duì)列讀取下一條指令。執(zhí)行完一條指令后,就向隊(duì)列讀取下一條指令。 二者的動(dòng)作既獨(dú)立,又協(xié)調(diào)。二者的動(dòng)作既獨(dú)立,又協(xié)調(diào)。 (4) BIU與與EU的動(dòng)作協(xié)調(diào)原則的動(dòng)作協(xié)調(diào)原則 8086處理辦法器編程結(jié)構(gòu) (4) BIU與與EU的動(dòng)作協(xié)調(diào)原則的動(dòng)作協(xié)調(diào)原則 8086處理辦法器編程結(jié)構(gòu) 2.3 8086微處理器的執(zhí)行環(huán)境 n2.3.1 基本執(zhí)行環(huán)境 1、地址空間(內(nèi)存)、地址空間(內(nèi)存) n線性地址(尋找程序或數(shù)據(jù))線性地址(尋找程序或數(shù)據(jù)) 2、寄存器、寄存器 n 8個(gè)通用寄存器、個(gè)通用寄存器、4個(gè)段寄存器、標(biāo)志寄存器和指令寄個(gè)段寄存器、標(biāo)志寄
13、存器和指令寄 存器。(中間結(jié)果,狀態(tài)標(biāo)志,指令寄存器)存器。(中間結(jié)果,狀態(tài)標(biāo)志,指令寄存器) 3、堆棧、堆棧 n 為支持過程子程序調(diào)用并在過程或子程序之間傳遞參為支持過程子程序調(diào)用并在過程或子程序之間傳遞參 數(shù)(什么叫堆棧)。數(shù)(什么叫堆棧)。 n堆棧是按照堆棧是按照“先進(jìn)后出先進(jìn)后出”原則組織的存儲(chǔ)區(qū)域原則組織的存儲(chǔ)區(qū)域 4、I/O端口。端口。 n 8086結(jié)構(gòu)支持?jǐn)?shù)據(jù)在處理器和輸入輸出(結(jié)構(gòu)支持?jǐn)?shù)據(jù)在處理器和輸入輸出(I/O)端口)端口 之間的傳送之間的傳送 8086處理辦法器編程結(jié)構(gòu) 8086基本執(zhí)行環(huán)境基本執(zhí)行環(huán)境 AH AL BH BL CH CL DH DL AX BX CX D
14、X SP BP SI DI IP FLAG CS DS SS ES (A) 累加器累加器 基地址寄存器基地址寄存器 計(jì)數(shù)器計(jì)數(shù)器 數(shù)據(jù)寄存器數(shù)據(jù)寄存器 (SP) 堆棧指針寄存器堆棧指針寄存器 基地址寄存器基地址寄存器 源變址寄存器源變址寄存器 目的變址寄存器目的變址寄存器 (PC) 指令指針寄存器指令指針寄存器 (PSW) 狀態(tài)標(biāo)志寄存器狀態(tài)標(biāo)志寄存器 代碼段寄存器代碼段寄存器 數(shù)據(jù)段寄存器數(shù)據(jù)段寄存器 堆棧段寄存器堆棧段寄存器 附加段寄存器附加段寄存器 CS DS SS ES F000 D000 A320 7200 64K 代碼段 64K 數(shù)據(jù)段 64K 堆棧段 64K 數(shù)據(jù)段E 此圖映射后
15、形成 20位線性地址能尋找1MB空間 段左移4位加偏移 量形成20位 8086處理辦法器編程結(jié)構(gòu) 80868086內(nèi)部寄存器有:內(nèi)部寄存器有: v 4 4個(gè)數(shù)據(jù)寄存器個(gè)數(shù)據(jù)寄存器 v 4 4個(gè)指針寄存器個(gè)指針寄存器 v 4 4個(gè)段寄存器個(gè)段寄存器 v 1 1個(gè)指令指針寄存器個(gè)指令指針寄存器 v 1 1個(gè)標(biāo)志寄存器個(gè)標(biāo)志寄存器 8086/8088CPU8086/8088CPU內(nèi)部寄存器內(nèi)部寄存器 8086處理辦法器編程結(jié)構(gòu) 8086的通用寄存器 n80868086的的1616位通用寄存器是:位通用寄存器是: AXAXBXBXCXCXDXDX 其中其中AXAX稱為累加器,稱為累加器,BXBX稱為基
16、址寄存器,稱為基址寄存器, CXCX稱為計(jì)數(shù)寄存器,稱為計(jì)數(shù)寄存器,DXDX稱為數(shù)據(jù)寄存器稱為數(shù)據(jù)寄存器 n80868086的的8 8位通用寄存器是:位通用寄存器是: AHAHBHBHCHCHDHDH ALALBLBLCLCLDLDL nAXAX的高字節(jié)為的高字節(jié)為AHAH,低字節(jié)為,低字節(jié)為ALAL, nBXBX,CX,DXCX,DX類似類似 n對其中某對其中某8 8位的操作,并不影響另外對應(yīng)位的操作,并不影響另外對應(yīng)8 8位位 的數(shù)據(jù)。的數(shù)據(jù)。 8086處理辦法器編程結(jié)構(gòu) 數(shù)據(jù)寄存器 n數(shù)據(jù)寄存器用來存放計(jì)算的結(jié)果和操作數(shù),也可以數(shù)據(jù)寄存器用來存放計(jì)算的結(jié)果和操作數(shù),也可以 存放地址。存放
17、地址。 n每個(gè)寄存器又有它們各自的專用目的:每個(gè)寄存器又有它們各自的專用目的: nAXAX累加器,使用頻度最高,用于算術(shù)、邏輯累加器,使用頻度最高,用于算術(shù)、邏輯 運(yùn)算以及與外設(shè)傳送信息等;運(yùn)算以及與外設(shè)傳送信息等; nBXBX基址寄存器,常用做存放存儲(chǔ)器地址;基址寄存器,常用做存放存儲(chǔ)器地址; nCXCX計(jì)數(shù)器,作為循環(huán)和串操作等指令中的隱計(jì)數(shù)器,作為循環(huán)和串操作等指令中的隱 含計(jì)數(shù)器;含計(jì)數(shù)器; nDXDX數(shù)據(jù)寄存器,常用來存放雙字長數(shù)據(jù)的高數(shù)據(jù)寄存器,常用來存放雙字長數(shù)據(jù)的高 1616位,或存放外設(shè)端口地址。位,或存放外設(shè)端口地址。 8086處理辦法器編程結(jié)構(gòu) u指針寄存器SPSP和和B
18、PBP SPSP是堆棧指針寄存器,它和堆棧段寄存器是堆棧指針寄存器,它和堆棧段寄存器SSSS一一 起來確定堆棧在內(nèi)存中的位置;起來確定堆棧在內(nèi)存中的位置; BPBP是基數(shù)指針寄存器,用于存放基地址。是基數(shù)指針寄存器,用于存放基地址。 u變址寄存器SISI和和DIDI SISI是源變址寄存器是源變址寄存器 DIDI是目的變址寄存器,用于指令的變址尋址方是目的變址寄存器,用于指令的變址尋址方 式。式。 8086的專用寄存器的專用寄存器 8086處理辦法器編程結(jié)構(gòu) 段寄存器段寄存器 DS DS 數(shù)據(jù)段寄存器數(shù)據(jù)段寄存器 (Data Segment) (Data Segment) CS CS 代碼段寄
19、存器代碼段寄存器 (Code Segment) (Code Segment) ES ES 附加段寄存器附加段寄存器 (Extra Segment) (Extra Segment) SS SS 堆棧段寄存器堆棧段寄存器 (Stack Segment) (Stack Segment) 這些段寄存器的內(nèi)容與有效的地址一這些段寄存器的內(nèi)容與有效的地址一 起,用于確定內(nèi)存的物理地址。通常用起,用于確定內(nèi)存的物理地址。通常用CSCS、 DSDS、ESES以及以及SSSS用于確定代碼段、數(shù)據(jù)段、用于確定代碼段、數(shù)據(jù)段、 附加段以及堆棧段的基地址。附加段以及堆棧段的基地址。 8086處理辦法器編程結(jié)構(gòu) 標(biāo)志寄
20、存器標(biāo)志寄存器 n標(biāo)志(標(biāo)志(FlagFlag)用于反映指令執(zhí)行結(jié)果)用于反映指令執(zhí)行結(jié)果 或控制指令執(zhí)行形式?;蚩刂浦噶顖?zhí)行形式。 n80868086處理器的各種標(biāo)志形成了一個(gè)處理器的各種標(biāo)志形成了一個(gè)1616 位的標(biāo)志寄存器位的標(biāo)志寄存器FLAGSFLAGS(程序狀態(tài)字(程序狀態(tài)字 PSWPSW寄存器寄存器)。 OF 1115 12 DF 10 IF 9 TF 8 SF 7 ZF 65 AF 43 PF 21 CF 0 程序設(shè)計(jì)需要利用標(biāo)志的狀態(tài)程序設(shè)計(jì)需要利用標(biāo)志的狀態(tài) 8086處理辦法器編程結(jié)構(gòu) 標(biāo)志的分類 n6 6個(gè)狀態(tài)標(biāo)志:個(gè)狀態(tài)標(biāo)志: n用來記錄程序運(yùn)行結(jié)果的狀態(tài)信息,用來記錄程
21、序運(yùn)行結(jié)果的狀態(tài)信息, 許多指令的執(zhí)行都將相應(yīng)地設(shè)置它的許多指令的執(zhí)行都將相應(yīng)地設(shè)置它的 狀態(tài)。狀態(tài)。 CF ZF SF PF OF AFCF ZF SF PF OF AF n3 3個(gè)控制標(biāo)志:個(gè)控制標(biāo)志: n可由程序根據(jù)需要用指令設(shè)置,用于可由程序根據(jù)需要用指令設(shè)置,用于 控制處理器執(zhí)行指令的方式控制處理器執(zhí)行指令的方式 DF IF TFDF IF TF 8086處理辦法器編程結(jié)構(gòu) 進(jìn)位標(biāo)志CF(Carry Flag) n當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)位(加法)或當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)位(加法)或 借位(減法)時(shí),進(jìn)位標(biāo)志置借位(減法)時(shí),進(jìn)位標(biāo)志置1 1,即,即CF = 1CF = 1;
22、否則否則CF = 0CF = 0。 49H + 6DH49H + 6DHB6HB6H, 沒有進(jìn)位:沒有進(jìn)位:CF = 0CF = 0 BBH + 6AHBBH + 6AH(1 1)25H25H,有進(jìn)位:,有進(jìn)位:CF = 1CF = 1 8086處理辦法器編程結(jié)構(gòu) 零標(biāo)志ZF(Zero Flag) n若運(yùn)算結(jié)果為若運(yùn)算結(jié)果為0 0,則,則ZF = 1ZF = 1; 否則否則ZF = 0ZF = 0 49H + 6DH49H + 6DHB6HB6H,結(jié)果不是零:,結(jié)果不是零:ZF = 0ZF = 0 75H + 8BH75H + 8BH(1 1)00H00H,結(jié)果是零:,結(jié)果是零:ZF = 1Z
23、F = 1 注意:注意: ZFZF為為1 1表示的結(jié)果是表示的結(jié)果是0 8086處理辦法器編程結(jié)構(gòu) 符號(hào)標(biāo)志SF(Sign Flag) n運(yùn)算結(jié)果最高位為運(yùn)算結(jié)果最高位為1 1,則,則SF = 1SF = 1;否則;否則 SF = 0SF = 0 有符號(hào)數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號(hào)有符號(hào)數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號(hào) 所以,最高有效位就是符號(hào)標(biāo)志的狀態(tài)所以,最高有效位就是符號(hào)標(biāo)志的狀態(tài) 8086處理辦法器編程結(jié)構(gòu) 奇偶標(biāo)志PF(Parity Flag) n當(dāng)運(yùn)算結(jié)果最低字節(jié)中當(dāng)運(yùn)算結(jié)果最低字節(jié)中“1 1”的個(gè)數(shù)為零或偶的個(gè)數(shù)為零或偶 數(shù)時(shí),數(shù)時(shí),PF = 1PF = 1;否則;否則PF =
24、0PF = 0 3AH + 7CH3AH + 7CHB6HB6H10110110B10110110B 結(jié)果中有結(jié)果中有5 5個(gè)個(gè)1 1,是奇數(shù):是奇數(shù):PF = 0PF = 0 PF PF標(biāo)志僅反映最低標(biāo)志僅反映最低8 8位中位中“1 1”的個(gè)數(shù)是的個(gè)數(shù)是 偶或奇,即使是進(jìn)行偶或奇,即使是進(jìn)行1616位字操作位字操作 8086處理辦法器編程結(jié)構(gòu) 溢出標(biāo)志OF(Overflow Flag) n若算術(shù)運(yùn)算的結(jié)果有溢出,若算術(shù)運(yùn)算的結(jié)果有溢出, 則則OFOF1 1;否則;否則 OFOF0 0 49H + 6DH49H + 6DH B6HB6H,產(chǎn)生溢出:,產(chǎn)生溢出:OF = 1OF = 1 75H
25、+ 8BH 75H + 8BH (1 1)26H26H,沒有溢出:,沒有溢出:OF = 0OF = 0 8086處理辦法器編程結(jié)構(gòu) 什么是溢出? n處理器內(nèi)部以補(bǔ)碼表示有符號(hào)數(shù)處理器內(nèi)部以補(bǔ)碼表示有符號(hào)數(shù) n8 8位補(bǔ)碼表達(dá)的整數(shù)范圍是:位補(bǔ)碼表達(dá)的整數(shù)范圍是:127127128128 n1616位補(bǔ)碼表達(dá)的范圍是:位補(bǔ)碼表達(dá)的范圍是:32767327673276832768 n如果運(yùn)算結(jié)果超出這個(gè)范圍,就產(chǎn)生了溢出如果運(yùn)算結(jié)果超出這個(gè)范圍,就產(chǎn)生了溢出 n有溢出,說明有符號(hào)數(shù)的運(yùn)算結(jié)果不正確有溢出,說明有符號(hào)數(shù)的運(yùn)算結(jié)果不正確 49H49H6DH6DHB6HB6H,就是,就是73731091
26、09182182, 已經(jīng)超出已經(jīng)超出128128127127范圍,產(chǎn)生溢出,故范圍,產(chǎn)生溢出,故OFOF1 1; 另一方面,補(bǔ)碼另一方面,補(bǔ)碼B6HB6H表達(dá)真值是表達(dá)真值是-74-74,顯然運(yùn)算結(jié)果也,顯然運(yùn)算結(jié)果也 不正確。不正確。 8086處理辦法器編程結(jié)構(gòu) 溢出和進(jìn)位 n溢出標(biāo)志溢出標(biāo)志OFOF和進(jìn)位標(biāo)志和進(jìn)位標(biāo)志CFCF是兩個(gè)意義是兩個(gè)意義 不同的標(biāo)志。不同的標(biāo)志。 n進(jìn)位標(biāo)志進(jìn)位標(biāo)志CFCF表示無符號(hào)數(shù)運(yùn)算結(jié)果是表示無符號(hào)數(shù)運(yùn)算結(jié)果是 否超出范圍,運(yùn)算結(jié)果仍然正確。否超出范圍,運(yùn)算結(jié)果仍然正確。 n溢出標(biāo)志溢出標(biāo)志OFOF表示有符號(hào)數(shù)運(yùn)算結(jié)果是表示有符號(hào)數(shù)運(yùn)算結(jié)果是 否超出范圍,運(yùn)
27、算結(jié)果已經(jīng)不正確。否超出范圍,運(yùn)算結(jié)果已經(jīng)不正確。 8086處理辦法器編程結(jié)構(gòu) 溢出和進(jìn)位的對比 例例1 1:49H + 6DH49H + 6DHB6HB6H 無符號(hào)數(shù)運(yùn)算:無符號(hào)數(shù)運(yùn)算:7373109109182182 范圍內(nèi),無進(jìn)位范圍內(nèi),無進(jìn)位 有符號(hào)數(shù)運(yùn)算:有符號(hào)數(shù)運(yùn)算: 7373109109182182 范圍外,有溢出范圍外,有溢出 例例2 2:BBH + 6AHBBH + 6AH(1 1)25H25H 無符號(hào)數(shù)運(yùn)算:無符號(hào)數(shù)運(yùn)算: 187187106106293293 范圍外,有進(jìn)位范圍外,有進(jìn)位 有符號(hào)數(shù)運(yùn)算:有符號(hào)數(shù)運(yùn)算: 69691061063737 范圍內(nèi),無溢出范圍內(nèi),無
28、溢出 8086處理辦法器編程結(jié)構(gòu) 溢出的判斷 n判斷運(yùn)算結(jié)果是否溢出有一個(gè)簡單的判斷運(yùn)算結(jié)果是否溢出有一個(gè)簡單的 規(guī)則:規(guī)則: n只有當(dāng)兩個(gè)相同符號(hào)數(shù)相加(包括不只有當(dāng)兩個(gè)相同符號(hào)數(shù)相加(包括不 同符號(hào)數(shù)相減),而運(yùn)算結(jié)果的符號(hào)同符號(hào)數(shù)相減),而運(yùn)算結(jié)果的符號(hào) 與原數(shù)據(jù)符號(hào)相反時(shí),產(chǎn)生溢出,因與原數(shù)據(jù)符號(hào)相反時(shí),產(chǎn)生溢出,因 為,此時(shí)的運(yùn)算結(jié)果顯然不正確。為,此時(shí)的運(yùn)算結(jié)果顯然不正確。 n其他情況下,則不會(huì)產(chǎn)生溢出其他情況下,則不會(huì)產(chǎn)生溢出 8086處理辦法器編程結(jié)構(gòu) 輔助進(jìn)位標(biāo)志AF(Auxiliary Carry Flag) 49H + 6DH49H + 6DHB6HB6H,D D3 3有
29、進(jìn)位:有進(jìn)位:AF = 1AF = 1 運(yùn)算時(shí)運(yùn)算時(shí)D D3 3位(低半字節(jié))有進(jìn)位或位(低半字節(jié))有進(jìn)位或 借位時(shí),借位時(shí),AF = 1AF = 1;否則;否則AF = 0AF = 0。 這個(gè)標(biāo)志主要由處理器內(nèi)部使用,這個(gè)標(biāo)志主要由處理器內(nèi)部使用, 用于十進(jìn)制算術(shù)運(yùn)算調(diào)整指令中,用用于十進(jìn)制算術(shù)運(yùn)算調(diào)整指令中,用 戶一般不必關(guān)心。戶一般不必關(guān)心。 8086處理辦法器編程結(jié)構(gòu) 例:兩個(gè)帶符號(hào)數(shù)例:兩個(gè)帶符號(hào)數(shù) 64 h , 64 h 相加。相加。 0 1 1 0 0 1 0 0 + 0 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 OF=1(運(yùn)算結(jié)果超過(運(yùn)算結(jié)果超過127);)
30、; SF=1 ; ZF=0 ; AF=0 ; PF=0 ; CF=0 。 O D I T S Z A P C 8086處理辦法器編程結(jié)構(gòu) 方向標(biāo)志DF(Direction Flag) n用于串操作指令中,控制地址的變化用于串操作指令中,控制地址的變化 方向:方向: 設(shè)置設(shè)置DFDF0 0,存儲(chǔ)器地址自動(dòng)增加;,存儲(chǔ)器地址自動(dòng)增加; 設(shè)置設(shè)置DFDF1 1,存儲(chǔ)器地址自動(dòng)減少。,存儲(chǔ)器地址自動(dòng)減少。 CLDCLD指令復(fù)位方向標(biāo)志:指令復(fù)位方向標(biāo)志:DFDF0 0 STDSTD指令置位方向標(biāo)志:指令置位方向標(biāo)志:DFDF1 1 8086處理辦法器編程結(jié)構(gòu) 中斷允許標(biāo)志IF(Interrupt-en
31、able Flag) n用于控制外部可屏蔽中斷是否可以被用于控制外部可屏蔽中斷是否可以被 處理器響應(yīng):處理器響應(yīng): 設(shè)置設(shè)置IFIF1 1,則允許中斷;,則允許中斷; 設(shè)置設(shè)置IFIF0 0,則禁止中斷。,則禁止中斷。 CLICLI指令復(fù)位中斷標(biāo)志:指令復(fù)位中斷標(biāo)志:IFIF0 0 STISTI指令置位中斷標(biāo)志:指令置位中斷標(biāo)志:IFIF1 1 8086處理辦法器編程結(jié)構(gòu) 陷阱標(biāo)志TF(Trap Flag) n用于控制處理器進(jìn)入單步操作方式:用于控制處理器進(jìn)入單步操作方式: 設(shè)置設(shè)置TFTF0 0,處理器正常工作;,處理器正常工作; 設(shè)置設(shè)置TFTF1 1,處理器單步執(zhí)行指令。,處理器單步執(zhí)行
32、指令。 8086處理辦法器編程結(jié)構(gòu) 指令指針指令指針I(yè)PIP n指令指針寄存器指令指針寄存器IPIP,指示代碼段中指,指示代碼段中指 令的偏移地址。令的偏移地址。 n它與代碼段寄存器它與代碼段寄存器CSCS聯(lián)用,確定下一聯(lián)用,確定下一 條指令的物理地址。條指令的物理地址。 n計(jì)算機(jī)通過計(jì)算機(jī)通過CS : IPCS : IP寄存器來控制指令寄存器來控制指令 序列的執(zhí)行流程。序列的執(zhí)行流程。 nIPIP寄存器是一個(gè)專用寄存器。寄存器是一個(gè)專用寄存器。 8086處理辦法器編程結(jié)構(gòu) 執(zhí)行部件 總線接口部件 通用寄存器通用寄存器 四個(gè)專用寄存器個(gè)專用寄存器 SP:堆棧指針:堆棧指針,其內(nèi)容與堆棧段寄存器
33、SS的 內(nèi)容一起,提供堆棧操作地址。 BP:基址指針:基址指針:構(gòu)成段內(nèi)偏移地址的一部分. SI:(Source Index):):SI含有源地址意思,產(chǎn) 生有效地址或?qū)嶋H地址的偏移量。 DI:(Destination Index):):DI含有目的意思, 產(chǎn)生有效地址或?qū)嶋H地址的偏移量。 算術(shù)邏輯單元算術(shù)邏輯單元ALU: 主要是加法器。大部分指令主要是加法器。大部分指令 的執(zhí)行由加法器完成。的執(zhí)行由加法器完成。標(biāo)志寄存器標(biāo)志寄存器: 16位字利用了9位。 標(biāo)志分兩類: 狀態(tài)標(biāo)志(狀態(tài)標(biāo)志(6位)位):反映剛剛完成的操作結(jié)果情況。 控制標(biāo)志(控制標(biāo)志(3位)位):在某些指令操作中起控制作用。
34、8086處理辦法器編程結(jié)構(gòu) 20位地址加法器位地址加法器 四個(gè)段寄存器:四個(gè)段寄存器:CS、DS、SS、ES CS管理代碼段管理代碼段;DS管理數(shù)據(jù)段管理數(shù)據(jù)段 SS管理堆棧段管理堆棧段;ES管理附加段管理附加段. 16位的指令指針寄存器位的指令指針寄存器IP: IP中的內(nèi)容是下一條指令 對現(xiàn)行代碼段基地址的偏移量, 6字節(jié)的指令隊(duì)列字節(jié)的指令隊(duì)列 指令隊(duì)列共六字節(jié),總線接指令隊(duì)列共六字節(jié),總線接 口部件口部件BIU從內(nèi)存取指令,從內(nèi)存取指令, 取來的總是放在指令隊(duì)列中;取來的總是放在指令隊(duì)列中; 執(zhí)行部件執(zhí)行部件EU從指令隊(duì)列取指從指令隊(duì)列取指 令,并執(zhí)行。令,并執(zhí)行。 8086處理辦法器編
35、程結(jié)構(gòu) 2.3.3 存儲(chǔ)器組織存儲(chǔ)器組織 p8086有有20根地址總線,因此,它可以直接尋址根地址總線,因此,它可以直接尋址 的存儲(chǔ)器單元數(shù)為:的存儲(chǔ)器單元數(shù)為:220=1MB p8086內(nèi)部寄存器和數(shù)據(jù)總線均為內(nèi)部寄存器和數(shù)據(jù)總線均為16位!位! 如何實(shí)現(xiàn)如何實(shí)現(xiàn)16位的存儲(chǔ)單元存放位的存儲(chǔ)單元存放20位的地址空間?位的地址空間? 8086處理辦法器編程結(jié)構(gòu) p由于由于CPU內(nèi)部的寄存器都是內(nèi)部的寄存器都是16位的,為了能夠提供位的,為了能夠提供 20位的物理地址,系統(tǒng)中采用了存儲(chǔ)器分段的方法。位的物理地址,系統(tǒng)中采用了存儲(chǔ)器分段的方法。 p規(guī)定存儲(chǔ)器的一個(gè)段為規(guī)定存儲(chǔ)器的一個(gè)段為64KB,
36、由段寄存器來確定,由段寄存器來確定 存儲(chǔ)單元的段地址,由指令提供該單元相對于相應(yīng)存儲(chǔ)單元的段地址,由指令提供該單元相對于相應(yīng) 段起始地址的段起始地址的16位偏移量。位偏移量。 p這樣,系統(tǒng)的整個(gè)存儲(chǔ)空間可分為這樣,系統(tǒng)的整個(gè)存儲(chǔ)空間可分為16個(gè)邏輯段。個(gè)邏輯段。 p 存儲(chǔ)器的每個(gè)段的容量為存儲(chǔ)器的每個(gè)段的容量為64KB,并允許在整個(gè)存,并允許在整個(gè)存 儲(chǔ)空間內(nèi)浮動(dòng),即段與段之間可以部分重疊、完全儲(chǔ)空間內(nèi)浮動(dòng),即段與段之間可以部分重疊、完全 重疊、連續(xù)排列,非常靈活。重疊、連續(xù)排列,非常靈活。 8086處理辦法器編程結(jié)構(gòu) 1.1.存儲(chǔ)器的分段及段地址存儲(chǔ)器的分段及段地址 8086處理辦法器編程結(jié)
37、構(gòu) n在8086中怎樣形成這20位的地址呢?分段! n將內(nèi)存的1M字節(jié)以64K為范圍,分成若干段;在 8086中設(shè)置4個(gè)段寄存器CS、DS、SS、ES, n在尋址一個(gè)具體的內(nèi)存單元(物理地址)時(shí),由 一個(gè)段寄存器中保存的16位基地址,加上由IP (或SP,或BP,或BX,或SI,或DI)中保存的、 可由CPU處理的16位偏移量,來形成20位的物理 地址。 n在形成物理地址時(shí),地址加法器將段寄存器中的 16位數(shù)左移4位,然后與16位偏移地址相加,形 成20位的物理地址。 8086處理辦法器編程結(jié)構(gòu) 2.2.與存儲(chǔ)單元地址相關(guān)的幾個(gè)概念與存儲(chǔ)單元地址相關(guān)的幾個(gè)概念 物理地址:物理地址: 一個(gè)存儲(chǔ)單
38、元的實(shí)際地址一個(gè)存儲(chǔ)單元的實(shí)際地址(20(20位位) )。物理地址與。物理地址與 存儲(chǔ)單元是一一對應(yīng)關(guān)系。存儲(chǔ)單元是一一對應(yīng)關(guān)系。(20202H)(20202H) 邏輯地址:邏輯地址: 是指段地址和偏移地址,是指令中引用的形式是指段地址和偏移地址,是指令中引用的形式 地址。一個(gè)邏輯地址只能對應(yīng)一個(gè)物理地址,而地址。一個(gè)邏輯地址只能對應(yīng)一個(gè)物理地址,而 一個(gè)物理地址可以對應(yīng)多個(gè)邏輯地址一個(gè)物理地址可以對應(yīng)多個(gè)邏輯地址。 n 2000:0200 20200 n 2010:0100 20200 8086處理辦法器編程結(jié)構(gòu) 段地址:段地址: 是指一個(gè)段的起始地址,最低是指一個(gè)段的起始地址,最低4 4位
39、為零,一位為零,一 般將其有效數(shù)字般將其有效數(shù)字1616位存放在段寄存器中位存放在段寄存器中 偏移地址:偏移地址: 段內(nèi)存儲(chǔ)單元相對段地址的距離段內(nèi)存儲(chǔ)單元相對段地址的距離(16(16位位) )。 同一個(gè)段內(nèi),各個(gè)存儲(chǔ)單元的段地址是相同一個(gè)段內(nèi),各個(gè)存儲(chǔ)單元的段地址是相 同的,偏移地址是不同的。同的,偏移地址是不同的。 2.2.與存儲(chǔ)單元地址相關(guān)的幾個(gè)概念與存儲(chǔ)單元地址相關(guān)的幾個(gè)概念 8086處理辦法器編程結(jié)構(gòu) 3.3.物理地址的計(jì)算方法物理地址的計(jì)算方法 物理地址物理地址= =段地址段地址+ +偏移地址偏移地址 = =段寄存器內(nèi)容段寄存器內(nèi)容16+16+偏移地址偏移地址 取指令物理地址取指令物理地址=(CS)=(CS)16+(IP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025特許經(jīng)營權(quán)轉(zhuǎn)讓合同范本
- 洛陽師范學(xué)院《中學(xué)地理教學(xué)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024實(shí)驗(yàn)室設(shè)備選購合同3篇
- 2024年城市核心區(qū)域房產(chǎn)交易定金合同范本2篇
- 2024專項(xiàng)工作合作合同
- 2024年度農(nóng)業(yè)智能化溫室建設(shè)與運(yùn)營管理合同3篇
- 城市廣場綠化養(yǎng)護(hù)承包合同
- 商業(yè)易主協(xié)議
- 電子產(chǎn)品生產(chǎn)線招投標(biāo)流程
- 廣告市場應(yīng)急照明施工協(xié)議
- GB/T 3871.6-1993農(nóng)業(yè)輪式和履帶拖拉機(jī)試驗(yàn)方法第6部分制動(dòng)試驗(yàn)
- GB/T 22844-2009配套床上用品
- GB/T 1962.2-2001注射器、注射針及其他醫(yī)療器械6%(魯爾)圓錐接頭第2部分:鎖定接頭
- GB/T 17646-2013小型風(fēng)力發(fā)電機(jī)組設(shè)計(jì)要求
- 中醫(yī)拔罐技術(shù)試題及答案
- 2023年蘇教版小學(xué)數(shù)學(xué)全套教材內(nèi)容安排表
- 滅火器驗(yàn)收表
- 裝修工程竣工驗(yàn)收報(bào)告(7篇)
- 商務(wù)溝通-課件
- ommaya囊的護(hù)理教學(xué)課件
- 俄羅斯教育課件
評論
0/150
提交評論