第三章 80868088微處理器及其系統(tǒng)-V2_第1頁
第三章 80868088微處理器及其系統(tǒng)-V2_第2頁
第三章 80868088微處理器及其系統(tǒng)-V2_第3頁
第三章 80868088微處理器及其系統(tǒng)-V2_第4頁
第三章 80868088微處理器及其系統(tǒng)-V2_第5頁
已閱讀5頁,還剩200頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章8086/8088微處理器及其系統(tǒng)3.18086/8088微處理器3.28086/8088系統(tǒng)的最小/最大工作方式3.38086/8088的存儲器3.48086/8088的指令系統(tǒng)

主要內(nèi)容透徹理解與熟練掌握8086/8088內(nèi)部組成結(jié)構(gòu)、寄存器結(jié)構(gòu)與總線周期等深入理解存儲器的分段設(shè)計正確理解與熟練掌握物理地址和邏輯地址關(guān)系理解堆棧及其操作理解“段加偏移”尋址機制掌握尋址方式掌握6大類指令系統(tǒng)的基本方法

學(xué)習(xí)要求第三章8086/8088微處理器及其系統(tǒng)Intel系列CPU一直占著主導(dǎo)地位Intel8086/8088、Z8000和MC68000為代表的16位微處理器是第3代產(chǎn)品,其性能已達到中、高檔小型計算機的水平。8086/8088后續(xù)的80286、80386、80486以及Pentium系列CPU結(jié)構(gòu)與功能已經(jīng)發(fā)生很大變化,但從基本概念與結(jié)構(gòu)以及指令格式上來講,仍然是經(jīng)典8086/8088CPU的延續(xù)與提升。其它系列流行的CPU(如AMD公司的6X86MX/MII等)也與80X86CPU兼容。第三章8086/8088微處理器及其系統(tǒng)3.18086/8088微處理器8086是Intel系列的16位微處理器。采用HMOS工藝,集成2.9萬個晶體管,單一的+5V電源,40條引腳,雙列直插式封裝,時鐘頻率5~10MHz,最快的指令執(zhí)行時間為0.4us。8086有16根數(shù)據(jù)線,20根地址線,尋址1MB的存儲單元和64KB的I/O端口。8088是準(zhǔn)16位微處理器,內(nèi)部寄存器、運算器以及內(nèi)部數(shù)據(jù)總線都是16位,但外部數(shù)據(jù)總線為8條。3.18086/8088微處理器總線接口單元(BusInterfaceUnit,BIU):負責(zé)完成CPU與存儲器或I/O設(shè)備之間的數(shù)據(jù)傳送,即-BIU從內(nèi)存預(yù)取指令送到指令隊列緩沖器;-CPU執(zhí)行指令時,BIU配合EU對指令的內(nèi)存單元或I/O接口存取數(shù)據(jù)。執(zhí)行單元(ExecutionUnit,EU):負責(zé)執(zhí)行指令,即-執(zhí)行的指令從BIU的指令隊列緩沖器中取得;-指令執(zhí)行的結(jié)果或所需的數(shù)據(jù),由EU向BIU發(fā)出請求;-再由BIU對存儲器或I/O接口進行存取。3.18086/8088微處理器3.1.18086/8088CPU的內(nèi)部結(jié)構(gòu)從功能上講,可分為兩個獨立的部分,并行重疊操作:3.18086/8088微處理器總線接口單元組成◆4個16位段地址寄存器

代碼段寄存器(CodeSegment):取得CPU所執(zhí)行的指令。

數(shù)據(jù)段寄存器(DataSegment):存放程序所使用的數(shù)據(jù)。

堆棧段寄存器(StackSegment):堆棧操作的執(zhí)行地址在此段中。

附加段寄存器(ExtraSegment):也用來存放數(shù)據(jù)的?!?6位指令指針寄存器IP(InstructionPointer)◆6字節(jié)指令隊列緩沖器◆20位地址加法器◆總線控制器3.18086/8088微處理器1.指令隊列緩沖器用于存放預(yù)取的指令

8086指令隊列為6個字節(jié),而8088指令隊列為4個字節(jié)。在執(zhí)行指令的同時,從內(nèi)存中取下面1條或幾條指令,取來的指令依次放在指令隊列中。采用“先進先出”的原則。3.18086/8088微處理器1.指令隊列緩沖器(續(xù)1)“先進先出”原則:按順序存放,并按順序取到EU中去執(zhí)行。①取指時,當(dāng)指令隊列緩沖器中存滿1條指令,EU開始執(zhí)行;②指令隊列緩沖器中只要空出2個(8088空出1個)指令字節(jié)時,BIU便自動執(zhí)行取指操作,直到填滿時為止。③EU執(zhí)行指令時,如需對M或I/O設(shè)備存儲數(shù)據(jù)時,BIU將在執(zhí)行完現(xiàn)行取指的存儲器周期后的下一個存儲器周期,對內(nèi)存單元或I/O設(shè)備進行存取操作,交換的數(shù)據(jù)經(jīng)BIU由EU進行處理。④當(dāng)EU執(zhí)行完轉(zhuǎn)移、調(diào)用和返回指令時,要清除指令隊列緩沖器,并要求BIU從新的地址重新執(zhí)行。3.18086/8088微處理器2.地址加法器和段寄存器8086有20根地址線,內(nèi)部寄存器只有16位?!岸渭悠啤奔夹g(shù)3.18086/8088微處理器3.16位指令指針(InstructionPointer,IP)IP中含有BIU要取的下一條指令(字節(jié))的偏移地址。IP在程序運行中自動加1,指向要執(zhí)行的下一條指令(字節(jié))。有些指令能使IP值改變或使IP值壓進堆棧,或由堆棧彈出恢復(fù)原址。關(guān)鍵字:程序計數(shù)器pc指令指針I(yè)P先來看看什么是程序計數(shù)器PC!根據(jù)馮·諾依曼機思想:“用指令事先編好的程序連續(xù)存放在內(nèi)存程序區(qū)中,靠地址+1的方法連續(xù)取指執(zhí)行”。在八位機8080CPU中是采用先取指后執(zhí)行的串行操作的原理,而其中執(zhí)行地址+1指令尋址的部件就是程序計數(shù)器PC。那么在程序的執(zhí)行過程中,PC始終是指向下一條要執(zhí)行的指令。結(jié)論:PC中的地址就是需要轉(zhuǎn)移、循環(huán)、調(diào)用子程序和中斷子程序等操作時的斷點。3.18086/8088微處理器再來看看什么是指令指針I(yè)P?在向上兼容的十六位機8086CPU中首先分為兩個功能部件,即總線接口部件BIU和執(zhí)行部件EU,BIU負責(zé)取指令,EU負責(zé)譯碼執(zhí)行。并且當(dāng)BIU執(zhí)行指令排隊棧中的六個字節(jié)裝滿后,(8088CPU是4個字節(jié)),EU開始從指令排隊棧的出??冢≈噶钸M行譯碼執(zhí)行,同時BIU并行操作向入棧口補充一條取指令命令。指令指針I(yè)P則是指向下個條要取指的指令,而不是EU要執(zhí)行的指令。而斷點則應(yīng)該是要執(zhí)行的指令內(nèi)存地址,而不是IP內(nèi)的下一條要取指的指令地址,而且(IP)比斷點超前了六個字節(jié)(8088CPU超前四個字節(jié))。3.18086/8088微處理器3.18086/8088微處理器執(zhí)行單元組成16位算術(shù)邏輯單元(ALU)

