2寄存器結(jié)構(gòu)存儲(chǔ)器管理00154課件(42頁(yè)P(yáng)PT)_第1頁(yè)
2寄存器結(jié)構(gòu)存儲(chǔ)器管理00154課件(42頁(yè)P(yáng)PT)_第2頁(yè)
2寄存器結(jié)構(gòu)存儲(chǔ)器管理00154課件(42頁(yè)P(yáng)PT)_第3頁(yè)
2寄存器結(jié)構(gòu)存儲(chǔ)器管理00154課件(42頁(yè)P(yáng)PT)_第4頁(yè)
2寄存器結(jié)構(gòu)存儲(chǔ)器管理00154課件(42頁(yè)P(yáng)PT)_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 基本結(jié)構(gòu)寄存器通用數(shù)據(jù)寄存器SIESIESI、SI:數(shù)據(jù)段源變址指針寄存器BPEBPEBP、BP:堆棧段基址指針寄存器SPESPESP、SP:堆棧段棧頂指針寄存器DHDLDXEDXEDX、DX、DH、DL:間接I/O操作;雙字乘/除CXCHCLECXECX、CX、CH、CL:循環(huán)計(jì)數(shù);重復(fù)串操作;可變移位、循環(huán)移位操作。EBX、BX、BH、BL:查表轉(zhuǎn)換;基地址。BXBHBLEBXEAX、AX、AH、AL:加減;BCD、ASCII調(diào)整;字節(jié)到字,字到雙字轉(zhuǎn)換;乘/除,串操作,I/O操作等。AXAHALEAXEDI、DI:數(shù)據(jù)段目的變址指針寄存器DIEDI1. 8086/8088CPU的功能結(jié)

2、構(gòu)第1頁(yè),共42頁(yè)。8086的寄存器結(jié)構(gòu)AHALBHBLCHCLDHDLSPBPSIDIIPPSWCSDSSSESAXBXCXDX累加器基址計(jì)數(shù)數(shù)據(jù)數(shù)據(jù)寄存器01507815015015附加數(shù)據(jù)段堆棧段數(shù)據(jù)段代碼段段寄存器指令指針狀態(tài)標(biāo)志控制寄存器堆棧指針基址指針 源變址目的變址指針寄存器變址寄存器通用寄存器第2頁(yè),共42頁(yè)。1、通用寄存器通用寄存器包括: 數(shù)據(jù)寄存器、地址指針寄存器、變址寄存器。 數(shù)據(jù)寄存器包括: AX 、BX 、CX 、DX 。 地址指針寄存器包括: SP 、 BP 。 變址寄存器包括: SI 、 DI 。2、段寄存器 段寄存器包括: CS 、 SS 、 DS 、 ES 。

3、3、控制寄存器 控制寄存器包括:IP 、PSW。第3頁(yè),共42頁(yè)。1、通用寄存器(1)數(shù)據(jù)寄存器AX、BX、CX、DX 作為通用寄存器。 用來(lái)暫存計(jì)算過(guò)程中所用到的操作數(shù),結(jié)果或其它信息。 訪(fǎng)問(wèn)形式:可以用16位的訪(fǎng)問(wèn); 或者可以用字節(jié)(8位)形式訪(fǎng)問(wèn),它們的高8位記作 : AH 、 BH 、 CH 、 DH 。它們的低8位記作 : AL 、BL 、CL 、DL 。第4頁(yè),共42頁(yè)。AX(Accumulator)作為累加器。 它是算術(shù)運(yùn)算的主要寄存器,所有I/O指令都使用這一寄存器與外部設(shè)備交換數(shù)據(jù)。例: IN AL , 20HOUT 30H , AXBXBase用作基址寄存器使用。 在計(jì)算內(nèi)

4、存儲(chǔ)器地址時(shí),經(jīng)常用來(lái)存放基址。例:MOV AX, BX+03H第5頁(yè),共42頁(yè)。CXCount可以作計(jì)數(shù)寄存器使用。 在循環(huán)LOOP指令和串處理指令中用作隱含計(jì)數(shù)器。例:MOV CX , 200HAGAIN:LOOP AGAIN ;(CX)-1(CX),結(jié)果0轉(zhuǎn)AGAINDXData可以作為數(shù)據(jù)寄存器使用。一般在雙字長(zhǎng)乘除法運(yùn)算時(shí), 把DX和AX組合在一起存放一個(gè)雙字長(zhǎng)(32位)數(shù),DX用來(lái)存放高16位; 對(duì)某些I/O操作DX可用來(lái)存放I/O的端口地址(口地址 256)。例:MUL BX ; (AX)(BX)(DX)(AX)例:IN AL , DX第6頁(yè),共42頁(yè)。(2)地址指針與變址寄存器

