微機(jī)原理第02章_第1頁
微機(jī)原理第02章_第2頁
微機(jī)原理第02章_第3頁
微機(jī)原理第02章_第4頁
微機(jī)原理第02章_第5頁
已閱讀5頁,還剩61頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第2章章 微處理器微處理器8088的引腳圖的引腳圖12345678910111213141516171819204039383736353433323130292827262524232221 GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GNDVCCAD15AD16 / S3AD17 / S4AD18 / S5AD19 / S6SS0* (HIGH)MN / MX*RD*HOLD (RQ)*/ GT0*)HLDA (RQ1* /GT1*)WR* (LOCK*)M / IO ( S2* )

2、DT / R* ( S1* )DEN ( S0 )ALEINTATEST*READYRESET80888088的指令執(zhí)行過程的指令執(zhí)行過程8086/8088微處理器微處理器8086:Intel系列的系列的16位微處理器位微處理器 16條數(shù)據(jù)線條數(shù)據(jù)線 20條地址線,可尋址的地址范圍條地址線,可尋址的地址范圍220=1MB, 工作時(shí),需要一個(gè)工作時(shí),需要一個(gè) 5V 5V 電源和一個(gè)頻率為電源和一個(gè)頻率為5MHz5MHz時(shí)鐘時(shí)鐘。8088:內(nèi)部與內(nèi)部與8086兼容,也是一個(gè)兼容,也是一個(gè)16位微處理器,位微處理器,具有包括乘具有包括乘法和除法的法和除法的1616位運(yùn)算指令,所以能處理位運(yùn)算指令,所

3、以能處理1616位數(shù)據(jù)。位數(shù)據(jù)。 外部數(shù)據(jù)總線為外部數(shù)據(jù)總線為8位,所以稱為準(zhǔn)位,所以稱為準(zhǔn)16位微處理器。位微處理器。 2020條地址線,所以可尋址的地址空間為條地址線,所以可尋址的地址空間為1M1M字節(jié)。字節(jié)。 第第2章:章:2.1 微處理器的內(nèi)部結(jié)構(gòu)微處理器的內(nèi)部結(jié)構(gòu)1.算術(shù)邏輯單元(運(yùn)算器)算術(shù)邏輯單元(運(yùn)算器)2.寄存器組寄存器組3.指令處理單元(控制器)指令處理單元(控制器)第第2章章: 2.1.2 8088/8086的功能結(jié)構(gòu)的功能結(jié)構(gòu)8088的的內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)從功能上分成兩個(gè)單元從功能上分成兩個(gè)單元1. 總線接口單元總線接口單元BIU負(fù)責(zé)負(fù)責(zé)CPU對存儲器和外設(shè)進(jìn)行訪問對存儲

4、器和外設(shè)進(jìn)行訪問2. 執(zhí)行單元執(zhí)行單元EU負(fù)責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運(yùn)算負(fù)責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運(yùn)算兩個(gè)單元相互獨(dú)立,分別完成各自操作,兩個(gè)單元相互獨(dú)立,分別完成各自操作,還可以還可以并行執(zhí)行并行執(zhí)行,實(shí)現(xiàn)指令預(yù)?。?,實(shí)現(xiàn)指令預(yù)?。ㄖ噶钭x取指令讀取和執(zhí)行的流水線操作和執(zhí)行的流水線操作)1、總線接口單元(、總線接口單元(BIU)功能:功能: A . 取指令取指令送到指令隊(duì)列緩沖器。送到指令隊(duì)列緩沖器。 B. CPU執(zhí)行指令時(shí),到指定的地址執(zhí)行指令時(shí),到指定的地址取操作數(shù)取操作數(shù),并將其,并將其送至要求的地址單元送至要求的地址單元中。中??偩€接口單元的組成:總線接口單元的組成:(1)四個(gè)段地

5、址寄存器)四個(gè)段地址寄存器 CS,16位代碼段寄存器位代碼段寄存器 DS,16位數(shù)據(jù)段寄存器位數(shù)據(jù)段寄存器 ES,16位附加段寄存器位附加段寄存器 SS,16位堆棧段寄存器位堆棧段寄存器(2)16位指令指針寄存器位指令指針寄存器IP(PC)(3)20位的地址加法器位的地址加法器(4)六字節(jié)的指令隊(duì)列緩沖器)六字節(jié)的指令隊(duì)列緩沖器說明:說明:(1)指令隊(duì)列緩沖器:)指令隊(duì)列緩沖器:在在EU執(zhí)行指令的同時(shí),將取下一執(zhí)行指令的同時(shí),將取下一條或下幾條指令,放入指令隊(duì)列緩沖器中。條或下幾條指令,放入指令隊(duì)列緩沖器中。CPU執(zhí)行完一執(zhí)行完一條指令后,可以立即譯碼執(zhí)行下一條指令(流水線技術(shù))條指令后,可以