算術(shù)、邏輯運算、計算16位偏移量16位標(biāo)志寄存器

CPU的運算狀態(tài)特征或存放控制標(biāo)志數(shù)據(jù)暫存寄存器

協(xié)助ALU完成運算通用寄存器組

4個16位數(shù)據(jù)寄存器,4個16位指針與變址寄存器EU控制電路

控制、定時與狀態(tài)邏輯電路3.18086/8088微處理器8088CPU內(nèi)部結(jié)構(gòu)BIU指令隊列長度為4個字節(jié)BIU通過總線控制電路與外部交換數(shù)據(jù)的總線寬度是8位,與專用寄存器之間的數(shù)據(jù)總線寬度也是8位。3.18086/8088微處理器3.1.28086/8088的寄存器結(jié)構(gòu)8086/8088內(nèi)部寄存器結(jié)構(gòu)共有13個16位寄存器和1個只用了9位的16位標(biāo)志寄存器。3.18086/8088微處理器1.通用寄存器①數(shù)據(jù)寄存器4個16位:AX、BX、CX、DX8個8位:AH、AL、BH、BL、CH、CL、DH、DL—多數(shù)情況下,用于算術(shù)運算或邏輯運算指令中—有些指令中,有特定的用途3.18086/8088微處理器1.通用寄存器(續(xù)1)②指針寄存器和變址寄存器(16位,存放偏移地址)指針寄存器(P組)堆棧指針寄存器SP和基址指針寄存器BP。當(dāng)前堆棧段中數(shù)據(jù)所在的地址。SP(StackPointer):給出棧頂?shù)钠频刂?入棧和出棧指令時)BP(BasePointer):存放位于堆棧段中的數(shù)據(jù)區(qū)基地址的偏移地址。3.18086/8088微處理器1.通用寄存器(續(xù)2)②指針寄存器和變址寄存器(16位,存放偏移地址)變址寄存器(I組)源變址寄存器SI和目的變址寄存器DI。存放當(dāng)前數(shù)據(jù)段的偏移地址。SI(SourceIndex):源操作數(shù)的偏移地址。DI(DestinationIndex):目的操作數(shù)的偏移地址。3.18086/8088微處理器1.通用寄存器(續(xù)3)數(shù)據(jù)寄存器的隱含使用3.18086/8088微處理器2.段寄存器段寄存器是為了實現(xiàn)“段加偏移”尋址基址而設(shè)置的。

4個16位段寄存器,8086指令可直接訪問。

CS(CodeSegment):存放代碼段的段地址。

SS(StackSegment):存放堆棧段的段地址。

DS(DataSegment):存放數(shù)據(jù)段的段地址。

ES(ExtraSegment):存放附加段的段地址。用于存放處理后的數(shù)據(jù)。3.18086/8088微處理器2.段寄存器(續(xù)1)8086/8088CPU有20條地址線,具有尋址1MB存儲空間。

8086/8088指令中給出的地址碼僅有16位。指針寄存器和變址寄存器也只有16位,不能直接尋址1MB的內(nèi)存空間。用8086/8088CPU內(nèi)部一組16為段寄存器內(nèi)容作為段地址,再由段寄存器左移4位形成20位的段起始地址,稱為段基地址或段基址,這樣,8086/8088可尋址1MB存儲空間。將1MB存儲空間分成若干個邏輯段,使每個邏輯段的長度為64KB。

3.18086/8088微處理器3.標(biāo)志寄存器8086標(biāo)志寄存器F為16位,用了其中9位。6個狀態(tài)標(biāo)志位:CF、PF、AF、ZF、SF、OF3個控制標(biāo)志位:DF、IF、TF3.18086/8088微處理器3.標(biāo)志寄存器(續(xù)1)狀態(tài)標(biāo)志位:反映算術(shù)或邏輯運算后結(jié)果狀態(tài)①

CF(CarryFlag):進位標(biāo)志,D0位。執(zhí)行結(jié)果在最高位上產(chǎn)生了一個進位或借位,CF=1;無進位或借位,CF=0。會受循環(huán)指令影響。②

PF(ParityFlag):奇偶性標(biāo)志,D2位。執(zhí)行結(jié)果的低8位中有偶數(shù)個“1”時,PF=1;否則,PF=0。機器中傳遞信息時,對產(chǎn)生的代碼出錯情況提供檢測條件。3.18086/8088微處理器3.標(biāo)志寄存器(續(xù)2)③

AF(AuxiliaryFlag):輔助進位標(biāo)志,D4位。執(zhí)行結(jié)果的低4位向高4位有進位或借位時,AF=1;否則,AF=0。一般用在BCD碼運算中。④

ZF(ZeroFlag):零標(biāo)志,D6位。如運算結(jié)果為零,ZF=1;如運算結(jié)果不為零,ZF=0。3.18086/8088微處理器3.標(biāo)志寄存器(續(xù)3)⑤SF(SignFlag):符號標(biāo)志,D7位。如運算結(jié)果為負數(shù),SF=1;如運算結(jié)果為正數(shù),ZF=0;⑥

OF(OverflowFlag):溢出標(biāo)志,D11位。如帶符號數(shù)在進行算術(shù)運算時產(chǎn)生了溢出,OF=1;如無溢出,OF=0。溢出表示運算結(jié)果已經(jīng)超出機器能夠表示的數(shù)值范圍。3.18086/8088微處理器3.標(biāo)志寄存器(續(xù)4)①

DF(DirectionFlag):方向標(biāo)志,D10位。控制數(shù)據(jù)串操作指令的步進方向。若用指令STD將DF=1,數(shù)據(jù)串操作過程中地址自動遞減;若用指令CLD將DF=0,則地址自動遞增??刂茦?biāo)志位:控制CPU的操作,由程序設(shè)置或清除。3.18086/8088微處理器3.標(biāo)志寄存器(續(xù)4)②

IF(InterruptFlag):中斷允許標(biāo)志,D9位??刂瓶善帘沃袛唷H粲弥噶頢TI將IF=1,允許接受外部從INTR引腳發(fā)來的可屏蔽中斷請求;若用指令CLI將IF=0,禁止接受外部發(fā)來的可屏蔽中斷請求。IF的狀態(tài)不影響非屏蔽中斷(NMI)請求,也不影響CPU響應(yīng)內(nèi)部的中斷請求。3.18086/8088微處理器3.標(biāo)志寄存器(續(xù)4)③

TF(TrapFlag):跟蹤(陷阱)標(biāo)志,D8位。為方便調(diào)試程序而設(shè)置的。若TF=1,CPU處于單步工作方式;若TF=0,正常執(zhí)行程序。3.18086/8088微處理器3.1.3總線周期的概念①時序:三總線上出現(xiàn)的信息不但有嚴(yán)格的順序,而且有

