




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2.1 8086/80888086/8088的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)第第2 2章章 80X8680X86微處理器及其體系結(jié)構(gòu)微處理器及其體系結(jié)構(gòu) 微型計算機是由具有不同功能的一些部件組成的,微型計算機是由具有不同功能的一些部件組成的,包含運算器和控制器電路的大規(guī)模集成電路,稱為包含運算器和控制器電路的大規(guī)模集成電路,稱為“微微處理器處理器”,又稱,又稱“中央處理器(中央處理器(CPU)”,其職能是執(zhí),其職能是執(zhí)行算術(shù)行算術(shù)/邏輯運算,并負責(zé)控制整個計算機系統(tǒng),使之能邏輯運算,并負責(zé)控制整個計算機系統(tǒng),使之能自動協(xié)調(diào)地完成各種操作。自動協(xié)調(diào)地完成各種操作。 16位微處理器位微處理器8086/8088
2、的性能遠遠優(yōu)于的性能遠遠優(yōu)于8位機,不位機,不僅在運行速度、運算能力和尋址范圍等縱向能力有很大僅在運行速度、運算能力和尋址范圍等縱向能力有很大提高,還由于具有協(xié)處理器接口,橫向能力也大為提高。提高,還由于具有協(xié)處理器接口,橫向能力也大為提高。特別是特別是80286、80386、80486等更高性能的微處理器都等更高性能的微處理器都保持了對它的兼容。保持了對它的兼容。 8086/8088既有廣泛的應(yīng)用,也有既有廣泛的應(yīng)用,也有很好的承上啟下很好的承上啟下 作用。作用。 所以我們以所以我們以8086/8088為例作重點介紹。為例作重點介紹。2.1 8086/80882.1 8086/8088的內(nèi)部
3、結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)8086: Intel系列的系列的16位微處理器;位微處理器; 采用高速運算性能的采用高速運算性能的HMOS工藝制造,芯片上集成工藝制造,芯片上集成了了2.9萬只晶體管;萬只晶體管; 使用單一的使用單一的+5V電源,電源,40條引腳雙列直插式封裝;條引腳雙列直插式封裝; 時鐘頻率為時鐘頻率為5MHz10MHz; 16根數(shù)據(jù)線和根數(shù)據(jù)線和20根地址線,可尋址的地址空間達根地址線,可尋址的地址空間達1MB; 8086可以和浮點運算器、可以和浮點運算器、I/O處理器或其他處理器處理器或其他處理器組成多處理器系統(tǒng),從而極大地提高了系統(tǒng)的數(shù)據(jù)組成多處理器系統(tǒng),從而極大地提高了系統(tǒng)的數(shù)據(jù)吞吐
4、能力和數(shù)據(jù)處理能力。吞吐能力和數(shù)據(jù)處理能力。 8088:內(nèi)部與:內(nèi)部與8086兼容,也是一個兼容,也是一個16位微處理器,只位微處理器,只是外部數(shù)據(jù)總線為是外部數(shù)據(jù)總線為8位,所以稱為準位,所以稱為準16位微處理器。位微處理器。它具有包括乘法和除法的它具有包括乘法和除法的1616位運算指令,所以能處位運算指令,所以能處理理1616位數(shù)據(jù),還能處理位數(shù)據(jù),還能處理8 8位數(shù)據(jù)。位數(shù)據(jù)。80888088有有2020根地址根地址線,所以可尋址的地址空間達線,所以可尋址的地址空間達2 22020即即1M1M字節(jié)。字節(jié)。AH ALBH BLCH CLDH DL SP BP DI SI通通用用寄寄存存器器
5、暫存寄存器暫存寄存器ALU執(zhí)行部分執(zhí)行部分控制電路控制電路1 2 3 4 5 6 CS DS SS ES IP內(nèi)部寄存內(nèi)部寄存器器I/O控制控制電路電路地址加地址加法器法器20位位16位位8位位指令隊列緩沖器指令隊列緩沖器外外部部總總線線執(zhí)行部件執(zhí)行部件EU總線接口部件總線接口部件BIU8086CPU結(jié)構(gòu)圖結(jié)構(gòu)圖16位位ALU數(shù)數(shù)據(jù)總線據(jù)總線AXBXCXDX標志寄存器標志寄存器 1 2 3 4AH ALBH BLCH CLDH DL SP BP DI SI通通用用寄寄存存器器暫存寄存器暫存寄存器ALU標志寄存器標志寄存器執(zhí)行部分執(zhí)行部分控制電路控制電路 CS DS SS ES IP內(nèi)部寄存內(nèi)部
6、寄存器器I/O控制控制電路電路地址加地址加法器法器20位位8位位8位位指令隊列緩沖器指令隊列緩沖器外外部部總總線線執(zhí)行部件執(zhí)行部件EU總線接口部件總線接口部件BIU8088CPU結(jié)構(gòu)圖結(jié)構(gòu)圖16位位ALU數(shù)數(shù)據(jù)總線據(jù)總線AXBXCXDX8086/8088 的內(nèi)部結(jié)構(gòu)從功能上分成兩個單元的內(nèi)部結(jié)構(gòu)從功能上分成兩個單元1)執(zhí)行部件)執(zhí)行部件EU 負責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運算負責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運算2)總線接口部件)總線接口部件BIU 管理管理8086/8088與系統(tǒng)總線的接口與系統(tǒng)總線的接口 負責(zé)負責(zé)CPU對存儲器和外設(shè)進行訪問對存儲器和外設(shè)進行訪問2.1.1 執(zhí)行部件執(zhí)行部件EU功能
7、:功能:EU不與外部系統(tǒng)總線相連,只負責(zé)指令的譯碼和執(zhí)行。不與外部系統(tǒng)總線相連,只負責(zé)指令的譯碼和執(zhí)行。(1)從指令隊列中取出指令。)從指令隊列中取出指令。(2)對指令進行譯碼,執(zhí)行指令所規(guī)定的全部功能。)對指令進行譯碼,執(zhí)行指令所規(guī)定的全部功能。(3)執(zhí)行指令所得結(jié)果或執(zhí)行指令所需的數(shù)據(jù),都由)執(zhí)行指令所得結(jié)果或執(zhí)行指令所需的數(shù)據(jù),都由EU向向BIU發(fā)出命令,讓發(fā)出命令,讓BIU對存儲器或?qū)Υ鎯ζ骰騃/O接口進行讀接口進行讀/寫操作。寫操作。執(zhí)行部件的組成:執(zhí)行部件的組成:EU由算術(shù)由算術(shù)/邏輯運算器邏輯運算器ALU,寄存器,寄存器陣列,陣列,EU控制器組成??刂破鹘M成。(1)算術(shù)邏輯單元)
8、算術(shù)邏輯單元ALU 完成完成8位或者位或者16位二進制算術(shù)和邏輯運算,計算偏移量。位二進制算術(shù)和邏輯運算,計算偏移量。(2)寄存器陣列)寄存器陣列(3)執(zhí)行部件的控制電路)執(zhí)行部件的控制電路從總線接口的指令隊列取出指令操作碼,通過譯碼電從總線接口的指令隊列取出指令操作碼,通過譯碼電路分析,發(fā)出相應(yīng)的控制命令,控制路分析,發(fā)出相應(yīng)的控制命令,控制ALU數(shù)據(jù)流向。數(shù)據(jù)流向。2.1.2 總線接口部件總線接口部件BIU功能:與外部總線相連,負責(zé)與存儲器或者功能:與外部總線相連,負責(zé)與存儲器或者I/O端口端口傳送信息。根據(jù)執(zhí)行部件傳送信息。根據(jù)執(zhí)行部件EU的請求,管理預(yù)取指令的請求,管理預(yù)取指令和存數(shù)、
9、取數(shù)的實際過程。和存數(shù)、取數(shù)的實際過程。組成:組成:(1)指令隊列()指令隊列(8086六字節(jié),六字節(jié),8088四字節(jié))四字節(jié))在執(zhí)行指令的同時,將取下一條指令,并放入指令隊在執(zhí)行指令的同時,將取下一條指令,并放入指令隊列中。列中。CPU執(zhí)行完一條指令后,可以接著執(zhí)行下一條執(zhí)行完一條指令后,可以接著執(zhí)行下一條指令(流水線技術(shù))。提高指令(流水線技術(shù))。提高CPU效率。效率。(2)地址加法器)地址加法器(3)寄存器陣列)寄存器陣列(4)總線控制邏輯()總線控制邏輯(I/O控制電路)控制電路)等待取指等待取指1 執(zhí)行執(zhí)行1等待取指等待取指2 執(zhí)行執(zhí)行2等待取指等待取指3 執(zhí)行執(zhí)行3MPU總總線線忙
10、忙閑閑忙忙閑閑忙忙閑閑傳統(tǒng)微處理器的指令執(zhí)行過程傳統(tǒng)微處理器的指令執(zhí)行過程 取指取指1取指取指2取指取指3取指取指4取指取指5取指取指6EU總線總線執(zhí)行執(zhí)行1執(zhí)行執(zhí)行2執(zhí)行執(zhí)行3執(zhí)行執(zhí)行4執(zhí)行執(zhí)行5執(zhí)行執(zhí)行6忙忙忙忙忙忙忙忙忙忙忙忙BIU8086CPU的指令執(zhí)行過程的指令執(zhí)行過程 2.1.3 8088/8086的寄存器結(jié)構(gòu)的寄存器結(jié)構(gòu) 寄存器是微處理器(寄存器是微處理器(CPUCPU)內(nèi)部暫存數(shù)據(jù)的存儲單)內(nèi)部暫存數(shù)據(jù)的存儲單元。元。 8088/8086的寄存器組有的寄存器組有 8個通用寄存器個通用寄存器 4個段寄存器個段寄存器 1個標志寄存器個標志寄存器 1個指令指針寄存器個指令指針寄存器它
11、們均為它們均為1616位位! !圖示圖示 匯編語言程序員看到的處理器,就是寄存器匯編語言程序員看到的處理器,就是寄存器 所以,一定要熟悉這些寄存器的名稱和作用所以,一定要熟悉這些寄存器的名稱和作用 這這個個16位寄存器,按其用途可分為位寄存器,按其用途可分為3類:通用寄存器、類:通用寄存器、段寄存器、控制寄存器。段寄存器、控制寄存器。 累加器累加器AHALBHBLCLDHDLCHSPSIDIIPFLAGSCSDSSSESBP基址寄存器基址寄存器計數(shù)寄存器計數(shù)寄存器數(shù)據(jù)寄存器數(shù)據(jù)寄存器堆棧指針寄存器堆棧指針寄存器基址指針寄存器基址指針寄存器源變址寄存器源變址寄存器目的變址寄存器目的變址寄存器指令
12、指針寄存器指令指針寄存器標志寄存器標志寄存器代碼段寄存器代碼段寄存器段寄存器段寄存器附加段寄存器附加段寄存器堆棧段寄存器堆棧段寄存器數(shù)據(jù)寄存器數(shù)據(jù)寄存器地址指針和地址指針和變址寄存器變址寄存器控制寄存器控制寄存器通用寄存器通用寄存器數(shù)據(jù)段寄存器數(shù)據(jù)段寄存器8086CPU內(nèi)部寄存器結(jié)構(gòu)內(nèi)部寄存器結(jié)構(gòu) 2.1.3.1 通用寄存器通用寄存器8088有有8個通用的個通用的16位寄存器位寄存器(1)數(shù)據(jù)寄存器)數(shù)據(jù)寄存器: AX BX CX DX(2)變址寄存器)變址寄存器: SI DI(3)指針寄存器)指針寄存器: BP SP4個數(shù)據(jù)寄存器還可以分成高個數(shù)據(jù)寄存器還可以分成高8位和低位和低8位兩位兩個
13、獨立的寄存器,這樣又形成個獨立的寄存器,這樣又形成8個通用的個通用的8位寄存器位寄存器AX: AH ALBX: BH BLCX: CH CLDX: DH DL(1)數(shù)據(jù)寄存器)數(shù)據(jù)寄存器AX稱為稱為累加器累加器(Accumulator)使用頻度最高。用于算術(shù)、邏輯運算以及與外設(shè)傳送信使用頻度最高。用于算術(shù)、邏輯運算以及與外設(shè)傳送信息等息等BX稱為稱為基址寄存器基址寄存器(Base address Register)常用做存放存儲器地址常用做存放存儲器地址CX稱為稱為計數(shù)器計數(shù)器(Counter)作為循環(huán)和串操作等指令中的隱含計數(shù)器作為循環(huán)和串操作等指令中的隱含計數(shù)器DX稱為稱為數(shù)據(jù)寄存器數(shù)據(jù)寄
14、存器(Data register)常用來存放雙字長數(shù)據(jù)的高常用來存放雙字長數(shù)據(jù)的高16位,或存放外設(shè)端口地址位,或存放外設(shè)端口地址(2)變址寄存器)變址寄存器16位變址寄存器位變址寄存器SI和和DI常用于存儲器變址尋址方式時提供地址常用于存儲器變址尋址方式時提供地址SI是源地址寄存器(是源地址寄存器(Source Index)DI是目的地址寄存器(是目的地址寄存器(Destination Index)在串操作類指令中,在串操作類指令中,SI、DI還有較特殊的還有較特殊的用法用法(3)指針寄存器)指針寄存器指針寄存器用于尋址內(nèi)存指針寄存器用于尋址內(nèi)存堆棧堆棧內(nèi)的數(shù)據(jù)內(nèi)的數(shù)據(jù)SPSP為堆棧指針寄存
15、器(為堆棧指針寄存器(Stack Pointer), ,指示指示堆棧段棧頂?shù)奈恢茫ㄆ频刂罚┒褩6螚m數(shù)奈恢茫ㄆ频刂罚〣PBP為基址指針寄存器(為基址指針寄存器(Base Pointer),表示),表示數(shù)據(jù)在堆棧段中的基地址數(shù)據(jù)在堆棧段中的基地址SPSP和和BPBP寄存器與寄存器與SSSS段寄存器聯(lián)合使用以確段寄存器聯(lián)合使用以確定堆棧段中的存儲單元地址定堆棧段中的存儲單元地址堆棧堆棧(Stack)(1)堆棧的概念)堆棧的概念 堆棧是堆棧是主存中一個特殊的區(qū)域,用主存中一個特殊的區(qū)域,用8088/8086形成的微機系統(tǒng)形成的微機系統(tǒng)中,堆棧區(qū)域被稱為堆棧段。中,堆棧區(qū)域被稱為堆棧段。這片存儲區(qū)
16、的一端固定,另一這片存儲區(qū)的一端固定,另一端活動,且只允許數(shù)據(jù)從活動端進出。采用端活動,且只允許數(shù)據(jù)從活動端進出。采用“先進后出先進后出”的的規(guī)則規(guī)則 ,而不是隨機存取方式。而不是隨機存取方式。堆棧主要用于暫存數(shù)據(jù)和在過堆棧主要用于暫存數(shù)據(jù)和在過程調(diào)用或處理中斷時暫存斷點信息。程調(diào)用或處理中斷時暫存斷點信息。 2.1.3.2 指令指針寄存器指令指針寄存器IP(Instruction Pointer)為指令指針寄存)為指令指針寄存器,指示主存儲器指令的位置器,指示主存儲器指令的位置隨著指令的執(zhí)行,隨著指令的執(zhí)行,IP將自動修改以指示下將自動修改以指示下一條指令所在的存儲器位置一條指令所在的存儲器
17、位置IP寄存器是一個寄存器是一個專用專用寄存器寄存器IPIP寄存器與寄存器與CSCS段寄存器聯(lián)合使用以確定下段寄存器聯(lián)合使用以確定下一條指令的存儲單元地址一條指令的存儲單元地址2.1.3.3 標志寄存器標志寄存器標志標志(Flag)用于反映指令執(zhí)行結(jié)果)用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式或控制指令執(zhí)行形式8088處理器的各種標志形成了一個處理器的各種標志形成了一個16位的標志寄存器位的標志寄存器FLAGS(程序狀態(tài)字(程序狀態(tài)字PSW寄存器寄存器) 程序設(shè)計需要利用標志的狀態(tài)程序設(shè)計需要利用標志的狀態(tài)標志寄存器的分類:標志寄存器的分類:狀態(tài)標志狀態(tài)標志用來記錄程序運行結(jié)果的狀態(tài)用來記錄程序
18、運行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它CF ZF SF PF OF AF控制標志控制標志可由程序根據(jù)需要用指令設(shè)置,可由程序根據(jù)需要用指令設(shè)置,用于控制處理器執(zhí)行指令的方式用于控制處理器執(zhí)行指令的方式DF IF TFOF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0(6)標志寄存器)標志寄存器16位寄存器,其中有位寄存器,其中有7位未用。位未用。D15D0 OF DF IF TF SF ZF AF PF CF進進借借位位標標志志奇奇偶偶標標志志半半進進借借位位標標志志零零標標志志符符號號標標志志單單步步中中斷斷中中斷斷允允
19、許許方方向向標標志志溢溢出出標標志志1-有進、借位有進、借位0-無進、借位無進、借位1-低低8位有偶數(shù)個位有偶數(shù)個10-低低8位有奇數(shù)個位有奇數(shù)個11-低低4位向高位向高4位有進、借位位有進、借位0-低低4位向高位向高4位無進、借位位無進、借位1-結(jié)果為結(jié)果為00-結(jié)果不為結(jié)果不為0(1)進位標志)進位標志CF(Carry Flag)當(dāng)運算結(jié)果的最高有效位有進位(加法)或借當(dāng)運算結(jié)果的最高有效位有進位(加法)或借位(減法)時,進位標志置位(減法)時,進位標志置1,即,即CF1; 否則否則CF03AH + 7CHB6H,沒有進位:,沒有進位:CF = 0AAH + 7CH(1)26H,有進位:,
20、有進位:CF = 1(2)零標志)零標志ZF(Zero Flag)若運算結(jié)果為若運算結(jié)果為0,則,則ZF1;否則否則ZF03AH7CHB6H,結(jié)果不是零:,結(jié)果不是零:ZF084H7CH(1)00H,結(jié)果是零:,結(jié)果是零:ZF1 注意:注意:ZF為為1表示的結(jié)果是表示的結(jié)果是0(3)符號標志)符號標志SF(Sign Flag)運算結(jié)果最高位為運算結(jié)果最高位為1,則,則SF1; 否則否則SF03AH7CHB6H,最高位,最高位D71:SF184H7CH(1)00H,最高位,最高位D70:SF0 有符號數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號有符號數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號所以,最高有效位就是符號標志的
21、狀態(tài)所以,最高有效位就是符號標志的狀態(tài)(4)奇偶標志)奇偶標志PF(Parity Flag)當(dāng)運算結(jié)果最低字節(jié)中當(dāng)運算結(jié)果最低字節(jié)中“1”的個數(shù)為的個數(shù)為零或偶數(shù)時,零或偶數(shù)時,PF1;否則;否則PF03AH7CHB6H10110110B結(jié)果中有結(jié)果中有5個個“1”,是奇數(shù):是奇數(shù):PF0 PF標志僅反映最低標志僅反映最低8位中位中“1”的個數(shù)是的個數(shù)是偶或奇,即使是進行偶或奇,即使是進行16位字操作位字操作(5)溢出標志)溢出標志OF(Overflow Flag)若算術(shù)運算的結(jié)果有溢出,則若算術(shù)運算的結(jié)果有溢出,則OF1; 否則否則 OF03AH + 7CHB6H,產(chǎn)生溢出:,產(chǎn)生溢出:OF
22、1AAH + 7CH(1)26H,沒有溢出:,沒有溢出:OF0什么是溢出什么是溢出處理器內(nèi)部以補碼表示有符號數(shù)處理器內(nèi)部以補碼表示有符號數(shù)8位表達的整數(shù)范圍是:位表達的整數(shù)范圍是:127 12816位表達的范圍是:位表達的范圍是:32767 32768如果運算結(jié)果超出這個范圍,就產(chǎn)生了溢出如果運算結(jié)果超出這個范圍,就產(chǎn)生了溢出有溢出,說明有符號數(shù)的運算結(jié)果不正確有溢出,說明有符號數(shù)的運算結(jié)果不正確3AH7CHB6H,就是,就是58124182,已經(jīng)超出已經(jīng)超出128127范圍,產(chǎn)生溢出,故范圍,產(chǎn)生溢出,故OF1;補碼補碼B6H表達真值是表達真值是74,顯然運算結(jié)果也不正確,顯然運算結(jié)果也不正
23、確 B6H10110110B,最高位為,最高位為1,作為有符號數(shù)是負數(shù)作為有符號數(shù)是負數(shù) 對對B6H求反加求反加1等于:等于:01001001B101001010B4AH74 所以,所以,B6H表達有符號數(shù)的真值為表達有符號數(shù)的真值為74溢出和進位的區(qū)別溢出和進位的區(qū)別溢出標志溢出標志OF和進位標志和進位標志CF是兩個意義是兩個意義不同的標志不同的標志進位標志表示無符號數(shù)運算結(jié)果是否進位標志表示無符號數(shù)運算結(jié)果是否超出范圍,運算結(jié)果仍然正確超出范圍,運算結(jié)果仍然正確溢出標志表示有符號數(shù)運算結(jié)果是否溢出標志表示有符號數(shù)運算結(jié)果是否超出范圍,運算結(jié)果已經(jīng)不正確超出范圍,運算結(jié)果已經(jīng)不正確(6)輔助
24、進位標志)輔助進位標志AF(Auxiliary Carry Flag)3AH7CHB6H,D3有進位:有進位:AF1運算時運算時D D3 3位(低半字節(jié))有進位或位(低半字節(jié))有進位或借位時,借位時,AFAF1 1;否則;否則AFAF0 0這個標志主要由處理器內(nèi)部使用,這個標志主要由處理器內(nèi)部使用,用于十進制算術(shù)運算調(diào)整指令中,用于十進制算術(shù)運算調(diào)整指令中,用戶一般不必關(guān)心用戶一般不必關(guān)心(7)方向標志)方向標志DF(Direction Flag)用于串操作指令中,控制地址的變化方向:用于串操作指令中,控制地址的變化方向:設(shè)置設(shè)置DF0,存儲器地址自動增加;,存儲器地址自動增加;設(shè)置設(shè)置DF1
25、,存儲器地址自動減少,存儲器地址自動減少CLDCLD指令復(fù)位方向標志:指令復(fù)位方向標志:DFDF0 0STDSTD指令置位方向標志:指令置位方向標志:DFDF1 1(8)中斷允許標志)中斷允許標志IF(Interrupt-enable Flag)控制可屏蔽中斷是否可以被處理器響應(yīng):控制可屏蔽中斷是否可以被處理器響應(yīng):設(shè)置設(shè)置IF1,則允許中斷;,則允許中斷;設(shè)置設(shè)置IF0,則禁止中斷,則禁止中斷CLICLI指令復(fù)位中斷標志:指令復(fù)位中斷標志:IFIF0 0STISTI指令置位中斷標志:指令置位中斷標志:IFIF1 1(9)陷阱標志)陷阱標志TF(Trap Flag)用于控制處理器進入單步操作方
26、式:用于控制處理器進入單步操作方式:設(shè)置設(shè)置TF0,處理器正常工作;,處理器正常工作;設(shè)置設(shè)置TF1,處理器,處理器單步執(zhí)行指令單步執(zhí)行指令單步執(zhí)行指令單步執(zhí)行指令處理器在處理器在每條指令執(zhí)行結(jié)每條指令執(zhí)行結(jié)束束時,便產(chǎn)生一個編號為時,便產(chǎn)生一個編號為1 1的內(nèi)部中斷的內(nèi)部中斷這種內(nèi)部中斷稱為這種內(nèi)部中斷稱為單步中斷單步中斷所以所以TFTF也稱為也稱為單步標志單步標志n利用單步中斷可對程序進行逐條指令的調(diào)試利用單步中斷可對程序進行逐條指令的調(diào)試n這種逐條指令調(diào)試程序的方法就是這種逐條指令調(diào)試程序的方法就是單步調(diào)試單步調(diào)試2.1.3.4 段寄存器段寄存器存儲單元及其存儲內(nèi)容存儲單元及其存儲內(nèi)容每
27、個存儲單元都有一個編號;每個存儲單元都有一個編號;被稱為被稱為存儲器地址存儲器地址每個存儲單元存放一個字節(jié)的每個存儲單元存放一個字節(jié)的內(nèi)容內(nèi)容00002H00002H單元存放有一個數(shù)據(jù)單元存放有一個數(shù)據(jù)34H34H表達為表達為00002H00002H34H34HD7 D000006H78H00005H56H00004H12H00003H34H00002H00001H00000H存儲器的分段管理存儲器的分段管理8088CPU8088CPU有有2020條地址線條地址線最大可尋址空間為最大可尋址空間為2 220201MB1MB物理地址范圍從物理地址范圍從00000H00000HFFFFFHFFFFF
28、H但是但是CPUCPU內(nèi)部寄存器和數(shù)據(jù)總線都是內(nèi)部寄存器和數(shù)據(jù)總線都是1616位,怎位,怎么輸出一個么輸出一個2020位的地址信息呢?位的地址信息呢?8 0 8 8 C P U8 0 8 8 C P U 將將 1 M B1 M B 空 間 分 成 許 多空 間 分 成 許 多 邏 輯 段邏 輯 段(SegmentSegment)段不能起始于任意地址,段地址的低段不能起始于任意地址,段地址的低4 4位為位為0000B0000B每一段每一段最大限制最大限制可尋址可尋址216(64K)字節(jié))字節(jié)在在1M1M字節(jié)的地址空間里,共有字節(jié)的地址空間里,共有64K64K個小段首地址:個小段首地址: 0000
29、0H00000H 00010H 00010H 41230H 41230H 41240H 41240H FFFE0H FFFE0H FFFFFH FFFFFH 存儲器分段存儲器分段 00000H 圖圖3-10 存儲器分段示意圖存儲器分段示意圖 邏輯段邏輯段1 起點起點 邏輯段邏輯段2 起點起點 邏輯段邏輯段3 起點起點 邏輯段邏輯段4 起點起點 FFFFFH 邏輯段邏輯段1 64KB 邏輯段邏輯段2 64KB 邏輯段邏輯段3 64KB 邏輯段邏輯段4 64KB 物理地址和邏輯地址物理地址和邏輯地址存儲器中的每個存儲單元都可以用兩個形式的存儲器中的每個存儲單元都可以用兩個形式的地址來表示實際地址(
30、或稱物理地址)和邏輯地地址來表示實際地址(或稱物理地址)和邏輯地址。址。8088CPU存儲系統(tǒng)中,對應(yīng)每個物理存儲單存儲系統(tǒng)中,對應(yīng)每個物理存儲單元都有一個唯一的元都有一個唯一的20位編號,就是物理地址,從位編號,就是物理地址,從00000H FFFFFH,規(guī)定了規(guī)定了1M字節(jié)存儲體中某字節(jié)存儲體中某個具體單元的地址個具體單元的地址 。邏輯地址形式為邏輯地址形式為段基地址段基地址 : : 段內(nèi)偏移地址段內(nèi)偏移地址分隔符分隔符邏輯地址邏輯地址段基地址段基地址說明邏輯段在主存中的起始位置說明邏輯段在主存中的起始位置8088規(guī)定段地址必須是:規(guī)定段地址必須是:xxxx0H省略低省略低4位位0000B
31、,段地址就可以用,段地址就可以用16位數(shù)位數(shù)據(jù)表示,即能用據(jù)表示,即能用16位位段寄存器段寄存器表達段地址表達段地址偏移地址偏移地址說明主存單元距離段起始位置的說明主存單元距離段起始位置的偏移量偏移量每段不超過每段不超過64KB,偏移地址也可用,偏移地址也可用16位位數(shù)數(shù)據(jù)表示據(jù)表示物理地址的形成:物理地址有兩部分組成,段基址和偏物理地址的形成:物理地址有兩部分組成,段基址和偏移地址。移地址。 8086/8088CPU中有一個地址加法器,它將段寄存器提中有一個地址加法器,它將段寄存器提供的段地址自動乘以供的段地址自動乘以10H(16)即左移)即左移4位,然后與位,然后與16位的偏移地址相加,并
32、鎖存在物理地址鎖存器中。位的偏移地址相加,并鎖存在物理地址鎖存器中。物理地址物理地址=段基址段基址 * 16 +偏移地址。偏移地址。存放段基址的寄存器:存放段基址的寄存器:CS、DS、ES、SS。存放偏移地址的寄存器:存放偏移地址的寄存器:IP、DI、SI、BP、SP等。等。+物理地址的形成物理地址的形成段寄存器值段寄存器值偏移量偏移量物理地址物理地址16位位4位位16位位20位位存儲器物理地址的計算方法存儲器物理地址的計算方法一個物理地址可以有多個邏輯地址一個物理地址可以有多個邏輯地址邏輯地址邏輯地址 1460:1001460:100、1380:F001380:F00物理地址物理地址 147
33、00H 14700H14700H 14700H14600H14600H 100H100H14700H14700H13800H13800H F00HF00H14700H14700H段地址左移段地址左移4 4位位加上偏移地址加上偏移地址得到物理地址得到物理地址段寄存器段寄存器 8086CPU中有四段寄存器:中有四段寄存器:CS,DS,SS和和ES,這四個,這四個段寄存器存放了段寄存器存放了CPU當(dāng)前可以尋址的四個段的基址,當(dāng)前可以尋址的四個段的基址,也即可以從這四個段寄存器規(guī)定的邏輯段中存取指令也即可以從這四個段寄存器規(guī)定的邏輯段中存取指令代碼和數(shù)據(jù)。一旦這四個段寄存器的內(nèi)容被設(shè)定,就代碼和數(shù)據(jù)。一旦這四個段寄存器的內(nèi)容被設(shè)定,就規(guī)定了規(guī)定了CPU當(dāng)前可尋址的段。當(dāng)前可尋址的段。 8088有有4個個16位段寄存器位段寄存器CS(代碼段)指明(代碼段)指明代碼段代碼段的起始地址的起始地址SS(堆棧段)指明(堆棧段)指明堆棧段堆棧段的起始地址的起始地址DS(數(shù)據(jù)段)指明(數(shù)據(jù)段)指明數(shù)據(jù)段數(shù)據(jù)段的起始地址的起始地址ES(附加段)指明(附加段)指明附加段附加段的起始地址的起
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出租車公司分成合同樣本
- 虛擬護理助手應(yīng)用研究-全面剖析
- 出租自用相機合同標準文本
- 住戶護欄維修合同樣本
- 世界銀行采購合同標準文本
- 公路工程工地施工合同樣本
- 兼職 合同樣本
- 冰棒購銷合同樣本
- 中標后所需合同標準文本
- 二手產(chǎn)品代售合同范例
- 居家托養(yǎng)合同范本
- 血透導(dǎo)管滑脫應(yīng)急預(yù)案
- 浙江省杭州市學(xué)軍小學(xué)數(shù)學(xué)六年級小升初期末復(fù)習(xí)試卷(含答案)
- 【年加工500噸鮑魚的綜合加工生產(chǎn)工藝設(shè)計10000字(論文)】
- JBT 7387-2014 工業(yè)過程控制系統(tǒng)用電動控制閥
- 湖南省長沙市瀏陽市2023-2024學(xué)年七年級下學(xué)期期中數(shù)學(xué)試題(含解析)
- 家宴主題宴會設(shè)計說明
- 北京市海淀區(qū)2024年七年級下學(xué)期語文期中試卷(附答案)
- 2022版義務(wù)教育(信息科技)課程標準(附課標解讀)
- 【真題】2023年南京市中考語文試卷(含答案解析)
- 東軟集團能力測試題答案
評論
0/150
提交評論