5、: 段起始地址 SP、BP、SI、DI 四個(gè)16位寄存器。以字為單位在運(yùn)算過(guò)程中存放操作數(shù),經(jīng)常用以在段內(nèi)尋址時(shí)提供偏移地址。 段內(nèi)偏移地址段地址 :只取段起始地址高16位值。偏移地址:指在段內(nèi)某內(nèi)存單元物理地址相對(duì)段起始地址的偏移值。 高16位值 0000B第7頁(yè),共42頁(yè)。地址指針寄存器(SP 、 BP ) SP(stack pointer)堆棧指針寄存器 用來(lái)指示棧頂?shù)钠频刂? 必須與SS段寄存器聯(lián)合使用確定實(shí)際地址。 堆棧和指針如下頁(yè)圖所示。 BP(base pointer)基址指針寄存器 可以與SS寄存器聯(lián)合使用來(lái)確定堆棧段中某一存儲(chǔ)器單元地址。第8頁(yè),共42頁(yè)。 變址寄存器(SI

6、 、 DI)SISource Index Register 源變址寄存器。DIDestination Index 目的變址寄存器。使用場(chǎng)合:常用于變址尋址。 一般與DS聯(lián)用,用來(lái)確定數(shù)據(jù)段中某一存儲(chǔ)單元的地址, SI , DI具有自動(dòng)增量和自動(dòng)減量功能.例:MOV AX, SI第9頁(yè),共42頁(yè)。在串處理指令中,SI、DI作為隱含的源變址和目的變址寄 存器分別達(dá)到在數(shù)據(jù)段和附加段中尋址的目的。 執(zhí)行示意圖如右圖。例:MOV SI , 2000HMOV DI , 3000HMOV CX, 100HCLD.MOVSB. 串處理指令執(zhí)行示意圖第10頁(yè),共42頁(yè)。2、段寄存器段寄存器: 4個(gè)16位段寄存

7、器CS、DS、SS、ES。用來(lái)識(shí)別當(dāng)前可尋址的四個(gè)段,不可互換的使用。CSCode Segment Register 代碼段寄存器 用來(lái)識(shí)別當(dāng)前代碼段(程序一般放在代碼段)。DSData Segment Register數(shù)據(jù)段寄存器 用來(lái)識(shí)別當(dāng)前數(shù)據(jù)段寄存器。SSStack Segment Register堆棧段寄存器, 用來(lái)識(shí)別當(dāng)前堆棧段。ESExtra Segment Register附加段寄存器, 用來(lái)識(shí)別當(dāng)前附加段。第11頁(yè),共42頁(yè)。3、控制寄存器控制寄存器:IP 、 PSWIPInstruction Pointer指令指針寄存器 用來(lái)存儲(chǔ)代碼段中的偏移地址; 程序運(yùn)行過(guò)程中IP始終

8、指向下一次要取出的指令偏移地址。IP要與CS寄存器相配合才能形成真正的物理地址。FLAGS程序狀態(tài)字寄存器, 16位寄存器。 由條件碼標(biāo)志FLAG、控制標(biāo)志構(gòu)成。只用了其中9位, 6位條件標(biāo)志, 3位控制標(biāo)志。第12頁(yè),共42頁(yè)。標(biāo)志寄存器-分類(lèi)狀態(tài)標(biāo)志用來(lái)記錄程序運(yùn)行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它CF ZF SF PF OF AF控制標(biāo)志可由程序根據(jù)需要用指令設(shè)置,用于控制處理器執(zhí)行指令的方式DF IF TFOF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0標(biāo)志寄存器FLAGS第13頁(yè),共42頁(yè)。進(jìn)位標(biāo)志CF(Carry Flag)當(dāng)運(yùn)算結(jié)果的最高有效