準(zhǔn)確的時間,稱為定時或時序。②時鐘:時鐘脈沖發(fā)生器產(chǎn)生具有一定頻率和占空比的脈沖信號,稱之為機器的主脈沖或時鐘。③主頻:時鐘的頻率,是機器的一個重要指標(biāo)。④時鐘周期:主頻的倒數(shù),是CPU的基本時間計量單位。也叫一個T周期或T狀態(tài),或一個節(jié)拍。8086

主頻為5MHz,則一個時鐘周期為200ns。⑤總線周期:在取指令和傳送數(shù)據(jù)時,CPU總線接口部件占用的時間稱為總線周期或機器周期。3.18086/8088微處理器3.1.3總線周期的概念(續(xù)1)一個最基本的總線周期由4個時鐘周期組成:用T1、T2、T3、T4表示。3.18086/8088微處理器3.1.3總線周期的概念(續(xù)1)①

T1狀態(tài):CPU往多路復(fù)用總線上發(fā)送地址信息,選中所要尋址的存儲單元或外設(shè)端口地址。②

T2狀態(tài):CPU從總線上撤銷地址,并使總線的低16位浮置成高阻狀態(tài),為傳送數(shù)據(jù)做準(zhǔn)備。③T3狀態(tài):總線的高4位繼續(xù)提供狀態(tài)信息,低16位將出現(xiàn)由CPU寫出的數(shù)據(jù),或CPU從存儲器或者外設(shè)端口讀入的數(shù)據(jù)。3.18086/8088微處理器3.1.3總線周期的概念(續(xù)1)④

等待狀態(tài):有些情況下,I/O或M不能及時配合CPU傳送數(shù)據(jù),在T3狀態(tài)啟動之前它會通過READY引腳向CPU

發(fā)出一個“未準(zhǔn)備好”信號。

CPU在T3狀態(tài)之后自動插入若干個時鐘周期Tw,直至CPU接收到“準(zhǔn)備好”信號,自動脫離Tw狀態(tài)進入T4。⑤

T4狀態(tài):總線周期結(jié)束。⑥

空閑周期Ti:兩個總線周期之間,若干個時鐘周期。3.18086/8088微處理器8086GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND8086引腳圖VCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND8088引腳圖VCCA15A16/S3A17/S4A18/S5A19/S6SS0(HIGH)MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8086/8088的引腳功能引腳圖如下,其中帶括號的引腳功能為最大模式下的功能3.18086/8088微處理器3.1.48086/8088的引腳信號和功能(續(xù)1)①

分時復(fù)用地址/數(shù)據(jù)總線:AD15~AD0(引腳39也就是AD15,2-16即Ad14-AD0,16根)傳送地址時:單向,三態(tài)輸出傳送數(shù)據(jù)時:雙向,三態(tài)輸入輸出通過分時復(fù)用利用40條引腳實現(xiàn)20位地址、16位數(shù)據(jù)及眾多控制信號和狀態(tài)信號的傳輸。T1狀態(tài):輸出要尋址的存儲器或I/O端口地址;T2狀態(tài):浮置成高阻狀態(tài),為傳輸數(shù)據(jù)做準(zhǔn)備;T3狀態(tài):用于傳輸數(shù)據(jù);T4狀態(tài):結(jié)束總線周期。當(dāng)CPU響應(yīng)中斷以及系統(tǒng)總線“保持響應(yīng)”時,復(fù)用線都被浮置成高阻狀態(tài)。3.18086/8088微處理器3.1.48086/8088的引腳信號和功能(續(xù)2)②分時復(fù)用地址/狀態(tài)總線:A19/S6~A16/S3(引腳35~38,4根)輸出,三態(tài)。T1狀態(tài):輸出地址的最高位;T2~T4狀態(tài):輸出狀態(tài)信息。訪問存儲器:T1狀態(tài)時輸出的A19~A16送到鎖存器(8282)鎖存,與AD15~AD0組成20位的地址信號;訪問I/O端口:不使用這4條引線,A19~A16=0。S6為0,8086當(dāng)前與總線相連。S5表明中斷允許標(biāo)志位IF的當(dāng)前設(shè)置。S4和S3指示當(dāng)前正在使用哪個段寄存器。3.18086/8088微處理器3.1.48086/8088的引腳信號和功能(續(xù)3)S4S3狀態(tài)00當(dāng)前正在使用ES01當(dāng)前正在使用SS10當(dāng)前正在使用CS,或未用任何段寄存器11當(dāng)前正在使用DSS4、S3的代碼組合和對應(yīng)的狀態(tài)3.18086/8088微處理器3.1.48086/8088的引腳信號和功能(續(xù)4)③

電源線和地線:3根1個電源線Vcc(引腳40):輸入電壓+5V±10%2個地線GND(引腳1,20):均接地3.18086/8088微處理器8086/8088的引腳特性◆數(shù)據(jù)/地址、狀態(tài)/地址復(fù)用線的特點

﹡減少了8086CPU的引腳線

﹡需解決數(shù)據(jù)/地址線的分離◆控制線的特點

﹡功能各異:不同控制線具有不同的作用

﹡方向確定:僅為單相輸入或輸出

﹡電平觸發(fā):不同控制線有不同的電平觸發(fā)方式◆電源線

﹡VCC:+5V﹡GND:地

控制總線:8根

a)BHE/S7(引腳34):高8位數(shù)據(jù)總線允許/狀態(tài)復(fù)用,三態(tài),輸出

BHE在總線周期的T1狀態(tài)時輸出,S7在T2~T4時輸出。

8086中,當(dāng)BHE/S7引腳上輸出BHE信號時,表示總線上高8位AD15~AD8的數(shù)據(jù)有效。存儲體奇庫選擇控制。

8088中,34引腳不是BHE/S7,而是被賦予另外的信號:最小方式時,它為SS0,最大方式時,它恒為高電平。

S7在8086中未被賦予定義。3.18086/8088微處理器3.1.48086/8088的引腳信號和功能(續(xù)5)3.18086/8088微處理器3.1.48086/8088的引腳信號和功能(續(xù)6)b)RD(引腳32):讀控制,三態(tài),輸出,低有效

RD=0時,CPU將執(zhí)行對M/IO端口的讀操作。對內(nèi)存單元還是對IO端口讀取數(shù)據(jù),取決于M/IO(8086)或M/IO(8088)信號。在一個讀操作的總線周期中,

