第3章微機(jī)系統(tǒng)中的微處理器課件_第1頁(yè)
第3章微機(jī)系統(tǒng)中的微處理器課件_第2頁(yè)
第3章微機(jī)系統(tǒng)中的微處理器課件_第3頁(yè)
第3章微機(jī)系統(tǒng)中的微處理器課件_第4頁(yè)
第3章微機(jī)系統(tǒng)中的微處理器課件_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

微處理器的是組成計(jì)算機(jī)系統(tǒng)的核心部件,其基本功能為:(1)支持功能完善的指令系統(tǒng),進(jìn)行各種算術(shù)、邏輯運(yùn)算,通過(guò)程序完成復(fù)雜的科學(xué)計(jì)算。(2)支持各種結(jié)構(gòu)的程序的執(zhí)行,如程序的分支、循環(huán)、嵌套、子程序的調(diào)用和返回、中端服務(wù)程序。(3)控制與存儲(chǔ)器、外設(shè)等相連接,組成完整的微機(jī)系統(tǒng)。3.1微處理器的一般結(jié)構(gòu)3.1.1微處理器的內(nèi)部結(jié)構(gòu)一、微處理器的功能程序計(jì)數(shù)器(PC)指令寄存器(IR)指令譯碼器(ID)控制邏輯部件堆棧指示器(SP)處理機(jī)狀態(tài)字(PSW)控制器I/O控制邏輯工作寄存器地址寄存器數(shù)據(jù)寄存器......ALU3.1.1微處理器的內(nèi)部結(jié)構(gòu)指令的執(zhí)行過(guò)程3.1.1微處理器的內(nèi)部結(jié)構(gòu)

外部結(jié)構(gòu)——輸入/輸出引腳——微處理器級(jí)總線

微處理器通過(guò)微處理器級(jí)總線與外部部件和設(shè)備相聯(lián)系。1.總線的功能⑴和存儲(chǔ)器之間交換信息⑵和I/O設(shè)備之間交換信息⑶為了系統(tǒng)工作而接收和輸出必要的信號(hào),如輸入時(shí)鐘脈沖、復(fù)位信號(hào)、電源和接地等2.總線的分類(lèi)⑴數(shù)據(jù)總線(DataBus)⑵地址總線(AddressBus)⑶控制總線(ControlBus)一.總線功能與分類(lèi)3.1.2微處理器的外部結(jié)構(gòu)存儲(chǔ)器通常由幾個(gè)模塊組成,每個(gè)模塊有幾千個(gè)單元,每個(gè)存儲(chǔ)單元有唯一的存儲(chǔ)器地址與其對(duì)應(yīng)。二.存儲(chǔ)器和I/O地址空間I/O接口——保證數(shù)據(jù)、控制與狀態(tài)信息在CPU和I/O設(shè)備之間正常傳送的電路。I/O和CPU之間的通信利用稱(chēng)為I/O端口的寄存器來(lái)完成。對(duì)應(yīng)一個(gè)I/O設(shè)備的I/O接口,可能包括幾個(gè)I/O端口,每個(gè)I/O端口都有一個(gè)唯一的I/O地址與其對(duì)應(yīng)。3.1.2微處理器的外部結(jié)構(gòu)

存儲(chǔ)單元和I/O端口以字節(jié)為單位存放數(shù)據(jù),每個(gè)字節(jié)對(duì)應(yīng)一個(gè)標(biāo)識(shí)地址。地址總線的條數(shù)即為二進(jìn)制地址碼的位數(shù),它可能表示的不同地址的集合稱(chēng)為地址空間。

地址碼的位數(shù)決定了地址空間的大?。?n二.存儲(chǔ)器和I/O地址空間單地址空間:對(duì)存儲(chǔ)器和I/O端口統(tǒng)一進(jìn)行編址。雙地址空間:對(duì)存儲(chǔ)器和I/O端口獨(dú)立進(jìn)行編址。存儲(chǔ)器:高位——選擇模塊,低位——選擇模塊內(nèi)的存儲(chǔ)單元。I/O設(shè)備:高位——選擇I/O接口,低位——選擇I/O端口。3.1.2微處理器的外部結(jié)構(gòu)8086由兩個(gè)獨(dú)立的邏輯單元組成,即總線接口單元(BIU)和執(zhí)行單元(EU)。