9、位有進(jìn)位(加法)或借位(減法)時(shí),進(jìn)位標(biāo)志置1,即CF1; 否則CF03AH + 7CHB6H,沒(méi)有進(jìn)位:CF = 0AAH + 7CH(1)26H,有進(jìn)位:CF = 1第14頁(yè),共42頁(yè)。零標(biāo)志ZF(Zero Flag)若運(yùn)算結(jié)果為0,則ZF1;否則ZF03AH7CHB6H,結(jié)果不是零:ZF084H7CH(1)00H,結(jié)果是零:ZF1 注意:ZF為1表示的結(jié)果是0第15頁(yè),共42頁(yè)。符號(hào)標(biāo)志SF(Sign Flag)運(yùn)算結(jié)果最高位為1,則SF1; 否則SF03AH7CHB6H,最高位D71:SF184H7CH(1)00H,最高位D70:SF0 有符號(hào)數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號(hào)所以,最高有

10、效位就是符號(hào)標(biāo)志的狀態(tài)第16頁(yè),共42頁(yè)。奇偶標(biāo)志PF(Parity Flag)當(dāng)運(yùn)算結(jié)果最低字節(jié)中“1”的個(gè)數(shù)為零或偶數(shù)時(shí),PF1;否則PF03AH7CHB6H10110110B結(jié)果中有5個(gè)“1”,是奇數(shù):PF0 PF標(biāo)志僅反映最低8位中“1”的個(gè)數(shù)是偶或奇,即使是進(jìn)行16位字操作第17頁(yè),共42頁(yè)。溢出標(biāo)志OF(Overflow Flag)若算術(shù)運(yùn)算的結(jié)果有溢出,則OF1; 否則 OF03AH + 7CHB6H,產(chǎn)生溢出:OF1AAH + 7CH(1)26H,沒(méi)有溢出:OF0?第18頁(yè),共42頁(yè)。什么是溢出處理器內(nèi)部以補(bǔ)碼表示有符號(hào)數(shù)8位表達(dá)的整數(shù)范圍是:127 12816位表達(dá)的范圍是:

11、32767 32768如果運(yùn)算結(jié)果超出這個(gè)范圍,就產(chǎn)生了溢出有溢出,說(shuō)明有符號(hào)數(shù)的運(yùn)算結(jié)果不正確3AH7CHB6H,就是58124182,已經(jīng)超出128127范圍,產(chǎn)生溢出,故OF1;補(bǔ)碼B6H表達(dá)真值是74,顯然運(yùn)算結(jié)果也不正確 B6H10110110B,最高位為1,作為有符號(hào)數(shù)是負(fù)數(shù) 對(duì)B6H求反加1等于:01001001B101001010B4AH74 所以,B6H表達(dá)有符號(hào)數(shù)的真值為74第19頁(yè),共42頁(yè)。溢出和進(jìn)位的區(qū)別溢出標(biāo)志OF和進(jìn)位標(biāo)志CF是兩個(gè)意義不同的標(biāo)志進(jìn)位標(biāo)志表示無(wú)符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果仍然正確溢出標(biāo)志表示有符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果已經(jīng)不正確?

12、第20頁(yè),共42頁(yè)。溢出和進(jìn)位的對(duì)比例1:3AH7CHB6H無(wú)符號(hào)數(shù)運(yùn)算:58124182范圍內(nèi),無(wú)進(jìn)位有符號(hào)數(shù)運(yùn)算: 58124182范圍外,有溢出例2:AAH7CH(1)26H無(wú)符號(hào)數(shù)運(yùn)算:170124294范圍外,有進(jìn)位有符號(hào)數(shù)運(yùn)算:8612428范圍內(nèi),無(wú)溢出第21頁(yè),共42頁(yè)。溢出和進(jìn)位的應(yīng)用場(chǎng)合處理器對(duì)兩個(gè)操作數(shù)進(jìn)行運(yùn)算時(shí),按照無(wú)符號(hào)數(shù)求得結(jié)果,并相應(yīng)設(shè)置進(jìn)位標(biāo)志CF;同時(shí),根據(jù)是否超出有符號(hào)數(shù)的范圍設(shè)置溢出標(biāo)志OF應(yīng)該利用哪個(gè)標(biāo)志,則由程序員來(lái)決定。也就是說(shuō),如果將參加運(yùn)算的操作數(shù)認(rèn)為是無(wú)符號(hào)數(shù),就應(yīng)該關(guān)心進(jìn)位;認(rèn)為是有符號(hào)數(shù),則要注意是否溢出第22頁(yè),共42頁(yè)。溢出的判斷判斷運(yùn)