RD信號在T2、T3、Tw狀態(tài)均為低電平,以保證CPU讀有效。在系統(tǒng)總線“保持響應(yīng)”期間,RD被浮空?!癛eady”輸入引腳,接收來自于內(nèi)存單元或I/O端口向CPU發(fā)來的“準(zhǔn)備好”狀態(tài)信號,表明內(nèi)存單元或I/O端口已經(jīng)準(zhǔn)備好進行讀寫操作。該信號是協(xié)調(diào)CPU與內(nèi)存單元或I/O端口之間進行信息傳送的聯(lián)絡(luò)信號。3.18086/8088微處理器3.1.48086/8088的引腳信號和功能(續(xù)7)c)READY(引腳22):“準(zhǔn)備好”信號,輸入,高有效,由所尋址的M或IO設(shè)備發(fā)出。READY=1時,表示M或IO設(shè)備已準(zhǔn)備就緒,馬上可以進行依次數(shù)據(jù)傳輸。CPU在每個總線周期的T3狀態(tài)開始對READY信號采樣。當(dāng)READY=0時,表示M或IO設(shè)備尚未準(zhǔn)備好,則CPU在T3狀態(tài)之后自動插入一個或幾個等待狀態(tài)Tw,直到READY變?yōu)楦唠娖?,進入T4狀態(tài),完成數(shù)據(jù)傳送過程。3.18086/8088微處理器3.1.48086/8088的引腳信號和功能(續(xù)8)d)TEST(引腳23):等待測試信號,輸入,低有效。當(dāng)CPU執(zhí)行WAIT指令時,進入空轉(zhuǎn)等待狀態(tài),且每隔5個時鐘周期對該線的輸入進行一次測試:若TEST=1時,CPU將停止取下條指令而繼續(xù)處于等待狀態(tài),重復(fù)執(zhí)行WAIT,直到TEST=0時,等待狀態(tài)結(jié)束,CPU才繼續(xù)往下執(zhí)行被暫停的指令。3.18086/8088微處理器3.1.48086/8088的引腳信號和功能(續(xù)9)e)INTR(引腳18):可屏蔽中斷請求,輸入,高有效。INTR=1時,表示外設(shè)提出了中斷請求,8086在每個指令周期的最后一個T狀態(tài)去采樣此信號。若IF=1,CPU響應(yīng)中斷,停止執(zhí)行當(dāng)前的指令序列,并轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。3.18086/8088微處理器3.1.48086/8088的引腳信號和功能(續(xù)10)f)NMI(引腳17):非屏蔽中斷請求,輸入,上升沿觸發(fā)此請求不受IF狀態(tài)的影響,也不能用軟件屏蔽,只要此信號一出現(xiàn),CPU就會在現(xiàn)行指令結(jié)束后引起中斷。3.18086/8088微處理器3.1.48086/8088的引腳信號和功能(續(xù)11)g)RESET(引腳21):復(fù)位信號,輸入,高電平有效。與8284A(時鐘發(fā)生/驅(qū)動器)的復(fù)位輸出端相連;8086/8088要求復(fù)位脈沖寬度不得小于4個時鐘周期,而初次接通電源時所引起的復(fù)位,則要求維持的高電平不能小于50μS。復(fù)位后,CPU的主程序流程恢復(fù)到啟動時的循環(huán)待命初始狀態(tài)。內(nèi)部寄存器狀態(tài)標(biāo)志寄存器IPCSDSSSES指令隊列緩沖器清除0000HFFFFH0000H0000H0000H清除3.18086/8088微處理器3.1.48086/8088的引腳信號和功能(續(xù)12)h)CLK(引腳19):系統(tǒng)時鐘,輸入通常與8284A時鐘發(fā)生器的時鐘輸出端CLK相連,該時鐘信號的低/高之比常采用2:1(占空比1/3)。3.18086/8088微處理器3.1.48086/8088的引腳信號和功能(續(xù)13)⑤

其它控制線(引腳24~31):8個

這些控制線的性能,根據(jù)方式控制線(引腳33)MN/MX所處的狀態(tài)而定。MN/MX=1,8086工作于最小方式,全部信號由CPU提供;MN/MX=0,8086工作于最大方式,控制信號由8288總線控制器提供。3.18086/8088微處理器3.1.48086/8088的引腳信號和功能(續(xù)14)時序:計算機操作運行的時間順序。時序:三總線上出現(xiàn)的信息不但有嚴(yán)格的順序,而且有準(zhǔn)確的時間,成為定時或時序。3.28086/8088系統(tǒng)最小/最大工作方式條件最小工作模式:控制線MN/MX=H

最大工作模式:控制線MN/MX=L特點最小工作模式:控制線由CPU自身產(chǎn)生最大工作模式:控制線由芯片8288產(chǎn)生應(yīng)用

最小工作模式:硬件簡單,用于專用機

最大工作模式:硬件復(fù)雜,用于系統(tǒng)機注:掌握最小工作模式,了解最大工作模式3.28086/8088系統(tǒng)最小/最大工作方式MN/MX接電源電壓,系統(tǒng)處于最小方式,即單處理器系統(tǒng)方式;時鐘信號發(fā)生器8284A;外接晶體的基本振蕩頻率為15MHz,經(jīng)8284A三分頻后,送給CPU作系統(tǒng)時鐘CLK。8位地址鎖存器8282:鎖存后地址信號,在整個周期保持不變。三態(tài)輸出的8位數(shù)據(jù)總線收發(fā)器8286:用于增加系統(tǒng)的驅(qū)動能力。等待狀態(tài)產(chǎn)生電路:向8284A的RDY端提供一個信號,經(jīng)同步后,向CPU的READY線發(fā)“準(zhǔn)備就緒”信號,通知CPU數(shù)據(jù)傳送已完成,可退出當(dāng)前總線周期。3.2.1最小方式3.28086/8088系統(tǒng)最小/最大工作方式3.2.1最小方式(續(xù)1)3.28086/8088系統(tǒng)最小/最大工作方式3.2.1最小方式(續(xù)2)a)INTA(Interruptacknowledge)引腳24

中斷響應(yīng)信號,輸出,低有效

CPU對來自外設(shè)的中斷請求作出響應(yīng),發(fā)兩個連續(xù)負脈沖。

第一個脈沖:通知外設(shè)端口,中斷請求被允許;

第二個脈沖:外設(shè)往數(shù)據(jù)總線上發(fā)送中斷類型碼。b)ALE:(addresslatchenable)引腳25

地址鎖存允許信號,輸出,高有效。

CPU在每個總線周期T1狀態(tài)發(fā)出,作為地址鎖存器的地址鎖存信號。中斷:是CPU與外部設(shè)備交換信息的一種方式。計算機在執(zhí)行正常程序的過程中,當(dāng)出現(xiàn)某些異常事件或某種外部請求時,處理器就暫時中斷正在執(zhí)行的正常程序,而轉(zhuǎn)去執(zhí)行對異常事件或某種外設(shè)的請求的處理操作。3.28086/8088系統(tǒng)最小/最大工作方式3.2.1最小方式(續(xù)3)c)DEN:(dataenable)引腳26

數(shù)據(jù)允許信號,輸出,三態(tài),低有效

為總線收發(fā)器OE端提供控制信號,決定是否允許數(shù)據(jù)通過。d)DT/R:(dataenable)引腳27

數(shù)據(jù)收發(fā)控制信號,輸出,三態(tài)

控制總線收發(fā)器的數(shù)據(jù)傳送方向

高電平時:數(shù)據(jù)發(fā)送

低電平時:數(shù)據(jù)接收3.28086/8088系統(tǒng)最小/最大工作方式3.2.1最小方式(續(xù)3)e)M/IO:(memory/inputandoutput)引腳28

存儲器/輸入輸出控制信號,輸出,三態(tài)

用于區(qū)分CPU訪問M還是IO。高電平:訪問M:

低電平:訪問IO。f)WR:(write)引腳29

寫控制信號,輸出,三態(tài),低有效

表示CPU當(dāng)前進行M或IO的寫操作。3.28086/8088系統(tǒng)最小/最大工作方式3.2.1最小方式(續(xù)3)g)HOLD:(holdrequest)引腳30

