微機(jī)原理2-1指令系統(tǒng)編程結(jié)構(gòu).ppt
《微機(jī)原理2-1指令系統(tǒng)編程結(jié)構(gòu).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《微機(jī)原理2-1指令系統(tǒng)編程結(jié)構(gòu).ppt(70頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第2章,第2章:2.1微處理器的內(nèi)部結(jié)構(gòu),從應(yīng)用角度(不是從內(nèi)部工作原理)展開典型8位微處理器的基本結(jié)構(gòu)8088/8086的功能結(jié)構(gòu)8088/8086的寄存器結(jié)構(gòu)8088/8086的存儲(chǔ)器結(jié)構(gòu)為學(xué)習(xí)指令系統(tǒng)打好基礎(chǔ),例如:關(guān)心用戶“可編程”寄存器,不關(guān)心無(wú)法操縱的“透明”寄存器,第2章:2.1.1一般微處理器的基本結(jié)構(gòu),1.算術(shù)邏輯單元(運(yùn)算器)2.寄存器組3.指令處理單元(控制器),微處理器的一般結(jié)構(gòu),運(yùn)算器算術(shù)邏輯運(yùn)算,由加法器和(ALU)一些輔助邏輯電路組成指令流控制控制器時(shí)序控制,產(chǎn)生節(jié)拍定時(shí)信號(hào)指令譯碼和操作控制寄存器組存放臨時(shí)數(shù)據(jù)、運(yùn)算的中間結(jié)果、運(yùn)算特征、操作數(shù)地址,,,,,性能:8位→16位→32位(主流)→64位(趨勢(shì)),主要部件,,指令流水線,,,取指令,,指令譯碼,,取操作數(shù),,執(zhí)行指令,,存放結(jié)果,,,,,CPU執(zhí)行一條指令的過(guò)程類似于工廠生產(chǎn)流水線,被分解為多個(gè)小的步驟,稱為指令流水線。,原料,調(diào)度分配,生產(chǎn)線,成品,倉(cāng)庫(kù),出廠,,,,,,數(shù)據(jù)和程序指令,控制器的調(diào)度分配,ALU等功能部件,處理后的數(shù)據(jù),存儲(chǔ)器,輸出,,,指令流水線有兩種運(yùn)作方式:串行方式:取指令和執(zhí)行指令在不同的時(shí)刻按順序執(zhí)行。并行方式:取指令和執(zhí)行指令可同時(shí)執(zhí)行,需要有能并行工作的硬件的支持。,串行工作方式,8086以前的CPU采用串行工作方式,,,,取指令1,執(zhí)行1,取指令2,,執(zhí)行2,,,CPU,BUS,忙碌,忙碌,,取指令3,,執(zhí)行3,,忙碌,,,,空閑,空閑,空閑,,,,,,,,t1,t0,t2,t3,t4,t5,6個(gè)周期執(zhí)行了3條指令,并行工作方式,8086CPU采用并行工作方式,,,,,取指令1,取指令2,,,取指令3,取指令4,執(zhí)行1,執(zhí)行2,,執(zhí)行3,BUS,,執(zhí)行4,CPU,,,,,,,,t1,t0,t2,t3,t4,t5,,取指令5,,執(zhí)行5,6個(gè)周期執(zhí)行了5條指令,第2章:2.1.28088/8086的功能結(jié)構(gòu),8088的內(nèi)部結(jié)構(gòu)從功能上分成兩個(gè)單元1.總線接口單元BIU管理8088與系統(tǒng)總線的接口負(fù)責(zé)CPU對(duì)存儲(chǔ)器和外設(shè)進(jìn)行訪問(wèn)2.執(zhí)行單元EU負(fù)責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運(yùn)算兩個(gè)單元相互獨(dú)立,分別完成各自操作,還可以并行執(zhí)行,實(shí)現(xiàn)指令預(yù)?。ㄖ噶钭x取和執(zhí)行的流水線操作),執(zhí)行單元,功能:執(zhí)行指令,具體操作如下,,,,,從指令中取指令代碼譯碼完成指定的操作結(jié)果保存到目的操作數(shù)運(yùn)算特征保存在標(biāo)志寄存器FLAGS(僅對(duì)影響標(biāo)志的指令),總線接口單元,功能:從內(nèi)存中取指令到指令隊(duì)列;負(fù)責(zé)與內(nèi)存或I/O接口之間的數(shù)據(jù)傳送;在執(zhí)行轉(zhuǎn)移指令時(shí),BIU將清除指令隊(duì)列,然后從轉(zhuǎn)移的目的地址處開始取指令并重新填充指令隊(duì)列。,8086結(jié)構(gòu)特點(diǎn)小結(jié),有EU和BIU兩個(gè)獨(dú)立的、同時(shí)運(yùn)行的部件二者通過(guò)IPQ構(gòu)成一個(gè)兩工位流水線指令被EU和BIU按流水線方式處理:提高了CPU的運(yùn)行速度;提高了CPU的執(zhí)行效率;降低了對(duì)存儲(chǔ)器存取速度的要求。,第2章:2.1.38088/8086的寄存器結(jié)構(gòu),8088/8086的寄存器組有8個(gè)通用寄存器4個(gè)段寄存器1個(gè)標(biāo)志寄存器1個(gè)指令指針寄存器他們均為16位!,圖示,匯編語(yǔ)言程序員看到的處理器,就是寄存器所以,一定要熟悉這些寄存器的名稱和作用,第2章:1.通用寄存器,8088有8個(gè)通用的16位寄存器(1)數(shù)據(jù)寄存器:AXBXCXDX(2)變址寄存器:SIDI(3)指針寄存器:BPSP4個(gè)數(shù)據(jù)寄存器還可以分成高8位和低8位兩個(gè)獨(dú)立的寄存器,這樣又形成8個(gè)通用的8位寄存器AX:AHALBX:BHBLCX:CHCLDX:DHDL,第2章:(1)數(shù)據(jù)寄存器,AX稱為累加器(Accumulator)使用頻度最高。用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等BX稱為基址寄存器(BaseaddressRegister)常用做存放存儲(chǔ)器地址CX稱為計(jì)數(shù)器(Counter)作為循環(huán)和串操作等指令中的隱含計(jì)數(shù)器DX稱為數(shù)據(jù)寄存器(Dataregister)常用來(lái)存放雙字長(zhǎng)數(shù)據(jù)的高16位,或存放外設(shè)端口地址,第2章:(1)數(shù)據(jù)寄存器,AX稱為累加器(Accumulator)使用頻度最高。用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等BX稱為基址寄存器(BaseaddressRegister)常用做存放存儲(chǔ)器地址CX稱為計(jì)數(shù)器(Counter)作為循環(huán)和串操作等指令中的隱含計(jì)數(shù)器DX稱為數(shù)據(jù)寄存器(Dataregister)常用來(lái)存放雙字長(zhǎng)數(shù)據(jù)的高16位,或存放外設(shè)端口地址,第2章:(2)變址寄存器,16位變址寄存器SI和DI常用于存儲(chǔ)器變址尋址方式時(shí)提供地址SI是源地址寄存器(SourceIndex)DI是目的地址寄存器(DestinationIndex)在串操作類指令中,SI、DI還有較特殊的用法,現(xiàn)在不必完全理解,以后會(huì)詳細(xì)展開,第2章:(3)指針寄存器,指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù)SP為堆棧指針寄存器(StackPointer),指示堆棧段棧頂?shù)奈恢茫ㄆ频刂罚〣P為基址指針寄存器(BasePointer),表示數(shù)據(jù)在堆棧段中的基地址SP和BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲(chǔ)單元地址,堆棧(Stack)是主存中一個(gè)特殊的區(qū)域,采用“先進(jìn)后出”或“后進(jìn)先出”存取操作方式、而不是隨機(jī)存取方式。用8088/8086形成的微機(jī)系統(tǒng)中,堆棧區(qū)域被稱為堆棧段,第2章:2.指令指針寄存器,IP(InstructionPointer)為指令指針寄存器,指示主存儲(chǔ)器指令的位置隨著指令的執(zhí)行,IP將自動(dòng)修改以指示下一條指令所在的存儲(chǔ)器位置IP寄存器是一個(gè)專用寄存器IP寄存器與CS段寄存器聯(lián)合使用以確定下一條指令的存儲(chǔ)單元地址,第2章:3.標(biāo)志寄存器,標(biāo)志(Flag)用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式8088處理器的各種標(biāo)志形成了一個(gè)16位的標(biāo)志寄存器FLAGS(程序狀態(tài)字PSW寄存器),程序設(shè)計(jì)需要利用標(biāo)志的狀態(tài),第2章:標(biāo)志寄存器-分類,狀態(tài)標(biāo)志--用來(lái)記錄程序運(yùn)行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它CFZFSFPFOFAF控制標(biāo)志--可由程序根據(jù)需要用指令設(shè)置,用于控制處理器執(zhí)行指令的方式DFIFTF,標(biāo)志寄存器FLAGS,第2章:進(jìn)位標(biāo)志CF(CarryFlag),當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)位(加法)或借位(減法)時(shí),進(jìn)位標(biāo)志置1,即CF=1;否則CF=0,3AH+7CH=B6H,沒(méi)有進(jìn)位:CF=0AAH+7CH=(1)26H,有進(jìn)位:CF=1,第2章:零標(biāo)志ZF(ZeroFlag),若運(yùn)算結(jié)果為0,則ZF=1;否則ZF=0,3AH+7CH=B6H,結(jié)果不是零:ZF=084H+7CH=(1)00H,結(jié)果是零:ZF=1,注意:ZF為1表示的結(jié)果是0,第2章:符號(hào)標(biāo)志SF(SignFlag),運(yùn)算結(jié)果最高位為1,則SF=1;否則SF=0,3AH+7CH=B6H,最高位D7=1:SF=184H+7CH=(1)00H,最高位D7=0:SF=0,有符號(hào)數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號(hào)所以,最高有效位就是符號(hào)標(biāo)志的狀態(tài),第2章:奇偶標(biāo)志PF(ParityFlag),當(dāng)運(yùn)算結(jié)果最低字節(jié)中“1”的個(gè)數(shù)為零或偶數(shù)時(shí),PF=1;否則PF=0,3AH+7CH=B6H=10110110B結(jié)果中有5個(gè)“1”,是奇數(shù):PF=0,PF標(biāo)志僅反映最低8位中“1”的個(gè)數(shù)是偶或奇,即使是進(jìn)行16位字操作,第2章:溢出標(biāo)志OF(OverflowFlag),若算術(shù)運(yùn)算的結(jié)果有溢出,則OF=1;否則OF=0,3AH+7CH=B6H,產(chǎn)生溢出:OF=1AAH+7CH=(1)26H,沒(méi)有溢出:OF=0,?,第2章:什么是溢出,處理器內(nèi)部以補(bǔ)碼表示有符號(hào)數(shù)8位表達(dá)的整數(shù)范圍是:+127~-12816位表達(dá)的范圍是:+32767~-32768如果運(yùn)算結(jié)果超出這個(gè)范圍,就產(chǎn)生了溢出有溢出,說(shuō)明有符號(hào)數(shù)的運(yùn)算結(jié)果不正確,3AH+7CH=B6H,就是58+124=182,已經(jīng)超出-128~+127范圍,產(chǎn)生溢出,故OF=1;補(bǔ)碼B6H表達(dá)真值是-74,顯然運(yùn)算結(jié)果也不正確,B6H=10110110B,最高位為1,作為有符號(hào)數(shù)是負(fù)數(shù)對(duì)B6H求反加1等于:01001001B+1=01001010B=4AH=74所以,B6H表達(dá)有符號(hào)數(shù)的真值為-74,第2章:溢出和進(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)不正確,?,第2章:溢出和進(jìn)位的對(duì)比,例1:3AH+7CH=B6H無(wú)符號(hào)數(shù)運(yùn)算:58+124=182范圍內(nèi),無(wú)進(jìn)位有符號(hào)數(shù)運(yùn)算:58+124=182范圍外,有溢出,例2:AAH+7CH=(1)26H無(wú)符號(hào)數(shù)運(yùn)算:170+124=294范圍外,有進(jìn)位有符號(hào)數(shù)運(yùn)算:-86+124=28范圍內(nèi),無(wú)溢出,,,,n=8bit帶符號(hào)數(shù)(-128~127)無(wú)符號(hào)數(shù)(0~255),溢出的判斷,判斷運(yùn)算結(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é)果顯然不正確,例1:3AH+7CH=B6H溢出例2:AAH+7CH無(wú)溢出例3:3AH-7CH無(wú)溢出例4:AAH-7CH=2DH溢出,溢出判別(overflow),,兩個(gè)正數(shù)的和為負(fù)數(shù),兩個(gè)負(fù)數(shù)的和為正數(shù),,,第2章:溢出和進(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ù),則要注意是否溢出,第2章:輔助進(jìn)位標(biāo)志AF(AuxiliaryCarryFlag),3AH+7CH=B6H,D3有進(jìn)位:AF=1,運(yùn)算時(shí)D3位(低半字節(jié))有進(jìn)位或借位時(shí),AF=1;否則AF=0,這個(gè)標(biāo)志主要由處理器內(nèi)部使用,用于十進(jìn)制算術(shù)運(yùn)算調(diào)整指令中,用戶一般不必關(guān)心,第2章:方向標(biāo)志DF(DirectionFlag),用于串操作指令中,控制地址的變化方向:設(shè)置DF=0,存儲(chǔ)器地址自動(dòng)增加;設(shè)置DF=1,存儲(chǔ)器地址自動(dòng)減少,CLD指令復(fù)位方向標(biāo)志:DF=0STD指令置位方向標(biāo)志:DF=1,第2章:中斷允許標(biāo)志IF(Interrupt-enableFlag),控制可屏蔽中斷是否可以被處理器響應(yīng):設(shè)置IF=1,則允許中斷;設(shè)置IF=0,則禁止中斷,CLI指令復(fù)位中斷標(biāo)志:IF=0STI指令置位中斷標(biāo)志:IF=1,第2章:陷阱標(biāo)志TF(TrapFlag),用于控制處理器進(jìn)入單步操作方式:設(shè)置TF=0,處理器正常工作;設(shè)置TF=1,處理器單步執(zhí)行指令,單步執(zhí)行指令——處理器在每條指令執(zhí)行結(jié)束時(shí),便產(chǎn)生一個(gè)編號(hào)為1的內(nèi)部中斷這種內(nèi)部中斷稱為單步中斷所以TF也稱為單步標(biāo)志利用單步中斷可對(duì)程序進(jìn)行逐條指令的調(diào)試這種逐條指令調(diào)試程序的方法就是單步調(diào)試,第2章:2.38088/8086的存儲(chǔ)器結(jié)構(gòu),存儲(chǔ)器是計(jì)算機(jī)存儲(chǔ)信息的地方。掌握數(shù)據(jù)存儲(chǔ)格式,以及存儲(chǔ)器的分段管理對(duì)以后的匯編程序設(shè)計(jì)非常重要你能區(qū)別寄存器、存儲(chǔ)器(主存)、外存(包括硬盤、光盤、磁帶等存儲(chǔ)介質(zhì))嗎?,答案,第2章:補(bǔ)充概念1:寄存器、存儲(chǔ)器和外存的區(qū)別,寄存器是微處理器(CPU)內(nèi)部暫存數(shù)據(jù)的存儲(chǔ)單元,以名稱表示,例如:AX,BX..….等存儲(chǔ)器也就是平時(shí)所說(shuō)的主存,也叫內(nèi)存,可直接與CPU進(jìn)行數(shù)據(jù)交換。主存利用地址區(qū)別外存主要指用來(lái)長(zhǎng)久保存數(shù)據(jù)的外部存儲(chǔ)介質(zhì),常見的有硬盤、光盤、磁帶、U盤等。外存的數(shù)據(jù)只能通過(guò)主存間接地與CPU交換數(shù)據(jù)程序及其數(shù)據(jù)可以長(zhǎng)久存放在外存,在運(yùn)行需要時(shí)才進(jìn)入主存,第2章:補(bǔ)充概念2:數(shù)據(jù)的存儲(chǔ)格式,計(jì)算機(jī)中信息的單位二進(jìn)制位Bit:存儲(chǔ)一位二進(jìn)制數(shù):0或1字節(jié)Byte:8個(gè)二進(jìn)制位,D7~D0字Word:16位,2個(gè)字節(jié),D15~D0雙字DWord:32位,4個(gè)字節(jié),D31~D0最低有效位LSB:數(shù)據(jù)的最低位,D0位最高有效位MSB:數(shù)據(jù)的最高位,對(duì)應(yīng)字節(jié)、字、雙字分別指D7、D15、D31位,圖示,第2章:補(bǔ)充概念3:存儲(chǔ)單元及其存儲(chǔ)內(nèi)容,每個(gè)存儲(chǔ)單元都有一個(gè)編號(hào);被稱為存儲(chǔ)器地址每個(gè)存儲(chǔ)單元存放一個(gè)字節(jié)的內(nèi)容,圖示,0002H單元存放有一個(gè)數(shù)據(jù)34H表達(dá)為[0002H]=34H,76543210,100111110000H(0000H)=9FH,001001100001H(0001H)=26H,000111100002H(0002H)=1EH,110101110003H(0003H)=0D7H,存儲(chǔ)器,1514131211109876543210,字,,,高位字節(jié)低位字節(jié),10011111,00100110,(0000H)=269FH,第2章:補(bǔ)充概念4:多字節(jié)數(shù)據(jù)存放方式,多字節(jié)數(shù)據(jù)在存儲(chǔ)器中占連續(xù)的多個(gè)存儲(chǔ)單元:存放時(shí),低字節(jié)存入低地址,高字節(jié)存入高地址;表達(dá)時(shí),用它的低地址表示多字節(jié)數(shù)據(jù)占據(jù)的地址空間。,圖2-5中0002H“字”單元的內(nèi)容為:[0002H]=1234H0002H號(hào)“雙字”單元的內(nèi)容為:[0002H]=78561234H,80 x86處理器采用“低對(duì)低、高對(duì)高”的存儲(chǔ)形式,圖示,第2章:補(bǔ)充概念5:數(shù)據(jù)的地址對(duì)齊,同一個(gè)存儲(chǔ)器地址可以是字節(jié)單元地址、字單元地址等等(視具體情況來(lái)確定)字單元安排在偶地址(xxx0B)被稱為“地址對(duì)齊(Align)”對(duì)于不對(duì)齊地址的數(shù)據(jù),處理器訪問(wèn)時(shí),需要額外的訪問(wèn)存儲(chǔ)器時(shí)間應(yīng)該將數(shù)據(jù)的地址對(duì)齊,以取得較高的存取速度,第2章:2.3.1存儲(chǔ)器的分段管理,8088CPU有20條地址線最大可尋址空間為220=1MB物理地址范圍從00000H~FFFFFH一個(gè)存儲(chǔ)單元除具有一個(gè)唯一的物理地址問(wèn)題?哪個(gè)寄存器能夠放得下20位的地址?用分段的方法解決。,8088CPU將1MB空間分成許多邏輯段(Segment)每個(gè)段最大長(zhǎng)度限制為64KB段首地址的最低4位一定為0000B=0H,段起始于存儲(chǔ)器內(nèi)16字節(jié)整倍數(shù)的邊界處。段是存儲(chǔ)器中的一塊區(qū)域用段和偏移的組合訪問(wèn)存儲(chǔ)單元每個(gè)段最大為64KB,最小為16B(為什么?)所有存儲(chǔ)單元的地址都由段地址加偏移地址組成段地址被裝入段寄存器中以供尋址使用偏移地址用于在64KB存儲(chǔ)器段內(nèi)選擇任一單元,1MB空間的分段,每個(gè)段最大為64KB,最小為16B,1MB空間最多能分成多少個(gè)段?每隔16個(gè)存儲(chǔ)單元就可以開始一個(gè)段所以1MB最多可以有:22016=216=64K個(gè)段1MB空間最少能分成多少個(gè)段?每隔64K個(gè)存儲(chǔ)單元開始一個(gè)段所以1MB最少可以有:220216=16個(gè)段,第2章:物理地址和邏輯地址,8088CPU存儲(chǔ)系統(tǒng)中,對(duì)應(yīng)每個(gè)物理存儲(chǔ)單元都有一個(gè)唯一的20位編號(hào),就是物理地址,從00000H~FFFFFH,存儲(chǔ)單元的硬件地址分段后在用戶編程時(shí),采用邏輯地址,就是段和偏移形式的地址:段基地址:段內(nèi)偏移地址,分隔符,物理地址14700H邏輯地址1460H:100H,,段和偏移,設(shè)段起始地址=60000H段地址偏移地址0~FFFFH,,,,,,,,6A000H,12H,60000H,6000,,段寄存器,,,偏移地址=A000H,,,,邏輯地址用于匯編語(yǔ)言程序設(shè)計(jì)以下地址是邏輯地址的例子:2500H:0100H其中:段地址2500H偏移地址0100H段地址說(shuō)明邏輯段在主存中的起始位置,偏移地址說(shuō)明主存單元距離段起始位置的偏移量,第2章:物理地址和邏輯地址的轉(zhuǎn)換,將邏輯地址中的段地址左移4位,加上偏移地址就得到20位物理地址物理地址=段地址16(或段地址左移4位)+偏移地址一個(gè)物理地址可以有多個(gè)邏輯地址,邏輯地址1460H:100H、1380H:0F00H物理地址14700H14700H,第2章:段寄存器,8088有4個(gè)16位段寄存器CS(代碼段)指明代碼段的起始地址SS(堆棧段)指明堆棧段的起始地址DS(數(shù)據(jù)段)指明數(shù)據(jù)段的起始地址ES(附加段)指明附加段的起始地址每個(gè)段寄存器用來(lái)確定一個(gè)邏輯段的起始地址,每種邏輯段均有各自的用途,默認(rèn)段和偏移寄存器,8086規(guī)定了訪問(wèn)存儲(chǔ)器段的規(guī)則:此規(guī)則定義了段地址寄存器和偏移地址寄存器的組合方式,其默認(rèn)規(guī)則如下表:,第2章:代碼段寄存器CS(CodeSegment),代碼段用來(lái)存放程序的指令序列代碼段寄存器CS存放代碼段的段地址指令指針寄存器IP指示下條指令的偏移地址處理器利用CS:IP取得下一條要執(zhí)行的指令,第2章:數(shù)據(jù)段寄存器DS(DataSegment),數(shù)據(jù)段存放運(yùn)行程序所用的數(shù)據(jù)數(shù)據(jù)段寄存器DS存放數(shù)據(jù)段的段地址各種主存尋址方式(有效地址EA)得到存儲(chǔ)器中操作數(shù)的偏移地址處理器利用DS:EA存取數(shù)據(jù)段中的數(shù)據(jù),第2章:附加段寄存器ES(ExtraSegment),附加段是附加的數(shù)據(jù)段,也保存數(shù)據(jù):附加段寄存器ES存放附加段的段地址各種主存尋址方式(有效地址EA)得到存儲(chǔ)器中操作數(shù)的偏移地址處理器利用ES:EA存取附加段中的數(shù)據(jù)串操作指令將附加段作為其目的操作數(shù)的存放區(qū)域,第2章:堆棧段寄存器SS(StackSegment),堆棧段確定堆棧所在的主存區(qū)域堆棧段寄存器SS存放堆棧段的段地址堆棧指針寄存器SP指示堆棧棧頂?shù)钠频刂诽幚砥骼肧S:SP操作堆棧頂?shù)臄?shù)據(jù),第2章:如何分配各個(gè)邏輯段,程序的指令序列必須安排在代碼段程序使用的堆棧一定在堆棧段程序中的數(shù)據(jù)默認(rèn)是安排在數(shù)據(jù)段,也經(jīng)常安排在附加段,尤其是串操作的目的區(qū)必須是附加段數(shù)據(jù)的存放比較靈活,實(shí)際上可以存放在任何一種邏輯段中,演示,例1已知CS=1055H,DS=250AHES=2EF0H,SS=8FF0H數(shù)據(jù)段中某操作數(shù)的偏移地址=0204H各段首地址=?畫出各段在內(nèi)存中的分布該操作數(shù)的物理地址=?這個(gè)例子說(shuō)明:段與段可以不連續(xù)段之間可以重疊,,,,10550H,250A0H,2EF00H,8FF00H,,,,,,,,DS段,ES段,,,,,,,,,,,SS段,CS段,,例2:,設(shè)當(dāng)前執(zhí)行的程序中某條指令的物理地址為5A1F6H,則程序所在的段的段地址=?當(dāng)前CS的內(nèi)容為多少?解:(有多個(gè)解,求出任意一個(gè)即可)5A1F6H=5A10H10H+00F6H所以,段地址=5A10H,CS的內(nèi)容為5A10H想一想,還有哪些解?,思考題:設(shè)當(dāng)前數(shù)據(jù)段位于存儲(chǔ)器的A8000H到B7FFFH的地址空間,問(wèn)DS的內(nèi)容應(yīng)是什么才能訪問(wèn)該數(shù)據(jù)段的所有存儲(chǔ)單元?,堆棧及堆棧段的使用,堆棧:內(nèi)存中一個(gè)特殊區(qū)域,用于存放需要保護(hù)的數(shù)據(jù)。特點(diǎn):(1)一端固定,另一端活動(dòng)(2)存取數(shù)據(jù)的原則:“先進(jìn)后出”(3)進(jìn)或出棧只能是字?jǐn)?shù)據(jù),不能是字節(jié)數(shù)據(jù)(4)棧的最大容量64KB(5)堆棧通過(guò)SS(段地址)和SP(偏移地址)來(lái)訪問(wèn)(6)堆棧指針SP總是指向棧頂,它的內(nèi)容是相對(duì)SS的地址偏移量(7)數(shù)據(jù)入棧時(shí),棧頂均由高地址向低地址變化數(shù)據(jù)出棧時(shí),棧頂均由低地址向高地址變化常用于響應(yīng)中斷子程序調(diào)用參數(shù)傳遞,,,例3:,若已知(SS)=1000H(SP)=2000H則堆棧段的段起始地址=?棧頂?shù)刂??若該段最后一個(gè)單元地址為10100H則棧底單元的偏移地址=?,,,,,,,,段起始,,,,,,棧底,棧頂,,堆棧段,,,,,,,第2章:寄存器的總結(jié),8088有8個(gè)8位通用寄存器、8個(gè)16位通用寄存器8088有6個(gè)狀態(tài)標(biāo)志和3個(gè)控制標(biāo)志8088將1MB存儲(chǔ)空間分段管理,有4個(gè)段寄存器,對(duì)應(yīng)4種邏輯段8088有4個(gè)段超越前綴指令,用于明確指定數(shù)據(jù)所在的邏輯段,熟悉上述內(nèi)容后,就可以進(jìn)入下節(jié),8088的內(nèi)部結(jié)構(gòu),,8088的指令執(zhí)行過(guò)程,,圖2-58088的存儲(chǔ)格式,低地址,,,LSB,,MSB,,,,,邏輯段的分配,,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 微機(jī) 原理 指令系統(tǒng) 編程 結(jié)構(gòu)
鏈接地址:http://m.appdesigncorp.com/p-12166413.html