13、算結(jié)果是否溢出有一個(gè)簡(jiǎn)單的規(guī)則:只有當(dāng)兩個(gè)相同符號(hào)數(shù)相加(包括不同符號(hào)數(shù)相減),而運(yùn)算結(jié)果的符號(hào)與原數(shù)據(jù)符號(hào)相反時(shí),產(chǎn)生溢出;因?yàn)?,此時(shí)的運(yùn)算結(jié)果顯然不正確其他情況下,則不會(huì)產(chǎn)生溢出例1:3AH7CHB6H溢出例2:AAH7CH無(wú)溢出例3:3AH7CH無(wú)溢出例4:AAH7CH2DH溢出第23頁(yè),共42頁(yè)。輔助進(jìn)位標(biāo)志AF(Auxiliary Carry Flag)3AH7CHB6H,D3有進(jìn)位:AF1運(yùn)算時(shí)D3位(低半字節(jié))有進(jìn)位或借位時(shí),AF1;否則AF0這個(gè)標(biāo)志主要由處理器內(nèi)部使用,用于十進(jìn)制算術(shù)運(yùn)算調(diào)整指令中,用戶(hù)一般不必關(guān)心第24頁(yè),共42頁(yè)。方向標(biāo)志DF(Direction Flag

14、)用于串操作指令中,控制地址的變化方向:設(shè)置DF0,存儲(chǔ)器地址自動(dòng)增加;設(shè)置DF1,存儲(chǔ)器地址自動(dòng)減少CLD指令復(fù)位方向標(biāo)志:DF0STD指令置位方向標(biāo)志:DF1第25頁(yè),共42頁(yè)。中斷允許標(biāo)志IF(Interrupt-enable Flag)控制可屏蔽中斷是否可以被處理器響應(yīng):設(shè)置IF1,則允許中斷;設(shè)置IF0,則禁止中斷CLI指令復(fù)位中斷標(biāo)志:IF0STI指令置位中斷標(biāo)志:IF1第26頁(yè),共42頁(yè)。陷阱標(biāo)志TF(Trap Flag)用于控制處理器進(jìn)入單步操作方式:設(shè)置TF0,處理器正常工作;設(shè)置TF1,處理器單步執(zhí)行指令單步執(zhí)行指令處理器在每條指令執(zhí)行結(jié)束時(shí),便產(chǎn)生一個(gè)編號(hào)為1的內(nèi)部中斷這

15、種內(nèi)部中斷稱(chēng)為單步中斷所以TF也稱(chēng)為單步標(biāo)志利用單步中斷可對(duì)程序進(jìn)行逐條指令的調(diào)試這種逐條指令調(diào)試程序的方法就是單步調(diào)試第27頁(yè),共42頁(yè)。存貯器的物理地址以字節(jié)為最小基本存儲(chǔ)單元的順序編址。 (220=1024K=1MB空間)從00000H到0FFFFFH個(gè)單元的20位絕對(duì)地址。2AH?HBFH00000H00003H00002H00001HFFFFDHFFFFFHFFFFEH存貯器數(shù)據(jù)存儲(chǔ) 1.字節(jié)數(shù)據(jù)8位,對(duì)應(yīng)每一地址存儲(chǔ)一個(gè)數(shù)據(jù)2 8086/8088存儲(chǔ)器組織及其尋址 2.字?jǐn)?shù)據(jù)16位 ,連續(xù)2個(gè)字節(jié)數(shù)據(jù)構(gòu)成一個(gè)字高8位字節(jié)對(duì)應(yīng)高位地址, 低8位字節(jié)對(duì)應(yīng)低位地址字的地址:為低8位字節(jié)的