總線保持請求信號,輸入,高有效

是系統(tǒng)中的其它總線主控部件向CPU發(fā)出的請求占用總線的控制信號。h)HLDA:(holdacknowledge)引腳31

總線保持應(yīng)答信號,輸出,高有效

與HOLD配合使用的聯(lián)絡(luò)信號,

有效期間,所有與三態(tài)門連接的引腳處于浮空,讓出總線。3.28086/8088系統(tǒng)最小/最大工作方式3.2.2最大方式MN/MX接地,系統(tǒng)處于最大方式,含兩個或多個處理器,需要解決主處理器和協(xié)處理器之間協(xié)調(diào)工作及總線共享問題。時鐘發(fā)生/驅(qū)動器8284A:1片8位地址鎖存器8282:3片三態(tài)輸出的8位數(shù)據(jù)線收發(fā)器8286:2片等待狀態(tài)產(chǎn)生電路:協(xié)調(diào)Ready信號總線控制器8288:對CPU發(fā)出的控制信號變換、組合,得到對M或IO的讀/寫信號,對8282和8286的控制信號。3.28086/8088系統(tǒng)最小/最大工作方式3.2.2最大方式(續(xù)2)最小方式:控制信號M/IO或(M/IO)、WR、INTR、ALE、DT/R、DEN直接從CPU的第24~29腳送出。3.28086/8088系統(tǒng)最小/最大工作方式3.2.2最大方式(續(xù)4)3.28086/8088系統(tǒng)最小/最大工作方式3.2.2最大方式(續(xù)6)b)LOCK(lock)引腳29

總線封鎖信號,輸出

由指令前綴LOCK產(chǎn)生,LOCK前綴后面一條指令執(zhí)行完畢,

LOCK信號撤銷。

低電平時:CPU獨占總線,系統(tǒng)中其它主要部件就不能占用總線。3.28086/8088系統(tǒng)最小/最大工作方式3.2.2最大方式(續(xù)7)c)

RQ/GT1、RQ/GT0:引腳30、31

總線請求輸入/總線允許輸出

供CPU以外的兩個處理器,用來發(fā)出使用總線的請求信號,和接收CPU對總線請求信號的回答信號。二者都是雙向的,信號在同一引線上傳輸,當(dāng)方向相反,RQ/GT0有更高優(yōu)先權(quán)。3.28086/8088系統(tǒng)最小/最大工作方式3.2.2最大方式(續(xù)7)d)

MRDC(memoryreadcommand)對存儲器讀

MWTC:(memorywritecommand)對存儲器寫

AMWC(advancedmemorywritecommand)超前寫存儲器命令

IOWC(I/Owritecommand)對I/O寫

IODC(I/Oreadcommand)對I/O讀

AIOWC(advancedI/Owritecommand)超前寫I/O命令3.38086/8088存儲器3.3.1存儲器組織20條AB,尋址1M存儲空間;按字節(jié)組織,每個字節(jié)唯一地址;字節(jié):順序存放字:低位字節(jié)放在低地址中

高位字節(jié)放在高地址中雙字節(jié):低位字是偏移量高位字是段地址規(guī)則字:低位字節(jié)存放在偶數(shù)地址非規(guī)則字:低位字節(jié)存放在奇數(shù)地址3.38086/8088存儲器3.3.1存儲器組織(續(xù)1)字節(jié)的存取需要1個總線周期3.38086/8088存儲器3.3.1存儲器組織(續(xù)2)3.38086/8088存儲器3.3.1存儲器組織(續(xù)3)3.38086/8088存儲器3.3.1存儲器組織(續(xù)4)地址總線A19~A1可同時對高、低位庫的存儲單元尋址,A0或BHE用于庫的選擇,分別接到庫選擇端SEL。BHEA0操作使用的數(shù)據(jù)總線00同時讀/寫高低兩個字節(jié)AD15~AD001只讀/寫奇地址的高位AD15~AD810只讀/寫偶地址的高位AD8~AD011不傳送

3.38086/8088存儲器3.3.1存儲器組織(續(xù)4)8088系統(tǒng)中,尋址空間1MB,單一的存儲器,1M×8位。20跟地址線與8跟數(shù)據(jù)線分別同8088CPU的對應(yīng)地址線和數(shù)據(jù)線相連。8088CPU每訪問1次存儲器只讀/寫1個字節(jié)信息。任何數(shù)據(jù)字都需要兩次訪問存儲器才能完成讀/寫操作。8088系統(tǒng)中,程序運行速度比在8086系統(tǒng)中慢些。3.38086/8088存儲器3.3.2存儲器分段3.38086/8088存儲器3.3.2存儲器分段(續(xù)1)◆每個段大小可以從一個字節(jié)開始,任意遞增,最多包含

64KB長的連續(xù)存儲單元;◆每個段的20位起始地址(段基址),是能被16整除的數(shù),即最后4位為零,可通過程序在段寄存器中裝入16位段地址來設(shè)置;段地址是20位段基址的前16位。◆1個程序所用的具體存儲空間:1個或多個邏輯段;◆段基地址存在CS、SS、DS、ES中,程序可以從中給出的邏輯段中存取代碼和數(shù)據(jù);◆段區(qū)的分配是由操作系統(tǒng)完成的,系統(tǒng)允許程序員指定。3.38086/8088存儲器3.3.2存儲器分段(續(xù)1)20位尋址操作變?yōu)?6位尋址操作縮短了指令長度,提高了執(zhí)行速度多在段內(nèi)操作,少在段間操作注:程序設(shè)計中變復(fù)雜尋址為簡單尋址分段結(jié)構(gòu)的優(yōu)點:3.38086/8088存儲器3.3.3實際地址和邏輯地址實際地址(也稱為物理地址):CPU對存儲器進行訪問時的實際尋址所使用的地址,對8086/8088來講,用20位二進制數(shù)或5位十六進制數(shù)表示。邏輯地址:程序和指令中表示的一種地址,由段地址和偏移地址兩部分組成,用無符號的16位二進制或4位十六進制表示。段地址:16位段寄存器直接給出的16位地址。偏移地址(也稱為偏移量或偏移):由指令尋址時的寄存器組合與位移量之和,16位的偏移量。表示所尋址的地址單元距離段起始地址之間的偏移。3.38086/8088存儲器3.3.3實際地址和邏輯地址(續(xù)1)3.38086/8088存儲器3.3.3實際地址和邏輯地址(續(xù)2)3.38086/8088存儲器3.3.4堆棧①8086系統(tǒng)中的堆棧是用段定義語句在存儲器中定義的一個堆棧段,如同其它邏輯段,可在1MB的存儲空間中浮動。②一個系統(tǒng)堆棧數(shù)目不受限制,棧長度不超過64KB。③堆棧由段寄存器SS和堆棧指針SP來尋址

SS:給出堆棧段的段地址