BIU的任務(wù):執(zhí)行總線操作。(1)訪問(wèn)存儲(chǔ)器,包括取指令、取操作數(shù)、存結(jié)果等。(2)與I/O之間的信息傳輸。

EU的任務(wù):執(zhí)行指令,進(jìn)行全部算術(shù)和邏輯運(yùn)算、完成偏移地址的計(jì)算,向BIU提供指令執(zhí)行結(jié)果的數(shù)據(jù)和訪問(wèn)存儲(chǔ)器需要的偏移地址,并對(duì)通用寄存器和標(biāo)志寄存器進(jìn)行管理。3.28086的功能結(jié)構(gòu)123456內(nèi)部寄存器

IP

ES

SSDSCS總線控制電路EU控制器∑ALU標(biāo)志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令隊(duì)列執(zhí)行單元(EU)總線接口單元(BIU)16位20位16位8位ALU數(shù)據(jù)總線數(shù)據(jù)總線8086總線3.28086的內(nèi)部結(jié)構(gòu)(3)EU取得指令,譯碼并執(zhí)行指令。若指令需要取操作數(shù)或存操作結(jié)果,需要訪問(wèn)存儲(chǔ)器或I/O,EU向BIU發(fā)出訪問(wèn)總線請(qǐng)求。當(dāng)BIU接到EU的總線請(qǐng)求,若正忙,則須等BIU執(zhí)行完當(dāng)前的總線周期,才能響應(yīng)EU的請(qǐng)求;若BIU空閑,則立即執(zhí)行EU申請(qǐng)總線的請(qǐng)求。(1)BIU的指令隊(duì)列有兩個(gè)或兩個(gè)以上字節(jié)為空時(shí),BIU自動(dòng)啟動(dòng)總線周期,取指填充指令隊(duì)列。直至隊(duì)列滿,進(jìn)入空閑狀態(tài)。(2)EU每執(zhí)行完一條指令,從指令隊(duì)列的隊(duì)首取指。特殊情況:系統(tǒng)初始化后,指令隊(duì)列為空,EU等待BIU從內(nèi)存取指,填充指令隊(duì)列。(4)EU執(zhí)行轉(zhuǎn)移、調(diào)用和返回指令時(shí),若下一條指令不在指令隊(duì)列中,則隊(duì)列被自動(dòng)清除,BIU根據(jù)本條指令執(zhí)行情況重新取指填充指令隊(duì)列。流水線技術(shù)原則取指令——取操作數(shù)(如果需要)——執(zhí)行指令——寫(xiě)入存儲(chǔ)器。8086首次引入了流水線技術(shù),執(zhí)行指令和總線訪問(wèn)可以同時(shí)進(jìn)行,提高了總線利用率。8086/8088以前的CPU指令流水線3.38086的寄存器結(jié)構(gòu)

AXAHALBXBHBL數(shù)據(jù)寄存器

CXCHCL (8/16位)DXDHDL

通用寄存器

SP堆棧指針

BP基址指針指針/變址寄存器

SI源變址 (16位)

DI目的變址

CS代碼段

DS數(shù)據(jù)段段寄存器

SS堆棧段 (16位)

ES附加段

專(zhuān)用寄存器

IP指令指針

控制寄存器

FLAG標(biāo)志寄存器 (16位)

3.3.1通用寄存器組一、數(shù)據(jù)寄存器(1)16位數(shù)據(jù)寄存器AX——累加器,使用頻度最高,用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等;BX——基址寄存器,常用做存放存儲(chǔ)器基地址;CX——計(jì)數(shù)器,循環(huán)和串操作等指令中的隱含計(jì)數(shù)器;DX——數(shù)據(jù)寄存器,常用來(lái)存放雙字長(zhǎng)數(shù)據(jù)的高16位,或存放外設(shè)端口地址。(2)8位數(shù)據(jù)寄存器:AHBHCHDHALBLCLDL3.3.1通用寄存器組二、地址指針和變址寄存器變址寄存器常用于存儲(chǔ)器尋址時(shí)提供地址:SI——源變址寄存器DI——目的變址寄存器指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù):SP——堆棧指針,指示棧頂?shù)钠频刂?。SP不能再用于其他目的,具有專(zhuān)用目的。BP——基址指針,表示數(shù)據(jù)在堆棧段中的基地址。SP和BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲(chǔ)單元地址。8086有4個(gè)16位段寄存器:

CS——CodeSegment,執(zhí)行程序所在段的段地址SS——StackSegment,堆棧段的段地址DS——DataSegment,數(shù)據(jù)段的段地址ES——ExtraSegment,附加段的段地址3.3.2段寄存器組3.3.3控制寄存器組指令指針寄存器IP(InstructionPointer):

指示下一條要執(zhí)行指令的偏移地址,計(jì)算機(jī)通過(guò)CS和IP來(lái)控制指令序列的執(zhí)行流程。IP寄存器是一個(gè)專(zhuān)用寄存器。標(biāo)志寄存器(FLAG):狀態(tài)標(biāo)志——記錄程序運(yùn)行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它。CFZFSFPFOFAF

控制標(biāo)志——可由程序根據(jù)需要用指令設(shè)置,用于控制處理器執(zhí)行指令的方式。DFIFTF3.3.3控制寄存器組標(biāo)志寄存器(FLAG)D15D0OFDFIFTFSFZFAFPFCF進(jìn)位標(biāo)志奇偶標(biāo)志輔助進(jìn)位標(biāo)志符號(hào)標(biāo)志單步中斷中斷允許方向標(biāo)志溢出標(biāo)志1-有進(jìn)、借位0-無(wú)進(jìn)、借位1-低8位有偶數(shù)個(gè)10-低8位有奇數(shù)個(gè)11-低4位向高4位有進(jìn)、借位0-低4位向高4位無(wú)進(jìn)、借位1-結(jié)果為00-結(jié)果不為0零標(biāo)志進(jìn)位標(biāo)志CF:當(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溢出標(biāo)志OF:若算術(shù)運(yùn)算的結(jié)果有溢出,則OF=1;否則OF=0例如:3AH+7CH=B6H,產(chǎn)生溢出:OF=1AAH+7CH=(1)26H,沒(méi)有溢出:OF=0標(biāo)志寄存器(FLAG)標(biāo)志寄存器(FLAG)問(wèn)題:1.什么是溢出?2.溢出和進(jìn)位有什么區(qū)別?3.處理器怎么處理,程序員如何運(yùn)用?4.如何判斷是否溢出?處理器內(nèi)部以補(bǔ)碼表示有符號(hào)數(shù)。8個(gè)二進(jìn)制位能夠表達(dá)的整數(shù)范圍是:+127~-128如果運(yùn)算結(jié)果超出了這個(gè)范圍,就是產(chǎn)生了溢出。有溢出,說(shuō)明有符號(hào)數(shù)的運(yùn)算結(jié)果不正確。1.什么是溢出?標(biāo)志寄存器(FLAG)例如:3AH+7CH=B6H,即58+124=182,已經(jīng)超出-128~127范圍,產(chǎn)生溢出,所以O(shè)F=1;另一方面,補(bǔ)碼B6H表達(dá)真值是-74,顯然運(yùn)算結(jié)果也不正確。溢出標(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)位標(biāo)志寄存器(FLAG)例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.溢出和進(jìn)位標(biāo)志寄存器(FLAG)例2:AAH+7CH=(1)26H無(wú)符號(hào)數(shù)運(yùn)算:170+124=294,范圍外,有進(jìn)位有符號(hào)數(shù)運(yùn)算:-86+124=38,范圍內(nèi),無(wú)溢出

處理器對(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。3.如何應(yīng)用溢出和進(jìn)位標(biāo)志標(biāo)志寄存器(FLAG)應(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ù),則要注意是否溢出。判斷運(yùn)算結(jié)果是否溢出有一個(gè)簡(jiǎn)單的規(guī)則:只有當(dāng)兩個(gè)相同符號(hào)數(shù)相加(異號(hào)數(shù)相減可轉(zhuǎn)化為同號(hào)數(shù)相加),而運(yùn)算結(jié)果的符號(hào)與原數(shù)據(jù)符號(hào)相反時(shí),產(chǎn)生溢出;因?yàn)椋藭r(shí)的運(yùn)算結(jié)果顯然不正確。其他情況下,則不會(huì)產(chǎn)生溢出。4.溢出的判斷標(biāo)志寄存器(FLAG)3.48086的存儲(chǔ)器組織3.4.1存儲(chǔ)器地址空間和數(shù)據(jù)存儲(chǔ)格式8086的存儲(chǔ)器是以字節(jié)(Byte,8位)為單位組織的。20條地址總線,可尋址的存儲(chǔ)器地址空間為220B(1MB)。每個(gè)存儲(chǔ)單元都有一個(gè)編號(hào)——存儲(chǔ)器地址每個(gè)存儲(chǔ)單元存放一個(gè)字節(jié)的內(nèi)容二進(jìn)制位——1位二進(jìn)制數(shù):0或1。字節(jié)——8個(gè)二進(jìn)制位,D7~D0。字——16位,2個(gè)字節(jié),D15~D0。雙字——32位,4個(gè)字節(jié),D31~D0。信息的表達(dá)單位:3.48086的存儲(chǔ)器組織3.4.1存儲(chǔ)器地址空間和數(shù)據(jù)存儲(chǔ)格式兩個(gè)連續(xù)的字節(jié),為一個(gè)字:低對(duì)低,高對(duì)高(小端方式)。字的地址指低字節(jié)的地址。字的地址為偶地址,稱(chēng)字的存儲(chǔ)是對(duì)準(zhǔn)的,訪問(wèn)時(shí)只需一個(gè)總線周期。字的地址為奇地址,稱(chēng)字的存儲(chǔ)是未對(duì)準(zhǔn)的,訪問(wèn)時(shí)要兩個(gè)總線周期。字:[0002H]=1234H[0003H]=5612H12H34H78H56H0000H0002H0004HD7D0字節(jié):[0002H]=34H[0003H]=12H3.48086的存儲(chǔ)器組織3.4.2存儲(chǔ)器分段管理和物理地址的形成對(duì)應(yīng)每個(gè)存儲(chǔ)單元都有一個(gè)唯一的20位編號(hào),即物理地址。00000H~FFFFFH8086CPU采用地址分段方法管理存儲(chǔ)器,即用邏輯地址表示一個(gè)存儲(chǔ)器單元地址:段基地址:段內(nèi)偏移地址

段地址左移4位+偏移地址=20位物理地址例如:邏輯地址“1460H:100H”=物理地址14700H顯然,一個(gè)物理地址可以有多個(gè)邏輯地址。3.48086的存儲(chǔ)器組織3.4.2存儲(chǔ)器分段管理和物理地址的形成偏移地址:說(shuō)明主存單元距離段起始位置的偏移量。

每段不超過(guò)64KB,偏移地址也可用16位數(shù)據(jù)表示。段地址:說(shuō)明邏輯段在主存中的起始位置。

8086規(guī)定段地址必須是模16地址:xxxx0H省略低4位0000B,段地址就可以用16位數(shù)據(jù)表示,就能用16位段寄存器表達(dá)段地址。3.48086的存儲(chǔ)器組織3.4.2存儲(chǔ)器分段管理和物理地址的形成8086對(duì)邏輯段的要求是:

段地址低4位均為0,每段最大不超過(guò)64KB。每個(gè)段不要求必須是64KB,段與段可以重疊。1MB空間最多能分成多少個(gè)段?

每隔64K個(gè)存儲(chǔ)單元開(kāi)始一個(gè)段,所以1MB最少有:

220÷216=16

個(gè)段每隔16個(gè)存儲(chǔ)單元就可以開(kāi)始一個(gè)段,所以1MB最多有:

220÷16=216=64K個(gè)段1MB空間最少能分成多少個(gè)段?3.48086的存儲(chǔ)器組織3.4.3信息的分段存儲(chǔ)與段寄存器的關(guān)系程序區(qū):存儲(chǔ)程序的指令代碼,由CS劃定并控制。數(shù)據(jù)區(qū):存儲(chǔ)原始數(shù)據(jù)、中間結(jié)果和最后結(jié)果,由DS和ES控制。堆棧區(qū):存儲(chǔ)需要壓入堆棧的數(shù)據(jù)和狀態(tài)信息,由SS控制。注意:

(1)訪問(wèn)存儲(chǔ)器時(shí),段地址由默認(rèn)段寄存器提供,或由“指定”的段寄存器提供;(2)DS、ES和SS的內(nèi)容用傳送指令置入,但不能向CS中置入數(shù);(3)偏移地址的獲得有約定。程序員如何分配各個(gè)邏輯段?3.38086的存儲(chǔ)器組織3.4.3信息的分段存儲(chǔ)與段寄存器的關(guān)系程序的指令序列必須安排在代碼段;程序使用的堆棧一定在堆棧段;程序中的數(shù)據(jù)默認(rèn)是安排在數(shù)據(jù)段,也經(jīng)常安排在附加段,尤其是串操作的目的區(qū)必須是附加段。數(shù)據(jù)的存放比較靈活,實(shí)際上可以存放在任何一種邏輯段中。各個(gè)邏輯段獨(dú)立示意圖各個(gè)邏輯段重疊示意圖3.58086的I/O組織

I/O接口與CPU之間的通信是利用稱(chēng)為I/O端口的寄存器來(lái)完成的。微型機(jī)系統(tǒng)要為I/O芯片的每個(gè)端口分配一個(gè)地址,各個(gè)端口有唯一的I/O地址與之對(duì)應(yīng),是單獨(dú)編址的。

8086CPU地址總線的低16位用來(lái)對(duì)8位I/O端口尋址,I/O地址空間為65536,即可訪問(wèn)65536個(gè)8位的I/O端口,尋址范圍是64KB。任何兩個(gè)編號(hào)相鄰的8位端口可以組成一個(gè)16位端口。3.58086的數(shù)據(jù)尋址方式指令由操作碼和操作數(shù)兩部分組成:操作碼:說(shuō)明計(jì)算機(jī)要執(zhí)行哪種操作,如傳送、運(yùn)算、移位、跳轉(zhuǎn)等操作,它是指令中不可缺少的組成部分。操作碼操作數(shù)操作數(shù):指令執(zhí)行的參與者,即各種操作的對(duì)象。有些指令不需要操作數(shù),通常的指令都有一個(gè)或兩個(gè)操作數(shù),也有個(gè)別指令有3個(gè)甚至4個(gè)操作數(shù)。3.68086的數(shù)據(jù)尋址方式指令中的操作數(shù),可以是一個(gè)具體的數(shù)值,可以是存放數(shù)據(jù)的寄存器,或指明數(shù)據(jù)在主存位置的存儲(chǔ)器地址。

指令系統(tǒng)設(shè)計(jì)了多種操作數(shù)的來(lái)源,尋找操作數(shù)的過(guò)程就是操作數(shù)的尋址方式。8086的數(shù)據(jù)尋址方式有:

立即數(shù)尋址方式寄存器尋址方式存儲(chǔ)器尋址方式

隱含尋址----以后學(xué)習(xí)3.68086的數(shù)據(jù)尋址方式MOVdest,src ;dest←src;MOV指令的功能是將源操作數(shù)src;傳送至目的操作數(shù)destMOVAL,05H ;AL←05HMOVBX,AX;BX←AXMOVAX,[SI] ;AX←DS:[SI]MOVAX,[BP+06H] ;AX←SS:[BP+06H]MOVAX,[BX+SI] ;AX←DS:[BX+SI]指令的助記符格式:

操作碼操作數(shù)1,操作數(shù)2 ;注釋立即數(shù)尋址

指令中的操作數(shù)直接存放在機(jī)器代碼中,緊跟在操作碼之后(操作數(shù)作為指令的一部分存放在操作碼之后的主存單元中)??梢允?位數(shù)i8(00H~FFH),可以是16位數(shù)i16(0000H~FFFFH)。立即數(shù)尋址方式常用來(lái)給寄存器賦值。MOVAL,05H ;AL←05HMOVAX,0102H ;AX←0102HA1H00H05HA1H00H02H01H……小地址端大地址端寄存器尋址MOV

AX,1234H;AX←1234HMOV

BX,AX

;BX←AX操作數(shù)存放在CPU的內(nèi)部寄存器REG中8位寄存器R8:AH/AL/BH/BL/CH/CL/DH/DL16位寄存器R16:AX/BX/CX/DX/SI/DI/BP/SP4個(gè)段寄存器SEG:CS/DS/SS/ES存儲(chǔ)器尋址

指令中給出操作數(shù)的主存地址信息(偏移地址,稱(chēng)之為有效地址EA),而段地址在默認(rèn)的或用段超越前綴指定的段寄存器中。8086設(shè)計(jì)了多種存儲(chǔ)器尋址方式:直接尋址方式寄存器間接尋址方式寄存器相對(duì)尋址方式基址變址尋址方式相對(duì)基址變址尋址方式存儲(chǔ)器尋址1.直接尋址方式有效地址在指令中直接給出,默認(rèn)的段地址在DS段寄存器,可使用段超越前綴改變。MOVAX,[2000H] ;AX←DS:[2000H];指令代碼:A10020MOVAX,ES:[2000H];AX←ES:[2000H];指令代碼:26A10020存儲(chǔ)器尋址2.寄存器間接尋址方式有效地址存放在基址寄存器BX,或變址寄存器SI、DI,或基址指針BP中。MOVAX,[BX]

;AX←DS:[BX]MOVAX,ES:[DI];AX←ES:[SI]段地址對(duì)應(yīng)BX/SI/DI寄存器默認(rèn)是DS,對(duì)應(yīng)BP寄存器默認(rèn)是SS;可用段超越前綴改變。存儲(chǔ)器尋址3.寄存器相對(duì)尋址方式

有效地址是寄存器內(nèi)容與有符號(hào)8位或16位位移量之和,寄存器可以是BX、BP或SI、DI。

有效地址=BX/BP/SI/DI+8/16位位移量MOVAX,[DI+06H]

;AX←DS:[DI+06H]MOVAX,[BP+06H]

;AX←SS:[BP+06H]段地址對(duì)應(yīng)BX/SI/DI寄存器默認(rèn)是DS,對(duì)應(yīng)BP寄存器默認(rèn)是SS;可用段超越前綴改變。存儲(chǔ)器尋址4.基址變址尋址方式

有效地址由基址寄存器(BX或BP)的內(nèi)容加上變址寄存器(SI或DI)的內(nèi)容構(gòu)成:

有效地址=BX/BP+SI/DIMOVAX,[BX+SI]

;AX←DS:[BX+SI]MOVAX,[BP+DI]

;AX←SS:[BP+DI]MOVAX,DS:[BP+DI]

;AX←DS:[BP+DI]段地址對(duì)應(yīng)BX基址寄存器默認(rèn)是DS,對(duì)應(yīng)BP基址寄存器默認(rèn)是SS;可用段超越前綴改變。存儲(chǔ)器尋址5.基址變址且相對(duì)尋址方式

有效地址是基址寄存器(BX/BP)、變址寄存器(SI/DI)與一個(gè)8位或16位位移量之和:

有效地址=BX/BP+SI/DI+8/16位位移量MOVAX,[BX+SI+06H]

;AX←DS:[BX+SI+06H]MOVAX,[BP+SI+06H]

;AX←SS:[BP+SI+06H]段地址對(duì)應(yīng)BX基址寄存器默認(rèn)是DS,對(duì)應(yīng)BP基址寄存器默認(rèn)是SS;可用段超越前綴改變。存儲(chǔ)器尋址注意:(1)位移量可用符號(hào)表示(2)同一尋址方式有多種表達(dá)方式在寄存器相對(duì)尋址或相對(duì)基址變址尋址方式中,位移量可用符號(hào)表示:

MOVAX,[SI+COUNT];COUNT是已定義的變量或常量

MOVAX,[BX+SI+WNUM];WNUM也是變量或常量同一尋址方式有時(shí)可以寫(xiě)成不同的形式:MOVAX,

[BX][SI]

;MOVAX,[BX+SI]MOVAX,

COUNT[SI]

;MOVAX,[SI+COUNT]

MOVAX,

WNUM[BX][SI]

;MOVAX,

WNUM[BX+SI]

;MOVAX,

[BX+SI+WNUM]3.7高檔CPU的寄存器和存儲(chǔ)器3.7.1高檔CPU的寄存器結(jié)構(gòu)與8086的區(qū)別:(1)8個(gè)通用寄存器的長(zhǎng)度擴(kuò)展為32位:EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP。(2)EIP存放下一條要執(zhí)行指令的偏移地址。其低16位稱(chēng)為IP,用于偏移地址為

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論