6、立即譯碼執(zhí)行下一條指令(流水線技術(shù)), 提高提高CPU效率。效率。(2)地址加法器:)地址加法器:產(chǎn)生產(chǎn)生20位地址。位地址。CPU內(nèi)無論是段地址內(nèi)無論是段地址寄存器還是偏移量都是寄存器還是偏移量都是16位的,通過地址加法器產(chǎn)生位的,通過地址加法器產(chǎn)生20位位地址。地址。等待取指1 執(zhí)行1等待取指2 執(zhí)行2等待取指3 執(zhí)行3MPU總線忙閑忙閑忙閑傳統(tǒng)微處理器的指令執(zhí)行過程傳統(tǒng)微處理器的指令執(zhí)行過程 取指1取指2取指3取指4取指5取指6EU總線執(zhí)行1執(zhí)行2執(zhí)行3執(zhí)行4執(zhí)行5執(zhí)行6忙忙忙忙忙忙BIU8086CPU的指令執(zhí)行過程的指令執(zhí)行過程 2、執(zhí)行部件(、執(zhí)行部件(EU)作用:指令的執(zhí)行。作用:

7、指令的執(zhí)行。(1)從指令隊(duì)列中取出指令。)從指令隊(duì)列中取出指令。(2)對指令進(jìn)行譯碼,發(fā)出相應(yīng)相應(yīng)的控制信號。)對指令進(jìn)行譯碼,發(fā)出相應(yīng)相應(yīng)的控制信號。(3)接收由總線接口送來的數(shù)據(jù)或發(fā)送數(shù)據(jù)至接口。)接收由總線接口送來的數(shù)據(jù)或發(fā)送數(shù)據(jù)至接口。(4)進(jìn)行算術(shù)運(yùn)算。)進(jìn)行算術(shù)運(yùn)算。執(zhí)行部件的組成:執(zhí)行部件的組成:(1)四個(gè)通用寄存器)四個(gè)通用寄存器AX、BX、CX、DX 四個(gè)通用寄存器都是四個(gè)通用寄存器都是16位或作兩個(gè)位或作兩個(gè)8位來使用。位來使用。(2)四個(gè)四個(gè)專用寄存器(專用寄存器(16位)位) SP堆棧指針寄存器堆棧指針寄存器 BP基址指針寄存器基址指針寄存器 DI 目的變址寄存器目的變

8、址寄存器 SI 源變址寄存器源變址寄存器(3)算術(shù)邏輯單元)算術(shù)邏輯單元ALU 完成完成8位或者位或者16位二進(jìn)制算術(shù)和邏輯運(yùn)算,計(jì)算偏移量。位二進(jìn)制算術(shù)和邏輯運(yùn)算,計(jì)算偏移量。(4)數(shù)據(jù)暫存寄存器)數(shù)據(jù)暫存寄存器協(xié)助協(xié)助ALU完成運(yùn)算,暫存參加運(yùn)算的數(shù)據(jù)。完成運(yùn)算,暫存參加運(yùn)算的數(shù)據(jù)。(5)執(zhí)行部件的控制電路)執(zhí)行部件的控制電路從總線接口的指令隊(duì)列取出指令操作碼,通過譯碼電路分析,發(fā)出從總線接口的指令隊(duì)列取出指令操作碼,通過譯碼電路分析,發(fā)出相應(yīng)的控制命令,控制相應(yīng)的控制命令,控制ALU數(shù)據(jù)流向。數(shù)據(jù)流向。D15D0 OF DF IF TF SF ZF AF PF CF進(jìn)進(jìn)借借位位標(biāo)標(biāo)志志奇

9、奇偶偶標(biāo)標(biāo)志志半半進(jìn)進(jìn)借借位位標(biāo)標(biāo)志志零零標(biāo)標(biāo)志志符符號號標(biāo)標(biāo)志志跟跟蹤蹤標(biāo)標(biāo)志志中中斷斷允允許許標(biāo)標(biāo)志志方方向向標(biāo)標(biāo)志志溢溢出出標(biāo)標(biāo)志志1-有進(jìn)、借位有進(jìn)、借位0-無進(jìn)、借位無進(jìn)、借位1-低低8位有偶數(shù)個(gè)位有偶數(shù)個(gè)10-低低8位有奇數(shù)個(gè)位有奇數(shù)個(gè)11-低低4位向高位向高4位有進(jìn)、借位位有進(jìn)、借位0-低低4位向高位向高4位無進(jìn)、借位位無進(jìn)、借位1-結(jié)果為結(jié)果為00-結(jié)果不為結(jié)果不為0(6)標(biāo)志寄存器)標(biāo)志寄存器16位寄存器,其中有位寄存器,其中有7位未用。位未用。第第2章:章:2.1.3 8088/8086的寄存器結(jié)構(gòu)的寄存器結(jié)構(gòu)8088/8086的寄存器組有的寄存器組有8個(gè)通用寄存器個(gè)通用寄

10、存器4個(gè)段寄存器個(gè)段寄存器1個(gè)標(biāo)志寄存器個(gè)標(biāo)志寄存器1個(gè)指令指針寄存器個(gè)指令指針寄存器他們均為他們均為1616位位! !圖示圖示第第2章:章:1. 通用寄存器通用寄存器8088有有8個(gè)通用的個(gè)通用的16位寄存器位寄存器(1)數(shù)據(jù)寄存器)數(shù)據(jù)寄存器: AX BX CX DX(2)變址寄存器)變址寄存器: SI DI(3)指針寄存器)指針寄存器: BP SP4個(gè)數(shù)據(jù)寄存器還可以分成高個(gè)數(shù)據(jù)寄存器還可以分成高8位和低位和低8位兩位兩個(gè)獨(dú)立的寄存器,這樣又形成個(gè)獨(dú)立的寄存器,這樣又形成8個(gè)通用的個(gè)通用的8位寄存器位寄存器AX: AH ALBX: BH BLCX: CH CLDX: DH DL第第2章:

11、(章:(1)數(shù)據(jù)寄存器)數(shù)據(jù)寄存器AX稱為累加器(稱為累加器(Accumulator)使用頻度最高。用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信使用頻度最高。用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等息等BX稱為基址寄存器(稱為基址寄存器(Base address Register)常用做存放存儲器地址常用做存放存儲器地址CX稱為計(jì)數(shù)器(稱為計(jì)數(shù)器(Counter)作為循環(huán)和串操作等指令中的隱含計(jì)數(shù)器作為循環(huán)和串操作等指令中的隱含計(jì)數(shù)器DX稱為數(shù)據(jù)寄存器(稱為數(shù)據(jù)寄存器(Data register)常用來存放雙字長數(shù)據(jù)的高常用來存放雙字長數(shù)據(jù)的高16位,或存放外設(shè)端口地址位,或存放外設(shè)端口地址第第2章:(章

12、:(2)變址寄存器)變址寄存器16位變址寄存器位變址寄存器SI和和DI常用于存儲器變址尋址方式時(shí)提供地址常用于存儲器變址尋址方式時(shí)提供地址SI是源地址寄存器(是源地址寄存器(Source Index)DI是目的地址寄存器(是目的地址寄存器(Destination Index)在串操作類指令中,在串操作類指令中,SI、DI還有較特殊的還有較特殊的 用法用法第第2章:(章:(3)指針寄存器)指針寄存器指針寄存器用于尋址內(nèi)存指針寄存器用于尋址內(nèi)存堆棧堆棧內(nèi)的數(shù)據(jù)內(nèi)的數(shù)據(jù)SPSP為堆棧指針寄存器(為堆棧指針寄存器(Stack Pointer), ,指示指示堆棧段棧頂?shù)奈恢茫ㄆ频刂罚┒褩6螚m數(shù)奈恢茫?/p>

13、偏移地址)BPBP為基址指針寄存器(為基址指針寄存器(Base Pointer),表示),表示數(shù)據(jù)在堆棧段中的基地址數(shù)據(jù)在堆棧段中的基地址SPSP和和BPBP寄存器與寄存器與SSSS段寄存器聯(lián)合使用以確段寄存器聯(lián)合使用以確定堆棧段中的存儲單元地址定堆棧段中的存儲單元地址堆棧堆棧(Stack)是主存中一個(gè)特殊的)是主存中一個(gè)特殊的區(qū)域,采用區(qū)域,采用“先進(jìn)后出先進(jìn)后出”或或“后進(jìn)先出后進(jìn)先出”存取操作方式。存取操作方式。用用8088/8086形成的微機(jī)系統(tǒng)中,堆形成的微機(jī)系統(tǒng)中,堆棧區(qū)域被稱為堆棧段。棧區(qū)域被稱為堆棧段。第第2章:章:2. 指令指針寄存器指令指針寄存器IP(Instruction

14、 Pointer)為指令指針寄存)為指令指針寄存器,指示主存儲器指令的位置器,指示主存儲器指令的位置隨著指令的執(zhí)行,隨著指令的執(zhí)行,IP將自動修改以指示下將自動修改以指示下一條指令所在的存儲器位置一條指令所在的存儲器位置IP寄存器是一個(gè)寄存器是一個(gè)專用專用寄存器寄存器IP寄存器與寄存器與CS段寄存器聯(lián)合使用以確定下段寄存器聯(lián)合使用以確定下一條指令的存儲單元地址一條指令的存儲單元地址第第2章:章:3. 標(biāo)志寄存器標(biāo)志寄存器標(biāo)志標(biāo)志(Flag)用于反映指令執(zhí)行結(jié)果)用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式或控制指令執(zhí)行形式8088處理器的各種標(biāo)志形成了一個(gè)處理器的各種標(biāo)志形成了一個(gè)16位的標(biāo)志寄存器

15、位的標(biāo)志寄存器FLAGS(程序狀態(tài)字(程序狀態(tài)字PSW寄存器寄存器) 程序設(shè)計(jì)需要利用標(biāo)志的狀態(tài)程序設(shè)計(jì)需要利用標(biāo)志的狀態(tài)第第2章:標(biāo)志寄存器章:標(biāo)志寄存器-分類分類狀態(tài)標(biāo)志狀態(tài)標(biāo)志用來記錄程序運(yùn)行結(jié)果的狀態(tài)用來記錄程序運(yùn)行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它CF ZF SF PF OF AF控制標(biāo)志控制標(biāo)志可由程序根據(jù)需要用指令設(shè)置,可由程序根據(jù)需要用指令設(shè)置,用于控制處理器執(zhí)行指令的方式用于控制處理器執(zhí)行指令的方式DF IF TFOF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0第第2章:進(jìn)位標(biāo)志章:進(jìn)位標(biāo)志CF(Car

16、ry Flag)當(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,即,即CF1; 否則否則CF03AH + 7CHB6H,沒有進(jìn)位:,沒有進(jìn)位:CF = 0AAH + 7CH(1)26H,有進(jìn)位:,有進(jìn)位:CF = 1第第2章:零標(biāo)志章:零標(biāo)志ZF(Zero Flag)若運(yùn)算結(jié)果為若運(yùn)算結(jié)果為0,則,則ZF1;否則否則ZF03AH7CHB6H,結(jié)果不是零:,結(jié)果不是零:ZF084H7CH(1)00H,結(jié)果是零:,結(jié)果是零:ZF1 注意:注意:ZF為為1表示的結(jié)果是表示的結(jié)果是0第第2章:符號標(biāo)志章:符號標(biāo)志SF(

17、Sign Flag)運(yùn)算結(jié)果最高位為運(yùn)算結(jié)果最高位為1,則,則SF1; 否則否則SF03AH7CHB6H,最高位,最高位D71:SF184H7CH(1)00H,最高位,最高位D70:SF0 有符號數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號有符號數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號所以,最高有效位就是符號標(biāo)志的狀態(tài)所以,最高有效位就是符號標(biāo)志的狀態(tài)第第2章:奇偶標(biāo)志章:奇偶標(biāo)志PF(Parity Flag)當(dāng)運(yùn)算結(jié)果最低字節(jié)中當(dāng)運(yùn)算結(jié)果最低字節(jié)中“1”的個(gè)數(shù)為的個(gè)數(shù)為偶數(shù)時(shí),偶數(shù)時(shí),PF1;否則;否則PF03AH7CHB6H10110110B結(jié)果中有結(jié)果中有5個(gè)個(gè)“1”,是奇數(shù):是奇數(shù):PF0 PF標(biāo)志僅反映最低

18、標(biāo)志僅反映最低8位中位中“1”的個(gè)數(shù)是的個(gè)數(shù)是偶或奇,即使是進(jìn)行偶或奇,即使是進(jìn)行16位字操作位字操作第第2章:溢出標(biāo)志章:溢出標(biāo)志OF(Overflow Flag)若算術(shù)運(yùn)算的結(jié)果有溢出,則若算術(shù)運(yùn)算的結(jié)果有溢出,則OF1; 否則否則 OF03AH + 7CHB6H,產(chǎn)生溢出:,產(chǎn)生溢出:OF1AAH + 7CH(1)26H,沒有溢出:,沒有溢出:OF0第第2章:什么是溢出章:什么是溢出處理器內(nèi)部以補(bǔ)碼表示有符號數(shù)處理器內(nèi)部以補(bǔ)碼表示有符號數(shù)8位表達(dá)的整數(shù)范圍是:位表達(dá)的整數(shù)范圍是:127 12816位表達(dá)的范圍是:位表達(dá)的范圍是:32767 32768如果運(yùn)算結(jié)果超出這個(gè)范圍,就產(chǎn)生了溢出

19、如果運(yùn)算結(jié)果超出這個(gè)范圍,就產(chǎn)生了溢出有溢出,說明有符號數(shù)的運(yùn)算結(jié)果不正確有溢出,說明有符號數(shù)的運(yùn)算結(jié)果不正確3AH7CHB6H,(即:,(即:58124182)已經(jīng)超出已經(jīng)超出128127范圍,產(chǎn)生溢出,故范圍,產(chǎn)生溢出,故OF1;補(bǔ)碼補(bǔ)碼B6H表達(dá)真值是表達(dá)真值是74,顯然運(yùn)算結(jié)果也不正確,顯然運(yùn)算結(jié)果也不正確 B6H10110110B,最高位為,最高位為1,作為有符號數(shù)是負(fù)數(shù)作為有符號數(shù)是負(fù)數(shù) 對對B6H求反加求反加1等于:等于:11001001B111001010B 74 所以,所以,B6H表達(dá)有符號數(shù)的真值為表達(dá)有符號數(shù)的真值為74第第2章:溢出和進(jìn)位的區(qū)別章:溢出和進(jìn)位的區(qū)別溢出標(biāo)

20、志溢出標(biāo)志OF和進(jìn)位標(biāo)志和進(jìn)位標(biāo)志CF是兩個(gè)意義是兩個(gè)意義不同的標(biāo)志不同的標(biāo)志進(jìn)位標(biāo)志表示進(jìn)位標(biāo)志表示無符號數(shù)無符號數(shù)運(yùn)算結(jié)果是否運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果超出范圍,運(yùn)算結(jié)果仍然正確仍然正確溢出標(biāo)志表示溢出標(biāo)志表示有符號數(shù)有符號數(shù)運(yùn)算結(jié)果是否運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果超出范圍,運(yùn)算結(jié)果已經(jīng)不正確已經(jīng)不正確第第2章:章: 溢出和進(jìn)位的對比溢出和進(jìn)位的對比例例1:3AH7CHB6H無符號數(shù)運(yùn)算:無符號數(shù)運(yùn)算: 58124182范圍內(nèi),無進(jìn)位,范圍內(nèi),無進(jìn)位,CF=0有符號數(shù)運(yùn)算:有符號數(shù)運(yùn)算: 58124182范圍外,有溢出,范圍外,有溢出,OF=1例例2:AAH7CH(1)26H無符號數(shù)

21、運(yùn)算:無符號數(shù)運(yùn)算: 170124294 范圍外,有進(jìn)位,范圍外,有進(jìn)位,CF=1有符號數(shù)運(yùn)算:有符號數(shù)運(yùn)算: 8612428 范圍內(nèi),無溢出,范圍內(nèi),無溢出,OF=0第第2章:溢出和進(jìn)位的應(yīng)用場合章:溢出和進(jìn)位的應(yīng)用場合處理器對兩個(gè)操作數(shù)進(jìn)行運(yùn)算時(shí),按照無處理器對兩個(gè)操作數(shù)進(jìn)行運(yùn)算時(shí),按照無符號數(shù)求得結(jié)果,并相應(yīng)設(shè)置進(jìn)位標(biāo)志符號數(shù)求得結(jié)果,并相應(yīng)設(shè)置進(jìn)位標(biāo)志CF;同時(shí),根據(jù)是否超出有符號數(shù)的范圍設(shè)置同時(shí),根據(jù)是否超出有符號數(shù)的范圍設(shè)置溢出標(biāo)志溢出標(biāo)志OF應(yīng)該利用哪個(gè)標(biāo)志,則由程序員來決定。應(yīng)該利用哪個(gè)標(biāo)志,則由程序員來決定。也就是說,如果將參加運(yùn)算的操作數(shù)認(rèn)為也就是說,如果將參加運(yùn)算的操作數(shù)

22、認(rèn)為是無符號數(shù),就應(yīng)該關(guān)心進(jìn)位;認(rèn)為是有是無符號數(shù),就應(yīng)該關(guān)心進(jìn)位;認(rèn)為是有符號數(shù),則要注意是否溢出符號數(shù),則要注意是否溢出第第2章:溢出的判斷章:溢出的判斷判斷運(yùn)算結(jié)果是否溢出有一個(gè)簡單的規(guī)則:判斷運(yùn)算結(jié)果是否溢出有一個(gè)簡單的規(guī)則:例例1:3AH7CHB6H溢出溢出例例2:AAH7CH無溢出無溢出例例3:3AH7CH無溢出無溢出例例4:AAH7CH2DH溢出溢出第第2章:輔助進(jìn)位標(biāo)志章:輔助進(jìn)位標(biāo)志AF(Auxiliary Carry Flag)3AH7CHB6H,D3有進(jìn)位:有進(jìn)位:AF1運(yùn)算時(shí)運(yùn)算時(shí)D D3 3位(低半字節(jié))有進(jìn)位或位(低半字節(jié))有進(jìn)位或借位時(shí),借位時(shí),AFAF1 1;否

23、則;否則AFAF0 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)心第第2章:方向標(biāo)志章:方向標(biāo)志DF(Direction Flag)用于串操作指令中,控制地址的變化方向:用于串操作指令中,控制地址的變化方向:設(shè)置設(shè)置DF0,存儲器地址自動增加;,存儲器地址自動增加;設(shè)置設(shè)置DF1,存儲器地址自動減少,存儲器地址自動減少CLDCLD指令復(fù)位方向標(biāo)志:指令復(fù)位方向標(biāo)志:DFDF0 0STDSTD指令置位方向標(biāo)志:指令置位方向標(biāo)志:DFDF1 1第第2章:中斷允許標(biāo)志章:中斷允許標(biāo)志IF(In

24、terrupt-enable Flag)控制可屏蔽中斷是否可以被處理器響應(yīng):控制可屏蔽中斷是否可以被處理器響應(yīng):設(shè)置設(shè)置IF1,則允許中斷;,則允許中斷;設(shè)置設(shè)置IF0,則禁止中斷,則禁止中斷CLICLI指令復(fù)位中斷標(biāo)志:指令復(fù)位中斷標(biāo)志:IFIF0 0STISTI指令置位中斷標(biāo)志:指令置位中斷標(biāo)志:IFIF1 1第第2章:陷阱標(biāo)志章:陷阱標(biāo)志TF(Trap Flag)用于控制處理器進(jìn)入單步操作方式:用于控制處理器進(jìn)入單步操作方式:設(shè)置設(shè)置TF0,處理器正常工作;,處理器正常工作;設(shè)置設(shè)置TF1,處理器,處理器單步執(zhí)行指令單步執(zhí)行指令單步執(zhí)行指令單步執(zhí)行指令處理器在處理器在每條指令執(zhí)行結(jié)每條指

25、令執(zhí)行結(jié)束束時(shí),便產(chǎn)生一個(gè)編號為時(shí),便產(chǎn)生一個(gè)編號為1 1的內(nèi)部中斷的內(nèi)部中斷這種內(nèi)部中斷稱為這種內(nèi)部中斷稱為單步中斷單步中斷所以所以TFTF也稱為也稱為單步標(biāo)志單步標(biāo)志n利用單步中斷可對程序進(jìn)行逐條指令的調(diào)試?yán)脝尾街袛嗫蓪Τ绦蜻M(jìn)行逐條指令的調(diào)試n這種逐條指令調(diào)試程序的方法就是這種逐條指令調(diào)試程序的方法就是單步調(diào)試單步調(diào)試第第2章:章:2.1.4 8088/8086的存儲器結(jié)構(gòu)的存儲器結(jié)構(gòu)存儲器存儲器是計(jì)算機(jī)存儲信息的地方。掌握數(shù)是計(jì)算機(jī)存儲信息的地方。掌握數(shù)據(jù)據(jù)存儲格式存儲格式,以及存儲器的,以及存儲器的分段管理分段管理對以對以后的匯編程序設(shè)計(jì)非常重要后的匯編程序設(shè)計(jì)非常重要你能區(qū)別你能區(qū)

26、別寄存器寄存器、存儲器存儲器(主存主存)、外存外存(包包括硬盤、光盤、磁帶等存儲介質(zhì)括硬盤、光盤、磁帶等存儲介質(zhì))嗎?嗎?第第2章:寄存器、存儲器和外存的區(qū)別章:寄存器、存儲器和外存的區(qū)別寄存器寄存器是微處理器(是微處理器(CPU)內(nèi)部)內(nèi)部暫存數(shù)據(jù)暫存數(shù)據(jù)的存儲的存儲單元,以名稱表示,例如:單元,以名稱表示,例如:AX,BX.等等存儲器存儲器也就是平時(shí)所說的也就是平時(shí)所說的主存主存,也叫,也叫內(nèi)存內(nèi)存,可直,可直接與接與CPU進(jìn)行數(shù)據(jù)交換。主存利用地址區(qū)別進(jìn)行數(shù)據(jù)交換。主存利用地址區(qū)別外存外存主要指用來長久保存數(shù)據(jù)的外部存儲介質(zhì),主要指用來長久保存數(shù)據(jù)的外部存儲介質(zhì),常見的有硬盤、光盤、磁帶

27、、常見的有硬盤、光盤、磁帶、U盤等。外存的數(shù)據(jù)盤等。外存的數(shù)據(jù)只能通過主存間接地與只能通過主存間接地與CPU交換數(shù)據(jù)交換數(shù)據(jù)程序及其數(shù)據(jù)可以長久存放在外存,在運(yùn)行需要程序及其數(shù)據(jù)可以長久存放在外存,在運(yùn)行需要時(shí)才進(jìn)入主存時(shí)才進(jìn)入主存第第2章:章:1. 數(shù)據(jù)的存儲格式數(shù)據(jù)的存儲格式計(jì)算機(jī)中信息的單位計(jì)算機(jī)中信息的單位二進(jìn)制位二進(jìn)制位BitBit:存儲一位二進(jìn)制數(shù):存儲一位二進(jìn)制數(shù):0 0或或1 1字節(jié)字節(jié)ByteByte:8 8個(gè)二進(jìn)制位個(gè)二進(jìn)制位,D D7 7D D0 0字字WordWord:1616位,位,2 2個(gè)字節(jié),個(gè)字節(jié),D D1515D D0 0雙字雙字DWordDWord:3232

28、位,位,4 4個(gè)字節(jié)個(gè)字節(jié),D D3131D D0 0最低有效位最低有效位LSBLSB:數(shù)據(jù)的最低位,:數(shù)據(jù)的最低位,D D0 0位位最高有效位最高有效位MSBMSB:數(shù)據(jù)的最高位,對應(yīng)字節(jié)、:數(shù)據(jù)的最高位,對應(yīng)字節(jié)、字、雙字分別指字、雙字分別指D D7 7、D D1515、D D3131位位第第2章:存儲單元及其存儲內(nèi)容章:存儲單元及其存儲內(nèi)容每個(gè)存儲單元都有一個(gè)編號;被稱每個(gè)存儲單元都有一個(gè)編號;被稱為為存儲器地址存儲器地址每個(gè)存儲單元存放一個(gè)字節(jié)的內(nèi)容每個(gè)存儲單元存放一個(gè)字節(jié)的內(nèi)容0002H0002H單元存放有一個(gè)數(shù)據(jù)單元存放有一個(gè)數(shù)據(jù)34H34H表達(dá)為表達(dá)為0002H0002H34H3

29、4H第第2章:多字節(jié)數(shù)據(jù)存放方式章:多字節(jié)數(shù)據(jù)存放方式多字節(jié)數(shù)據(jù)在存儲器中占連續(xù)的多個(gè)多字節(jié)數(shù)據(jù)在存儲器中占連續(xù)的多個(gè)存儲單元:存儲單元:存放時(shí),低字節(jié)存入低地址,高字節(jié)存存放時(shí),低字節(jié)存入低地址,高字節(jié)存入高地址;入高地址;表達(dá)時(shí),用它的低地址表示多字節(jié)數(shù)據(jù)表達(dá)時(shí),用它的低地址表示多字節(jié)數(shù)據(jù)占據(jù)的地址空間。占據(jù)的地址空間。圖圖2-52-5中中0002H0002H“字字”單元的內(nèi)容為:單元的內(nèi)容為:0002H = 1234H0002H = 1234H0002H0002H號號“雙字雙字”單元的內(nèi)容為:單元的內(nèi)容為:0002H = 78561234H0002H = 78561234H第第2章:章:

30、2. 存儲器的分段管理存儲器的分段管理8088CPU8088CPU有有2020條地址線條地址線最大可尋址空間為最大可尋址空間為2 220201MB1MB物理地址范圍從物理地址范圍從00000H00000HFFFFFHFFFFFH8 0 8 8 C P U8 0 8 8 C P U 將將 1 M B1 M B 空 間 分 成 許 多空 間 分 成 許 多 邏 輯 段邏 輯 段(SegmentSegment)每個(gè)段最大限制為每個(gè)段最大限制為64KB64KB段基址的低段基址的低4 4位為位為0000B0000B這樣,一個(gè)存儲單元除具有一個(gè)唯一的物這樣,一個(gè)存儲單元除具有一個(gè)唯一的物理地址外,還具有多

31、個(gè)邏輯地址理地址外,還具有多個(gè)邏輯地址 8086CPU中有四個(gè)段寄存器:中有四個(gè)段寄存器:CS,DS,SS和和ES,這四個(gè)段寄存器存放了,這四個(gè)段寄存器存放了CPU當(dāng)前可以尋址的當(dāng)前可以尋址的四四個(gè)段的基址個(gè)段的基址。 存儲器分段結(jié)構(gòu) 00000H 存儲器分段示意圖 邏輯段1 起點(diǎn) 邏輯段2 起點(diǎn) 邏輯段3 起點(diǎn) 邏輯段4 起點(diǎn) FFFFFH 邏輯段1 64KB 邏輯段2 64KB 邏輯段3 64KB 邏輯段4 64KB 8086存儲器的邏輯地址和物理地址存儲器的邏輯地址和物理地址存儲器中的每個(gè)存儲單元都可以用兩個(gè)形式的地址來存儲器中的每個(gè)存儲單元都可以用兩個(gè)形式的地址來表示:表示:物理地址物

32、理地址和和邏輯地址邏輯地址。物理地址物理地址:也稱實(shí)際地址,是用唯一的:也稱實(shí)際地址,是用唯一的20位二進(jìn)制數(shù)位二進(jìn)制數(shù)所表示的地址,規(guī)定了所表示的地址,規(guī)定了1M字節(jié)存儲體中某個(gè)具體單字節(jié)存儲體中某個(gè)具體單元的地址元的地址 。邏輯地址邏輯地址是在程序中使用的地址,表示形式為是在程序中使用的地址,表示形式為“段地段地址:偏移地址址:偏移地址 ” 。3. 物理地址的形成物理地址的形成物理地址物理地址=段基址段基址 * 16 +偏移地址。偏移地址。段基址:段基址:CS、DS、ES、SS。偏移地址:偏移地址:IP、DI、SI、BP、SP等。等。段寄存器值段寄存器值偏移量偏移量+物理地址物理地址16位

33、位4位位16位位20位位存儲器物理地址的計(jì)算方法存儲器物理地址的計(jì)算方法第第2章:物理地址和邏輯地址章:物理地址和邏輯地址 分段后在用戶編程時(shí),采用邏輯地分段后在用戶編程時(shí),采用邏輯地址,形式為址,形式為段基地址段基地址 : : 段內(nèi)偏移地址段內(nèi)偏移地址分隔符分隔符物理地址物理地址 14700H邏輯地址邏輯地址 1460H:100H第第2章:物理地址和邏輯地址的轉(zhuǎn)換章:物理地址和邏輯地址的轉(zhuǎn)換一個(gè)物理地址可以有多個(gè)邏輯地址一個(gè)物理地址可以有多個(gè)邏輯地址邏輯地址邏輯地址 1460H:100H1460H:100H、1380H:F00H1380H:F00H物理地址物理地址 14700H 14700H

34、14700H 14700H146014600 0H H 100H100H14700H14700H138013800 0H H F00HF00H14700H14700H段地址左移段地址左移4 4位位加上偏移地址加上偏移地址得到物理地址得到物理地址第第2章:章:3. 段寄存器段寄存器8088有有4個(gè)個(gè)16位段寄存器位段寄存器CS(代碼段)指明(代碼段)指明代碼段代碼段的起始地址的起始地址SS(堆棧段)指明(堆棧段)指明堆棧段堆棧段的起始地址的起始地址DS(數(shù)據(jù)段)指明(數(shù)據(jù)段)指明數(shù)據(jù)段數(shù)據(jù)段的起始地址的起始地址ES(附加段)指明(附加段)指明附加段附加段的起始地址的起始地址每個(gè)段寄存器用來確定一

35、個(gè)邏輯段的起每個(gè)段寄存器用來確定一個(gè)邏輯段的起始地址,每種邏輯段均有各自的用途始地址,每種邏輯段均有各自的用途 CS 0000 IP代碼段代碼段 DS或或ES 0000 SI、DI或或BX SS 0000 SP或或BP數(shù)據(jù)段數(shù)據(jù)段堆棧段堆棧段存儲器存儲器段寄存器和偏移地址寄存器組合關(guān)系段寄存器和偏移地址寄存器組合關(guān)系第第2章:代碼段寄存器章:代碼段寄存器CS(Code Segment)代碼段用來存放程序的指令序列代碼段用來存放程序的指令序列代碼段寄存器代碼段寄存器CS存放代碼段的段地址存放代碼段的段地址指令指針寄存器指令指針寄存器IP指示下條指令的偏移地址指示下條指令的偏移地址處理器利用處理器

36、利用CS:IP取得下一條要執(zhí)行的指令取得下一條要執(zhí)行的指令第第2章:堆棧段寄存器章:堆棧段寄存器SS(Stack Segment)堆棧段確定堆棧所在的主存區(qū)域堆棧段確定堆棧所在的主存區(qū)域堆棧段寄存器堆棧段寄存器SS存放堆棧段的段地址存放堆棧段的段地址堆棧指針寄存器堆棧指針寄存器SP指示堆棧棧頂?shù)钠频刂分甘径褩m數(shù)钠频刂诽幚砥骼锰幚砥骼肧S:SP操作堆棧頂?shù)臄?shù)據(jù)操作堆棧頂?shù)臄?shù)據(jù)第第2章:數(shù)據(jù)段寄存器章:數(shù)據(jù)段寄存器DS(Data Segment)數(shù)據(jù)段存放運(yùn)行程序所用的數(shù)據(jù)數(shù)據(jù)段存放運(yùn)行程序所用的數(shù)據(jù)數(shù)據(jù)段寄存器數(shù)據(jù)段寄存器DS存放數(shù)據(jù)段的段地址存放數(shù)據(jù)段的段地址各種各種內(nèi)存尋址方式內(nèi)