SP:給定當(dāng)前棧頂,即指出從堆棧的段基址到棧頂?shù)钠屏俊"軛m斒嵌褩2僮鞯奈ㄒ怀隹?,是棧地址較小的一端。3.38086/8088存儲器3.3.4堆棧(續(xù)1)3.38086/8088存儲器(1)在進行連續(xù)的壓入和彈出操作時,壓入的次序與彈出的次序正相反,即先壓入的內(nèi)容后彈出,這樣可保證返回寄存器的內(nèi)容不發(fā)生錯誤。由于堆棧操作是按“后進先出”方式工作,因此在使用進棧指令PUSH和出棧指令POP時應(yīng)注意兩點:(2)PUSH和POP指令必須成對出現(xiàn),否則會使地址出錯,而造成整個程序執(zhí)行出錯。78“段加偏移”尋址機制允許重定位

重定位:一個完整的程序塊或數(shù)據(jù)塊,可在存儲器所允許的空間內(nèi)任意浮動,并定位到一個新的可尋址的區(qū)域?!岸渭悠啤睂ぶ窓C制允許重定位(或再定位)是一種重要特性。原來為8086在實模式下運行所編寫的程序,在以后80286以上高型號微處理器中,當(dāng)系統(tǒng)由實模式轉(zhuǎn)換為保護模式時也可運行。各種通用計算機系統(tǒng)在運行同一軟件和數(shù)據(jù)時能夠保持兼容性。重定位重點內(nèi)容小結(jié)━通用寄存器組,段寄存器,標(biāo)志寄存器━概念:時序、指令周期、總線周期、時鐘周期、分時復(fù)用總線、物理地址、邏輯地址、偏移地址━總線端口單元與執(zhí)行單元功能━20位物理地址形成━指令隊列與堆棧━規(guī)則字與非規(guī)則字━最小工作方式與最大工作方式特點━時鐘發(fā)生/驅(qū)動器8284A,地址鎖存器8282

數(shù)據(jù)總線收發(fā)器8286,總線控制器8288作用與特點3.4.18086/8088指令系統(tǒng)特點8086與8088指令系統(tǒng)由8位8080/8085指令系統(tǒng)擴展而來的,同時又能在其后續(xù)的80x86系列的CPU上正確運行。其主要特點是:①可變長指令:指令格式比較復(fù)雜②尋址方式多樣靈活,處理數(shù)據(jù)能力比較強(字節(jié)/字、有符號/無符號二進制數(shù)據(jù)、壓縮型/非壓縮型十進制數(shù)據(jù))。③有重復(fù)指令、乘除運算指令,擴充了條件轉(zhuǎn)移、移位/循環(huán)指令。④增設(shè)了加強軟件中斷功能和支持多處理器系統(tǒng)的相關(guān)指令。3.4.28086/8088的指令格式指令由兩部分構(gòu)成:操作碼(OP-Code)字段:計算機所要執(zhí)行的操作類型,由一組二進制代碼表示。在匯編語言中用助記符代表。操作碼操作數(shù)或操作數(shù)地址操作數(shù)(Oprand)字段:指令執(zhí)行的操作所需的操作數(shù),可是操作數(shù)本身,或操作數(shù)地址,或操作數(shù)地址計算方法。3.4.28086/8088的指令格式無操作數(shù):控制類指令。操作碼操作數(shù)或操作數(shù)地址雙操作數(shù):源操作數(shù)(source),目的操作數(shù)(destination)一個操作數(shù)在寄存器中,另一個在寄存器或存儲器中,或指令中直接給出立即數(shù)。不允許兩個都在存儲器中。單操作數(shù):只給出一個操作數(shù)地址,該操作數(shù)可在寄存器或存儲器中,或指令中直接給出立即數(shù)。3.4.28086/8088的指令格式可變長指令,指令長度位1~6個字節(jié)。其中B1和B2為基本字節(jié),B3~B6根據(jù)不同指令作相應(yīng)的安排。指令格式:指令格式:3.4.28086/8088的指令格式①

B1字節(jié)

OP━指令操作碼。

D━表示方向。

D=1,REG字段所確定的寄存器為目的;

D=0,該寄存器為源。

W━表示字節(jié)或字處理方式。

W=1,表示字;

W=0,表示字節(jié)。3.4.28086/8088的指令格式②

B2字節(jié)

MOD━給定指令的尋址方式。(2位)

MOD≠11:存儲器方式,有一個操作數(shù)位于存儲器中:

MOD=00,沒有位移量;

MOD=01,只有低8位位移量,需將符號擴展8位,形成

16位;

MOD=10,有16位位移量。

MOD=11:寄存器方式,兩個操作數(shù)均在寄存器中,

一個由REG字段確定,一個由R/M字段確定。3.4.28086/8088的指令格式②

B2字節(jié)●

REG━用來確定確定某一操作數(shù)所在的寄存器編碼●

R/M━受MOD制約。MOD=11,某操作數(shù)所在的寄存器編號;MOD≠11,某操作數(shù)所在的存儲單元有效地址EA,共24種計算方法。REG字段(寄存器編碼)有8種編碼,對應(yīng)8個16位通用寄存器:000—AX,001—CX,010—DX,011—BX,100—SP,101—BP,110—SI,111—DI。段寄存器編碼)有4種編碼,對應(yīng)4個段寄存器:00—ES,01—CS,10—SS,11—DS。3.4.28086/8088的指令格式指令格式:涉及BP寄存器尋址方式時,SS為默認(rèn)的段寄存器;其他情況DS為默認(rèn)的段寄存器。3.4.28086/8088的指令格式指令格式:3.4.3尋址方式指令格式:

指令執(zhí)行中所需的操作數(shù)可能在寄存器中,也可以在內(nèi)存或I/O端口中,對于不同的操作數(shù)均由不同的方法來存取它們。特別是對于存放于存儲單元的操作數(shù),可以采用多種不同的方式進行尋址及存?。?.4.3尋址方式指令格式:3.4.3尋址方式1.固定尋址有些單字節(jié)指令,規(guī)定CPU對某個固定的寄存器進行如:加法的ASCII調(diào)整指令A(yù)AA,規(guī)定被調(diào)整的數(shù)總位于AL中。該指令用來調(diào)整AL中的結(jié)果,指令編碼為:

OP0011

0111

37H3.4.3尋址方式2.立即數(shù)尋址操作數(shù)就在指令中,當(dāng)執(zhí)行指令時,CPU直接從指令隊列中取得立即數(shù),而不必執(zhí)行總線周期?!?/p>

立即數(shù)可以是8位,或16位;●

只能是整數(shù)類型的源操作數(shù);●

主要用來給寄存器賦初值;●

指令執(zhí)行速度快。例如:指令

MOVAX,1680H

表示將1680H送AX,AH中為16H,AL中為80H;即高地址對應(yīng)高字節(jié),低低址對應(yīng)低字節(jié)。MOVAL,80H;將80H送入ALMOVAX,306AH;將306AH送入AX

3.4.3尋址方式3.寄存器尋址

MOVAL,BL;將BL的內(nèi)容傳送到AL中

MOVBX,AX;將AX的內(nèi)容傳送到BX中

3.4.3尋址方式3.寄存器尋址注意:(1)當(dāng)指令中的源操作數(shù)和目標(biāo)操作數(shù)均為寄存器時,必須采用同樣長度的寄存器(2)兩個操作數(shù)不能同時為段寄存器(3)目標(biāo)操作數(shù)不能是代碼段寄存器(CS)3.4.3尋址方式4.存儲器尋址