16、地址規(guī)則字:偶地址字;非規(guī)則字:奇地址字 3.雙字?jǐn)?shù)據(jù)32位,類(lèi)同字的存儲(chǔ)第28頁(yè),共42頁(yè)。存儲(chǔ)器地址分段:8086有20條地址總線(xiàn),直接尋址能力為220=1M字節(jié)。用16進(jìn)制數(shù)表示1M字節(jié)的地址范圍應(yīng)為00000HFFFFFH。(1)、 8086內(nèi)部20位物理地址形成(2)、邏輯地址與物理地址第29頁(yè),共42頁(yè)。 (1)、8086內(nèi)部20位物理地址形成 存儲(chǔ)器地址分段 8086地址總線(xiàn)是20位的,CPU中的寄存器是16位的,20位地址無(wú)法用16位寄存器表示,必須分段。程序員在編制程序時(shí)把存儲(chǔ)器劃分成段。段內(nèi)地址16位,每個(gè)段的大小最大可達(dá)64KB;實(shí)際可以根據(jù)需要來(lái)確定段大小,可以是1,1

17、00,1000,在64K范圍內(nèi)的任意字節(jié)數(shù)。第30頁(yè),共42頁(yè)。 小段的概念從0地址開(kāi)始每16字節(jié)為一小段,對(duì)于16位地址總線(xiàn),段內(nèi)存儲(chǔ)器小段地址如下:如: 0000H,0001H,0002H,000EH,000FH一個(gè)小段 0010H,0011H,0012H,001EH,001FH 0020H,0021H,0022H,002EH,002FH FFF0H, FFF1H, FFF2H, , FFFEH, FFFFH 其中:第一列就是每個(gè)小段的首地址。第31頁(yè),共42頁(yè)。每個(gè)小段首地址特征:在16進(jìn)制表示的地址中,最低位為0H (即20位地址的低4位為0000B)。在1M字節(jié)的地址空間,共有64K

18、個(gè)小段其首地址為:0000 0H0001 0H4123 0H4124 0HFFFE 0HFFFF 0H第32頁(yè),共42頁(yè)。 20位物理地址形成 物理地址: 在1M字節(jié)存儲(chǔ)器里,每個(gè)存儲(chǔ)單元都有一個(gè)唯一的20位地址作為該存儲(chǔ)單元的物理地址。CPU訪(fǎng)問(wèn)存儲(chǔ)器時(shí),必須先確定所要訪(fǎng)問(wèn)的存儲(chǔ)單元的物理地址才能取出(或存入)該單元中的內(nèi)容。 20位物理地址形成:由16位段地址和16位偏移地址組成。段地址:只取段起始地址高16位值。偏移地址:指在段內(nèi)某內(nèi)存單元物理地址相對(duì)段起始地址的偏移值。第33頁(yè),共42頁(yè)。物理地址計(jì)算方法:即把段地址左移4位再加上偏移地址值形成物理地址,寫(xiě)成: 物理地址= 16d段地址

19、+偏移地址。 * 每個(gè)存儲(chǔ)單元只有唯一的物理地址。 但可由不同的段地址和不同的偏移地址組成。第34頁(yè),共42頁(yè)。(2)、邏輯地址與物理地址 邏輯地址與物理地址概念邏輯地址與物理地址概念如下頁(yè)圖所示。邏輯地址:由段基址和段內(nèi)偏移地址組成的地址, 段基址和段內(nèi)偏移地址都是16位的無(wú)符號(hào)二進(jìn)制數(shù), 在程序設(shè)計(jì)時(shí)使用。物理地址:存儲(chǔ)器的絕對(duì)地址(20位的實(shí)際地址), 范圍從00000HFFFFFH , 是由CPU訪(fǎng)問(wèn)存儲(chǔ)器時(shí)由地址總線(xiàn)發(fā)出的地址。存儲(chǔ)器管理:將程序中邏輯地址轉(zhuǎn)移為物理地址的機(jī)構(gòu)。第35頁(yè),共42頁(yè)。 物理地址的形成.20000H25F60H25F61H25F62H25F63H2000H段基址段內(nèi)偏移地址5F62H邏輯地址與物理地址段基址0 0 0 03 2 1 015 0偏移地址基址加法器物理地址015019邏輯地址:2000:5F62H第36頁(yè),共42頁(yè)。邏輯地址來(lái)源(ES) 16d+(DI)DI無(wú)ES目標(biāo)字符串(DS) 16d+(SI)SICS,ES,SSDS源字符串(DS )16d+EA有效地址EACS,ES,SSDS存取變量(SS) 16d+EA有效地址EACS,DS,ESSSBP間址(SS) 16d+(SP)SP無(wú)SS堆棧操作(CS

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論