37、存尋址方式(有效地址(有效地址EA)得到存儲器)得到存儲器中操作數(shù)的偏移地址中操作數(shù)的偏移地址處理器利用處理器利用DS:EA存取數(shù)據(jù)段中的數(shù)據(jù)存取數(shù)據(jù)段中的數(shù)據(jù)第第2章:附加段寄存器章:附加段寄存器ES(Extra Segment)附加段是附加的數(shù)據(jù)段,也保存數(shù)據(jù):附加段是附加的數(shù)據(jù)段,也保存數(shù)據(jù):附加段寄存器附加段寄存器ES存放附加段的段地址存放附加段的段地址各種各種內(nèi)存尋址方式內(nèi)存尋址方式(有效地址(有效地址EA)得到存儲器)得到存儲器中操作數(shù)的偏移地址中操作數(shù)的偏移地址處理器利用處理器利用ES:EA存取附加段中的數(shù)據(jù)存取附加段中的數(shù)據(jù)串操作指令將附加段作為其目的操作數(shù)的串操作指令將附加段

38、作為其目的操作數(shù)的存放區(qū)域存放區(qū)域第第2章:如何分配各個(gè)邏輯段章:如何分配各個(gè)邏輯段程序的指令程序的指令序列必須安排在序列必須安排在代碼段代碼段程序使用的程序使用的堆棧堆棧一定在一定在堆棧段堆棧段程序中的程序中的數(shù)據(jù)數(shù)據(jù)默認(rèn)默認(rèn)是安排在是安排在數(shù)據(jù)段數(shù)據(jù)段,也經(jīng)常安排在也經(jīng)常安排在附加段附加段,尤其是串操作,尤其是串操作的目的區(qū)必須是附加段的目的區(qū)必須是附加段數(shù)據(jù)的存放比較靈活,實(shí)際上可以存數(shù)據(jù)的存放比較靈活,實(shí)際上可以存放在任何一種邏輯段中放在任何一種邏輯段中MOVSB串傳送指令串傳送指令該指令隱含了兩個(gè)操作數(shù)的地址。該指令隱含了兩個(gè)操作數(shù)的地址。源串和目標(biāo)串地址符合默認(rèn)值,即:源串和目標(biāo)串