3.4.3尋址方式4.存儲器尋址:直接尋址

●當(dāng)指令中的源操作數(shù)或目的操作數(shù),采用直接給出被訪問內(nèi)存單元的邏輯地址時,這種尋址方式稱直接尋址?!窭篗OVAX,[3E4CH];AX←(DS:3E4CH)●源操作數(shù)采用直接尋址,指令中由方括號給出的是被訪問內(nèi)存單元的邏輯偏移地址,邏輯段地址隱含在DS中,物理地址為(DS)×10H+3E4CH【例3.6】MOVAX,[1680H];把1680H和1681H兩單元的字內(nèi) 容取入AX中【例3.7】MOVAX,ES:[1680H];把跨段的附加段中1680H和 1681H兩單元的字內(nèi)容取入AX

3.4.3尋址方式4.存儲器尋址:直接尋址

●最簡單、直觀?!裰噶钪兄苯右晕灰屏啃问?,輸出操作數(shù)的有效地址EA,即EA=DISP?!駡?zhí)行速度快,主要用于存取位于存儲體中的簡易變量。

編碼格式為:4個字節(jié)312423222119181615

87

0OPMODREGR/MDISP-LDISP-H如:MOVAX,[1680H]:

表示將1680H和1681H兩單元的取入AX中。例子段基址:2000H有效地址:1000H物理地址:21000HAX已知:(DS)=2000H,(21000H)=12H,(21001H)=34H。試給出指令

MOVAX,[1000H]執(zhí)行后AX的內(nèi)容。20000H數(shù)據(jù)段2FFFFH21000H21001H12H34H存儲器指令執(zhí)行后,(AX)=3412H。3.4.3尋址方式4.存儲器尋址:間接尋址

●內(nèi)存單元的邏輯偏移地址通過寄存器間接給出;●指寄存器尋址方式,操作數(shù)一定在存儲器中;●存儲單元的EA由寄存器指出:基址寄存器BX,基址指針寄存器BP,變址寄存器SI和DI;●書寫時,寄存器帶方括號;●根據(jù)所采用的寄存器不同,分為三種:

基址尋址:寄存器為BX或BP+位移量

變址尋址:寄存器為SI或DI+位移量

基址加變址尋址:BX或BP+SI或DI+位移量段基址對應(yīng)BX/SI/DI寄存器默認(rèn)是DS,對應(yīng)BP寄存器默認(rèn)是SS;可用段前綴改變。3.4.3尋址方式4.存儲器尋址:間接尋址1:基址尋址

MOVAX,[BX];若(DS)=2000H,(BX)=1000H,則將數(shù)據(jù)段

21000H、21001H兩個單元的內(nèi)容送到AX中。MOVCX,[BP];若(SS)=4000H,(BP)=1000H,則將堆棧段

41000H、41001H兩個單元的內(nèi)容送到CX中。3.4.3尋址方式4.存儲器尋址:間接尋址2:變址尋址

例子段基址:4000H有效地址:5000H物理地址:45000HAX已知:(DS)=4000H,(SI)=2000H,內(nèi)存單元(45000H)=34H,(45001H)=12H。試給出指令MOVAX,[SI+3000H]執(zhí)行后AX的內(nèi)容。40000H數(shù)據(jù)段4FFFFH45000H45001H34H12H存儲器指令執(zhí)行后,(AX)=1234H。3.4.3尋址方式4.存儲器尋址:間接尋址3:基址加變址尋址

有效地址由基址寄存器(BX或BP)的內(nèi)容加上變址寄存器(SI或DI)的內(nèi)容構(gòu)成:有效地址=BX/BP+SI/DI+8/16位位移量段基址對應(yīng)BX寄存器默認(rèn)是DS,對應(yīng)BP寄存器默認(rèn)是SS;可用段前綴改變。該尋址方式適用于數(shù)組或表格存取。MOVAX,[BX+SI];默認(rèn)操作數(shù)在數(shù)據(jù)段中

MOVBX,[BP+DI];默認(rèn)操作數(shù)在堆棧段中

MOVBX,ES:[BP+DI];操作數(shù)在附加段中

3.4.3尋址方式有效地址EA的計算方法如下:物理地址PA計算方法如下:物理地址=DS×10H+SI/DI/BX物理地址=SS×10H+BP(1)不同的寄存器所隱含對應(yīng)的段不同。采用SI、DI、BX寄存器,數(shù)據(jù)存于數(shù)據(jù)段DS中;采用BP寄存器,數(shù)據(jù)存于堆棧段中。(2)8086的寄存器AX,CX,DX一般不能在寄存器間接尋址中使用。如用BX、SI或DI作為間址寄存器,則默認(rèn)的段基址在DS段寄存器。如用BP作為間址寄存器,則默認(rèn)的段基址在SS段寄存器。可使用段前綴改變。MOVAX,ES:[SI];若(ES)=3000H,(SI)=1000H,則將附加段

31000H、31001H兩個單元的內(nèi)容送到AX中。

3.4.3尋址方式4.存儲器尋址:實例1

3.4.3尋址方式4.存儲器尋址:實例2

3.4.3尋址方式4.存儲器尋址:實例3

3.4.3尋址方式5.其它尋址方式:2

5.2I/O端口尋址方式①直接端口尋址:以8位立即數(shù)方式在指令中直接給出。端口號范圍0~255例如:INAL,n②間接端口尋址:通過DX間接尋址,16位端口地址放在DX中。端口號范圍0~65535例如:OUTDX,AL3.4.3尋址方式5.其它尋址方式:3

5.3轉(zhuǎn)移類指令的尋址方式8086/8088系統(tǒng)中,存儲器采用分段結(jié)構(gòu),轉(zhuǎn)移類指令有段內(nèi)轉(zhuǎn)移和段間轉(zhuǎn)移。條件轉(zhuǎn)移指令:只允許實現(xiàn)段內(nèi)轉(zhuǎn)移,且段內(nèi)短轉(zhuǎn)移,即轉(zhuǎn)移地址范圍為-128~+127字節(jié),由指令直接給出8位地址偏移量。無條件轉(zhuǎn)移指令和調(diào)用指令:段內(nèi)短轉(zhuǎn)移,段內(nèi)直接轉(zhuǎn)移,段內(nèi)間接轉(zhuǎn)移,段間直接轉(zhuǎn)移,段間間接轉(zhuǎn)移。思考題8086指令MOVAX,1234H,該指令源操作數(shù)的尋址方式為

。A.立即尋址B.寄存器尋址C.直接尋址D.寄存器間址答案:A使用直接尋址方式時,操作數(shù)總是在

中。A.通用寄存器B.堆棧C.主存單元D.段寄存器答案:C思考題寄存器間接尋址方式中,操作數(shù)在

中。A.通用寄存器B.堆棧C.主存單元D.段寄存器答案:C思考題思考題8086指令MOVAX,[BX],該指令源操作數(shù)的尋址方式為

。A.立即尋址B.寄存器尋址C.直接尋址D.寄存器間址答案:D8086指令MOVAX,[3000H],該指令源操作數(shù)的尋址方式為

。A.立即尋址B.寄存器尋址C.直接尋址D.寄存器間址答案:C思考題8086在基址加變址的尋址方式中,基址寄存器可以為

,變址寄存器可以為SI或DI。A.AX或CXB.BX或BPC.SI或BXD.DX或DI答案:B思考題8086CPU在基址加變址的尋址方式中,基址寄存器可以為BX或BP,變址寄存器可以為

。A.AX或CXB.BX或BPC.SI或BXD.SI或DI

答案:D思考題8086/8088可用于寄存器間接尋址的寄存器有

個。A.1B.2C.3D.4答案:D思考題采用寄存器間接尋址時,存儲單元的有效地址由寄存器指出,這些寄存器為

。A.AX,BX,CX,DXB.CS,ES,DS,SSC.BX,BP,SI,DID.SP,BP,SI,DI

答案:C思考題如果以BP寄存器對操作數(shù)進行間接尋址,則操作數(shù)默認(rèn)在

。A.代碼段B.數(shù)據(jù)段C.堆棧段D.擴展段

答案:C思考題如果以BX寄存器對操作數(shù)進行間接尋址,則操作數(shù)默認(rèn)在

。A.代碼段B.數(shù)據(jù)段C.堆棧段D.擴展段答案:B思考題MOVAX,ES:[BX][SI]的源操作數(shù)的物理地址是

。A.16×(DS)+(BX)+(SI)B.16×(ES)+(BX)+(SI)C.16×(SS)+(BX)+(SI)D.16×(CS)+(BX)+(SI)答案:B思考題(DS)=2000H,(SS)=1500H,(ES)=3200H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,數(shù)據(jù)段中的變量名VAL(偏移量)值為50H,指出下列各條指令中源操作數(shù)的尋址方式是什么?對存儲器操作,其物理地址是多少?(1)MOVAX,[100H](2)MOVAX,ES:[BX](3)MOVAX,[BP](4)MOVAX,VAL[SI](5)MOVAX,[BX][SI](6)MOVAX,VAL[BX][SI]思考題3.4.4指令的分類

8086指令系統(tǒng)中,包含133條基本指令,與尋址方式結(jié)合,再加上不同的數(shù)據(jù)形式,可構(gòu)成上千種指令。①按功能指令可分為6類:②數(shù)據(jù)傳送類③算術(shù)運算類④邏輯運算與移位類⑤串操作類⑥處理器控制類1、數(shù)據(jù)傳送類

可完成寄存器與寄存器之間、寄存器與存儲器之間,寄存器與I/O接口之間的字節(jié)或字傳送。特點:除SAHF和POPF不影響標(biāo)志寄存器內(nèi)容。共14條,分為4小類:通用數(shù)據(jù)傳送(5條)目標(biāo)地址傳送(3條)標(biāo)志位傳送(4條)I/O數(shù)據(jù)傳送(2條)1、數(shù)據(jù)傳送類

1、數(shù)據(jù)傳送類字節(jié)或字傳送:MOV目的,源字壓入堆棧:PUSH源字彈出堆棧:POP目的字節(jié)或字交換:XCHG目的,源字節(jié)翻譯:XLAT

①通用數(shù)據(jù)傳送指令(5條)1、數(shù)據(jù)傳送類:通用數(shù)據(jù)傳送源操作數(shù):8/16位寄存器、存儲器中的某個字節(jié)/字,或者

8/16位立即數(shù);目標(biāo)操作數(shù):

8/16位寄存器、存儲器中的某個字節(jié)/

字,不能為立即數(shù);

MOVd,s;將源操作數(shù)s指定的內(nèi)容送到目的d立即數(shù)存儲器通用寄存器段寄存器1、數(shù)據(jù)傳送類:通用數(shù)據(jù)傳送MOV指令可傳送8位數(shù)據(jù),也可傳送16位數(shù)據(jù)。MOV指令中的兩個操作數(shù)s和d,必用1個寄存器,不允許同為存儲單元。不能用CS和IP做目的操作數(shù)。不允許段寄存器之間直接數(shù)據(jù)傳送。不允許立即數(shù)做目的操作數(shù)。不能向段寄存器送立即數(shù)。

MOV指令需注意問題:1、數(shù)據(jù)傳送類:通用數(shù)據(jù)傳送MOVAX,0:AX清0,字傳送MOVAL,12H:AL12H,字節(jié)傳送

例1:8/16位立即數(shù)送累加器AL和AX的指令。MOVAL,[SI]MOV[DI],AL例2:兩個存儲單元(SI)和(DI)之間傳送數(shù)據(jù)。1、數(shù)據(jù)傳送類:通用數(shù)據(jù)傳送MOVAH,AL:AHAL,字節(jié)傳送MOVDS,AX:DSAX,字傳送MOVSI,BP:SIBP,字傳送

例3:CPU內(nèi)存寄存器之間(除CS,IP外)實現(xiàn)數(shù)據(jù)的任意傳送。1、數(shù)據(jù)傳送類:通用數(shù)據(jù)傳送MOVAL,BUFFER:AL內(nèi)存單元BUFFER中字節(jié)內(nèi)容MOVAX,[SI]:AXSI間接尋址指示的內(nèi)存兩單元字內(nèi)容MOV[DI],CX:[DI]CX的內(nèi)容

例4:CPU內(nèi)部通用寄存器與存儲器之間實現(xiàn)的數(shù)據(jù)傳送1、數(shù)據(jù)傳送類:通用數(shù)據(jù)傳送MOVAX,DATA:AX數(shù)據(jù)段首地址DATAMOVDS,AX:DSAX

例5:將數(shù)據(jù)段首地址DATA填入DS中1、數(shù)據(jù)傳送類:通用數(shù)據(jù)傳送特點:s和d可以是16位寄存器或存儲器兩相鄰單元;堆棧按字操作;每執(zhí)行一條入棧指令,堆棧地址指針SP減2,入棧的數(shù)據(jù)位于棧頂;高位字節(jié)先入棧,放在較高地址單元,低位字節(jié)后入棧,放在較低地址單元:“先進先出原則”執(zhí)行彈出指令時,過程相反,棧頂指針的值加2;CS段寄存器值可以入棧,但不能反過來彈出一個字到CS。

PUSHs:將源操作數(shù)(16位)壓入堆棧POPd:將堆棧中當(dāng)前棧頂兩相鄰單元數(shù)據(jù)字彈出到d1、數(shù)據(jù)傳送類:通用數(shù)據(jù)傳送特點:可以在通用寄存器和累加器之間,通用寄存器之間交換;通用寄存器與寄存器之間進行;兩個存儲單元之間不能交換;不能使用立即數(shù);段寄存器與IP不能作為一個源或目的操作數(shù);

XCHGd,s:將源操作數(shù)和目的操作數(shù)(字或字節(jié))相互對應(yīng)交換位置。1、數(shù)據(jù)傳送類:通用數(shù)據(jù)傳送將寄存器AL中設(shè)定的一個字節(jié)數(shù)值變換為內(nèi)存一段連續(xù)表格中的另一個相應(yīng)代碼,以實現(xiàn)編碼制的轉(zhuǎn)換。對于一些無規(guī)律的代碼轉(zhuǎn)換比較方便。使用指令前:BX寄存器指向表的首地址

AL中存放待查的碼,即某一項與表首址的距

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論