39、地址符合默認(rèn)值,即:源串在源串在DS段,偏移地址在段,偏移地址在SI中;中;目標(biāo)串在目標(biāo)串在ES段,偏移地址在段,偏移地址在DI中。中。 將將2000H:1200H地址開始的地址開始的100個(gè)字節(jié)傳送個(gè)字節(jié)傳送到到6000H:0000H開始的內(nèi)存單元中去。開始的內(nèi)存單元中去。 將將2000H:1200H地址開始的地址開始的100個(gè)字節(jié)傳送到個(gè)字節(jié)傳送到6000H:0000H開始的內(nèi)存單元中中去。開始的內(nèi)存單元中中去。 MOV AX,2000H MOV DS,AX ;設(shè)定源串段地址設(shè)定源串段地址 MOV AX,6000H MOV ES,AX ;設(shè)定目標(biāo)串段地址設(shè)定目標(biāo)串段地址 MOV SI,1200H ;設(shè)定源串偏移地址設(shè)定源串偏移地址 MOV DI,0 ;設(shè)定目標(biāo)串偏移地址設(shè)定目標(biāo)串偏移地址 MOV CX,100 ;串長度送串長度送CX CLD ;(DF)=0,地址指針增,地址指針增NEXT: REP MOVSB ;(CX)不等于)不等于0,就繼,就繼 續(xù),直至(續(xù),直至(CX)=0 MOV AX,1234H PUSH AX POP BX CALL SUBSUB: RET第第2章:段超越前綴指令章:

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論