版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第二章微處理器2016.22.1.18086/8088微處理器8086是1978年推出的全16位微處理器,8088是1978年推出的準16位微處理器。二者除外數(shù)據(jù)總線位數(shù)(8086為16位,8088為8位)及與此相關(guān)的部分邏輯稍有差別外,內(nèi)部結(jié)構(gòu)和基本性能相同,指令系統(tǒng)完全兼容。
在8086/8088的設(shè)計中,引入了兩個重要的結(jié)構(gòu)概念:
指令流水線
存儲器分段這兩個概念在以后升級的Intel系列微處理器中一直被沿用和發(fā)展。正是這兩個概念的引入,使8086/8088比原來的8位MPU在運行速度、處理能力和對存儲空間的訪問等性能方面有很大提高。2.18086/8088微處理器內(nèi)部結(jié)構(gòu)指令流水線存儲器分段8086是全16位微處理器,8088是準16位微處理器。二者除了外數(shù)據(jù)總線位數(shù)及與此相關(guān)的部分邏輯稍有差別外,內(nèi)部結(jié)構(gòu)和基本性能相同,指令系統(tǒng)完全兼容。
1.內(nèi)部結(jié)構(gòu)2.1.18086/8088微處理器20位ABEU控制電路總線控制電路通用寄存器累加器基址寄存器計數(shù)寄存器數(shù)據(jù)寄存器堆棧指針基址指針目的變址源變址指針寄存器變址寄存器地址加法器運算暫存器ALU標志寄存器指令指針內(nèi)部暫存器指令隊列總線接口單元(BIU)執(zhí)行單元(EU)外部總線8086/8088DB8088:8位8086:16位∑CSDSSSESIP1234568位80888086AXAHALBXBHBLCXCHCLDXDHDL
SPBPDISIALUDB16位8086CPU內(nèi)部指令執(zhí)行流程段寄存器CS程序指針寄存器IP內(nèi)容經(jīng)過地址加法器形成20位地址;由CPU內(nèi)部地址總線AB,經(jīng)過總線地址控制電路,向外部總線發(fā)讀取指令的的控制信號,外部總線開始總線操作;讀取指令送入到指令隊列中,等待執(zhí)行;EU單元從隊列中取一條指令到EU控制電路,譯碼指令需要做的系列操作,包括寄存器的內(nèi)容送累加器;操作結(jié)果經(jīng)過內(nèi)部數(shù)據(jù)總線,存放到寄存器或內(nèi)部暫存器,同時置FR;根據(jù)DS寄存器的內(nèi)容,及指令尋址方式產(chǎn)生的偏移量,經(jīng)過地址加法器,形成數(shù)據(jù)保存地址,并送到外部總線。CPU發(fā)寫總線操作命令,將暫存器的內(nèi)容,通過總線,寫到指定內(nèi)存單元。2.指令流水線指令隊列的存在使EU和BIU并行工作,取指令和分析、執(zhí)行指令操作可重疊進行,形成了兩級指令流水線結(jié)構(gòu),減少了CPU等待時間,提高了CPU的利用率,加快了整機運行速度,降低了對存儲器存取速度的要求。BIUEU8086/8088的指令“流水”操作取指令1取指令2譯碼1取數(shù)據(jù)1執(zhí)行1取指令3譯碼2存結(jié)果1執(zhí)行2取指令4譯碼3取指令5等待3.存儲器分段8086物理地址(1M=220)將1MB的物理存儲空間分成若干個邏輯段,每段大小為64KB。
64KB30000H(段基址)段的起始單元地址叫段基址,存放在段寄存器中。通過4個段寄存器,CPU每次可同時對4個段進行尋址。內(nèi)存00000H00001H00002H00003HFFFFFH分段方式不唯一,各段之間可以連續(xù)、分離、部分重疊或完全重疊,這主要取決于對各個段寄存器的預(yù)置內(nèi)容。1000H2000H3100H3100H代碼段(64KB)堆棧段(64KB)數(shù)據(jù)段與附加數(shù)據(jù)段重疊(64KB)CS10000H20000H31000HSSDSES1FFFFH2FFFFH……40FFFH……………存儲器分段結(jié)構(gòu)示例
物理地址是1MB存儲空間中的某一單元地址,用20位地址碼表示,CPU訪問存儲器時,地址總線上送出的就是物理地址。
邏輯地址在編程時采用,由段基址和偏移地址組成,兩者均為16位。內(nèi)存20000H20A00H0A00H物理地址20A00H邏輯地址2000物理地址和邏輯地址邏輯地址與20位物理地址的變換關(guān)系:
物理地址=段基址×16+偏移地址偏移地址段基址段基址000020位物理地址邏輯地址150150
左移四位190∑地址加法器邏輯地址與物理地址的變換【例】若數(shù)據(jù)段寄存器DS=2100H,試確定該存儲區(qū)段物理地址的范圍。
一個邏輯段的最大容量為64KB;第一個存儲單元的偏移地址為0;最后一個存儲單元的偏移地址為FFFFH。該數(shù)據(jù)區(qū)段由低至高相應(yīng)存儲單元的偏移地址為:0000H~FFFFH。
存儲區(qū)的首地址=DS×16+偏移地址=2100H×16+0000H=21000H
存儲區(qū)的末地址=DS×16+偏移地址=2100H×16+FFFFH=30FFFH
2.2Pentium微處理器2-16實地址工作模式最基本的工作方式。
8086/8088的實地址模式保持兼容。
微處Pentium理器的實地址模式具有更強的功能,增加了寄存器,擴充了指令,可進行32位操作。
實模式操作方式只允許微處理器尋址第一個1MB存儲器空間;當(dāng)微處Pentium理器工作于實地址模式時,存儲器的管理方式與8086微處理器存儲器的管理方式完全相同。2.2.3Pentium的四種工作方式2.保護虛擬方式
通常在程序運行過程中,應(yīng)防止以下情況的發(fā)生:
①應(yīng)用程序破壞系統(tǒng)程序。
②某一應(yīng)用程序破壞了其他應(yīng)用程序。
③錯誤地把數(shù)據(jù)當(dāng)作程序運行。
為了避免出現(xiàn)以上情形的發(fā)生,所采取的措施稱作“保護”。
CPU復(fù)位RSM復(fù)位或RSMVM=0VM=1復(fù)位復(fù)位或PE=0使CR0的PE=1系統(tǒng)管理方式保護方式虛擬8086方式RSMSMI實地址方式SMISMI實地址方式實地址方式:工作原理與8086基本相同,主要區(qū)別是借助操作數(shù)長度前綴能處理32位數(shù)據(jù),運行速度也更高,且可使用4個數(shù)據(jù)段。保護方式保護方式:CPU可訪問的物理存儲空間為232=4GB;程序可用的虛擬地址空間為246=64TB。段長度在啟動頁功能時是4GB,不啟動頁功能時是1MB??芍С侄嘤脩艉蛦斡脩舻亩嗳蝿?wù)操作,并對各任務(wù)提供了多方面的保護機制。虛擬8086方式虛擬8086方式:既有保護功能又能執(zhí)行8086代碼的工作方式,是保護方式的一種子方式。CPU的工作原理與保護虛地址方式下相同,但程序指定的邏輯地址解釋與8086相同。系統(tǒng)管理方式系統(tǒng)管理方式:使設(shè)計者實現(xiàn)高級管理功能,如對電源的管理以及為操作系統(tǒng)和正在運行的程序提供安全性。基本寄存器系統(tǒng)級寄存器調(diào)試和模型專用寄存器浮點寄存器Pentium的內(nèi)部寄存器,按功能可分為4類:2.2.2Pentium內(nèi)部寄存器
2.280486微處理器的體系結(jié)構(gòu)標志寄存器指令指針寄存器EFLAGSFLAGSEIPIP311503115031161570通用寄存器EAXAHAXALEBXBHBXBLECXCHCXCLEDXDHDXDLEDIDIESISIEBPBPESPSP1.基本寄存器選擇器CSSSDSESFSGS150630描述符高速緩存器段寄存器EIP用于保存下一條待預(yù)取指令相對于代碼基址的偏移量。它的低16位也可單獨訪問,稱之為IP。標志寄存器位定義CFEFLAGSFLAGS313029282726252423222120191817161514131211109876543210ACVMRF0NTIOPLOFDFIFTFSFZF0AF0PF0X對準檢查標志X虛擬86模式標志X恢復(fù)標志X嵌套標志X特權(quán)級標志S溢出標志C方向標志X中斷允許標志X自陷標志S符號標志S零標志S輔助進位標志S奇偶標志S進位標志注:S表示狀態(tài)標志,X表示系統(tǒng)標志,C表示控制標志X虛擬中斷標志XID標志X虛擬中斷掛起0000000000VIFVIPID選擇器描述符高速緩存器CSSSDSESFSGS150630段寄存器段寄存器Pentium有6個段寄存器:CS--指明當(dāng)前的代碼段SS--指明當(dāng)前的堆棧段DSESFSGS決定程序使用存儲器區(qū)域塊指明當(dāng)前的4個數(shù)據(jù)段編程者可直接訪問的編程者不能訪問的段選擇符段描述符實地址方式和虛擬8086方式下相同,段的長度固定為64KB,段選擇器就是段寄存器,它保存的是邏輯段基址的高16位,將它的內(nèi)容左移4位即可得到實際段基址,而不必使用描述符高速緩存器。在保護虛地址方式下,段的長度可以在1字節(jié)到4G字節(jié)之間變化;為了描述每個段的基址、屬性和邊界,為每個段定義了一個描述符。Pentium段的定義與8086有所不同:2.2.3Pentium的四種工作方式實地址工作模式最基本的工作方式。
8086/8088的實地址模式保持兼容。
微處Pentium理器的實地址模式具有更強的功能,增加了寄存器,擴充了指令,可進行32位操作。
實模式操作方式只允許微處理器尋址第一個1MB存儲器空間;當(dāng)微處Pentium理器工作于實地址模式時,存儲器的管理方式與8086微處理器存儲器的管理方式完全相同。
2.保護虛擬方式
通常在程序運行過程中,應(yīng)防止以下情況的發(fā)生:
①應(yīng)用程序破壞系統(tǒng)程序。
②某一應(yīng)用程序破壞了其他應(yīng)用程序。
③錯誤地把數(shù)據(jù)當(dāng)作程序運行。
為了避免出現(xiàn)以上情形的發(fā)生,所采取的措施稱作“保護”。
CPU復(fù)位RSM復(fù)位或RSMVM=0VM=1復(fù)位復(fù)位或PE=0使CR0的PE=1系統(tǒng)管理方式保護方式虛擬8086方式RSMSMI實地址方式SMISMI實地址方式實地址方式:工作原理與8086基本相同,主要區(qū)別是借助操作數(shù)長度前綴能處理32位數(shù)據(jù),運行速度也更高,且可使用4個數(shù)據(jù)段。保護方式保護方式:CPU可訪問的物理存儲空間為232=4GB;程序可用的虛擬地址空間為246=64TB。段長度在啟動頁功能時是4GB,不啟動頁功能時是1MB??芍С侄嘤脩艉蛦斡脩舻亩嗳蝿?wù)操作,并對各任務(wù)提供了多方面的保護機制。虛擬8086方式虛擬8086方式:既有保護功能又能執(zhí)行8086代碼的工作方式,是保護方式的一種子方式。CPU的工作原理與保護虛地址方式下相同,但程序指定的邏輯地址解釋與8086相同。系統(tǒng)管理方式系統(tǒng)管理方式:使設(shè)計者實現(xiàn)高級管理功能,如對電源的管理以及為操作系統(tǒng)和正在運行的程序提供安全性。這類數(shù)不帶任何符號信息,只含有量值域,僅CPU支持。分為三類:字節(jié):字:雙字:任何邏輯地址上的8位相鄰位串。任何字節(jié)地址開始的2個相鄰字節(jié)。低字節(jié)地址為該字地址。任何字節(jié)地址開始的2個相鄰字,即4個相鄰字節(jié)。最小字節(jié)地址為雙字的地址。1.無符號二進制數(shù)(序數(shù))3.1.0基本數(shù)據(jù)類型第三章80486微處理器指令系統(tǒng)這類數(shù)均以補碼表示,有8位數(shù)(字節(jié))、16位數(shù)(字)、32位數(shù)(雙字)、64位數(shù)(4字)四種。CPU支持前3種,F(xiàn)PU支持后3種。2.帶符號的二進制定點整數(shù)(整數(shù))★關(guān)于數(shù)據(jù)類型的兩點說明:(1)各類型數(shù)據(jù)中,基本的數(shù)據(jù)類型仍是字節(jié)、字和雙字盡可能將字操作對準于偶地址,將雙字操作對準于4的整數(shù)倍地址。對準的字和雙字可一次傳遞完,未對準的字和雙字需幾次才能傳遞完。(2)對于字和雙字數(shù)據(jù),80X86是采用低端低地址方式來存儲字數(shù)據(jù)被存儲在兩個相鄰的字節(jié)單元之中,低位字節(jié)在低地址單元,高位字節(jié)在高地址單元;雙字數(shù)據(jù)存儲在四個連續(xù)字節(jié)單元中,最低位字節(jié)在最低地址單元,最高字節(jié)在最高地址單元。
而字或雙字數(shù)據(jù)的地址是指最低位字節(jié)所在的單元地址。3.1.1操作數(shù)尋址方式1.尋址方式和有效地址概念2.11種尋址方式3.存儲器尋址時的段約定4.應(yīng)用舉例尋址方式就是尋找指令中操作數(shù)地址的方式。操作數(shù)所在地址有三種可能:
直接包含在指令中,即指令的操作數(shù)部分就是操作數(shù)本身。這種操作數(shù)叫立即數(shù),對應(yīng)的指令尋址方式稱為立即數(shù)尋址。包含在CPU的某個內(nèi)部寄存器中。這時指令中的操作數(shù)部分是CPU的一個寄存器,這種指令尋址方式稱為寄存器尋址。在內(nèi)存儲器中。這時指令的操作數(shù)部分包含著該操作數(shù)所在的內(nèi)存地址。這種指令尋址方式稱為存儲器尋址。1.尋址方式和有效地址概念尋址方式
在Pentium系列MPU中,內(nèi)存實際地址(PA):
PA=段基地址+段內(nèi)偏移地址(EA)為了適應(yīng)處理各種數(shù)據(jù)結(jié)構(gòu)的需要,段內(nèi)偏移地址可由以下幾部分組合而成:基址寄存器內(nèi)容變址寄存器內(nèi)容比例因子(僅與32位方式相關(guān))位移量
這四個基本部分稱為偏移地址四元素,一般又將由這四種元素組合形成的偏移地址稱為有效地址EA。EA=基址+(變址×比例因子)+位移量有效地址EA有效地址元素16位尋址32位尋址基址寄存器BX,BP任何32位通用寄存器變址寄存器SI,DI除ESP外的任何32位通用寄存器比例因子無(或1)1,2,4,8位移量0,8,16位0,8,32位
指令尋址字段規(guī)定了操作數(shù)的來源部件和如何計算EA的方法。實地址與保護方式的PA方法不同.無AX、CX、DX、SP、IP寄存器
保護方式下的尋址過程(地址轉(zhuǎn)換過程)---
虛擬存儲有效地址計算變址位移基址×比例因子+32位有效地址310BE7~BE0A31~A3┇┇┇32位32位13位描述符檢索段寄存器選擇符TIRPL153210分段部件線性地址物理存儲器4G分頁部件(可選)物理地址邏輯地址(虛擬)(CS,DS,ES,SS,FS,GS)不分頁邏輯地址=段選擇符:有效地址
偏移地址四元素可優(yōu)化組合出9種存儲器尋址方式,加上立即數(shù)尋址和寄存器尋址,Pentium共有11種尋址方式:(1)立即數(shù)尋址(2)寄存器尋址(3)直接尋址(4)寄存器間接尋址(5)基址尋址(6)變址尋址(7)比例變址尋址(8)基址加變址尋址(9)基址加比例變址尋址(10)帶位移的基址加變址尋址(11)帶位移的基址加比例變址尋址2.11種尋址方式EA=基址+(變址×比例因子)+位移量
在這種尋址方式下,操作數(shù)作為立即數(shù)直接存在指令中,可為8位、16位或32位。例:MOVAX,4567HMOVBL,78HMOVECX,12345678H⑴立即數(shù)尋址78563412順序存放在指令后面
在這種方式下,操作數(shù)包含在指令規(guī)定的8位、16位或32位寄存器中。例:MOVEAX,EDXINCCLMOVDS,AX
這種尋址方式指令編碼短,無需從存儲器取操作數(shù),故執(zhí)行速度快。(2)寄存器尋址(寄存器直接尋址)指令中的操作數(shù)部分直接給出操作數(shù)有效地址EA。與操作碼一起放在存儲器代碼段中,可以是16位或32位整數(shù)。操作數(shù)一般在數(shù)據(jù)段DS中。(3)直接尋址(存儲器直接尋址)實際中對于直接尋址,如操作數(shù)在DS段中,則可直接寫成:MOVAX,[3000H]
如操作數(shù)在DS之外的其他段(CS,SS,ES,FS,GS)中,指令中則必須用段寄存器名前綴(稱為段超越前綴)予以指明。例如:MOVAX,FS:[3000H]
直接尋址主要用于單個操作數(shù)的相對尋址場合(如簡單的標量操作數(shù)尋址和靜態(tài)分配數(shù)組的起始地址尋址等)。操作數(shù)放在存儲器中,但其有效地址EA在寄存器中,即:
EA=[寄存器]寄存器的使用規(guī)定在16位尋址和32位尋址時不一樣。
16位:BX,BP,SI,DI
32位:EAXEBX,ECX,EDX
ESI.EDI.EBP,ESP(4)寄存器間接尋址8個通用寄存器①16位尋址時,偏移地址放在SI、DI、BP或BX中。這 時又有兩種段默認情況:若以SI、DI、BX間接尋址,則默認操作數(shù)在DS段中。例如:
MOVAX,[SI];默認DS為段基址若以BP間接尋址,則默認操作數(shù)在SS段中。例如:
MOVAX,[BP];默認SS為段基址
如果操作數(shù)不在上述規(guī)定的默認段,而是在其他段,則必須在指令中相應(yīng)的操作數(shù)前加上段超越前綴。例如:MOVAX,ES:[SI]MOVAX,DS:[BP]②32位尋址時,8個32位通用寄存器均可作寄存器間接尋址例如:MOVEBX,[EAX];默認DS為段基址,傳送雙字給EBXMOVDX,[EBX];默認DS為段基址,傳送字給DXMOVCH,[EAX];默認DS為段基址,傳送字節(jié)給CH
除ESP、EBP默認段寄存器為SS外,其余6個通用寄存器均默認段寄存器為DS。如操作數(shù)在默認段之外,指令中必須加段超越前綴。
寄存器間接尋址的應(yīng)用場合與直接尋址的應(yīng)用場合相似,當(dāng)更靈活。
在這種方式下,
EA=[基址寄存器]+位移量。其中位移量一定要為常數(shù),且跟隨在操作碼之后,與操作碼一起存放在代碼段中。①16位尋址情況下,BX和BP作為基址寄存器。BX以DS作為默認段寄存器,BP以SS作為默認段寄存器。位移量可為8位或16位;②32位尋址情況下,8個32位通用寄存器均可作基址寄存器其中ESP、EBP以SS為默認段寄存器,其余6個通用寄存器均以DS為默認段寄存器。位移量為8位或32位。例如:MOVEAX,[BX+24];也可寫成MOVEAX,24[BX]MOVECX,[EBP+50];也可寫成MOVECX,50[EBP]MOVDX,[EAX+1500H];也可寫成MOVDX,1500H[EAX](5)基址尋址與32位寄存器間接尋址方式相同2-47
EA=[變址寄存器]+位移量指令書寫格式和尋址執(zhí)行過程與基址尋址相同;區(qū)別僅在于將基址寄存器改成變址寄存器。(6)變址尋址
①16位尋址時,僅SI、DI可作變址寄存器,且默認DS作為段基址寄存器。如:MOVAX,COUNT[SI]
②32位尋址時,除ESP外的任何通用寄存器均可作變址寄存器。默認EBP以SS作段基址寄存器,其余均以DS作段基址寄存器。
MOVEAX,5[EBP]MOVECX,DATA[EAX]
基址、變址尋址適于對一維數(shù)組的數(shù)組元素進行檢索操作。位移量表示數(shù)組起始地址偏移量;基址/變址表示數(shù)組元素的下標,可變。MOVECX,DATA[ESP]
是什么尋址方式?答案:基址尋址方式。默認段寄存器SS
變址尋址不能使用ESP在這種方式下:EA=[變址寄存器]×比例因子+位移量這種尋址方式只適于32位尋址一種情況。例如:MOVEAX,TABLE[ESI*4]
;TABLE是位移量,4是比例因子(7)比例變址尋址
比例變址尋址和基址/變址尋址的作用相似,也適用于對一維數(shù)組元素的檢索。但當(dāng)數(shù)組元素大小為2/4/8字節(jié)時,用它更方便、更高效。在這種尋址方式下,EA=[基址寄存器]+[變址寄存器]例如:MOVAX,[BX+SI];或?qū)懗蒑OVAX,[BX][SI]
MOVAX,[BP][SI]
它有16位尋址和32位尋址兩種情況,每種情況下基址、變址寄存器的使用規(guī)定和段寄存器的默認規(guī)定與前面所述相同。
基址寄存器與變址寄存器默認的段寄存器不相同時,一般規(guī)定由基址寄存器(比如:BP,BX)來決定默認哪一個段寄存器作段基址指針?;芳幼冎穼ぶ分饕糜诙S數(shù)組元素的檢索和二重循環(huán)等。(8)基址加變址尋址在這種方式下,EA=[基址寄存器]+[變址寄存器]×比例因子它只有32位尋址一種情況。格式舉例:MOVECX,[EDX*8][EAX];或MOVECX,[EDX*8+EAX]MOVAX,[EBX*4][ESI];或MOVAX,[EBX*4+ESI]
這種方式主要用于數(shù)組元素大小為2/4/8字節(jié)時的二維數(shù)組檢索操作等場合。(9)基址加比例變址尋址在這種方式下:EA=[變址寄存器]+[基址寄存器]+位移量
這種方式也分16位尋址和32位尋址兩種情況。變址、基址寄存器的使用約定和對段寄存器的默認約定與前面所述相同。格式舉例:MOVAX,[BX+DI+MASK]或MOVAX,MASK[BX][DI]ADDEDX,[ESI][EBP+0FFFF000H]或ADDEDX,0FFFF000H[ESI][EBP]這種尋址方式也是主要用于二維數(shù)組操作,位移量即為數(shù)組起始地址。(10)帶位移的基址加變址尋址這種方式將偏移地址四元素都用上了,即:EA=[變址寄存器]×比例因子+[基址寄存器]+位移量它只有32位尋址一種情況。各種約定和默認情況同前所述。格式舉例:INC[EDI*8][ECX+40];或INC[EDI*8+ECX+40]
當(dāng)二維數(shù)組的數(shù)組元素大小為2/4/8字節(jié),且數(shù)組起始地址不為0時,適于用這種尋址方式進行數(shù)組檢索操作。(11)帶位移的基址加比例變址尋址3.存儲器尋址時的段約定訪存操作類型 默認段寄存器允許超越的段寄存器偏移地址寄存器堆棧操作
SS
無(E)SP取指令代碼
CS
無(E)IP源串?dāng)?shù)據(jù)訪問
DS
CS、SS、ES、FS、GS(E)SI目的串?dāng)?shù)據(jù)訪問
ES
無(E)DI通用數(shù)據(jù)訪問
DSCS、SS、ES、FS、GS偏移地址SSCS、DS、ES、FS、GS偏移地址以(E)BP、(E)SP間接尋址的指令4.應(yīng)用舉例
CPUBX0100HSI0002HDS3000H30100H12H30101H34H30102H56H30103H78H31200H2AH31201H4CH31202HB7H31203H65HM
例2.1已知80486工作在實地址方式下,其中一些寄存器的內(nèi)容和一些存儲單元的內(nèi)容如圖所示,試指出下列各條指令執(zhí)行后,AX中的內(nèi)容。⑴MOVAX,2010H⑵MOVAX,BX⑶MOVAX,[1200H]⑷MOVAX,[BX]⑸MOVAX,1100H[BX]⑹MOVAX,[BX][SI]⑺MOVAX,1100H[BX+SI]AX=2010AX=0100HAX=4C2AHAX=3412AX=4C2AHAX=7856AX=65B7H數(shù)據(jù)傳送是計算機中最基本、最常用、最重要的一類操作。如:這類指令尋址方式最豐富,除POPF外,均不影響標志寄存器的標志位。在實際程序中,它的使用頻率最高?!窀鞣N初始化操作●取操作數(shù)●保存結(jié)果3.2.1數(shù)據(jù)傳送類指令3.280486微處理器指令系統(tǒng)1.傳送指令MOV指令操作:(源操作數(shù))→目的操作數(shù)
指令格式:MOV目的操作數(shù),源操作數(shù)尋址規(guī)定: REG/MEM/SREG,REGREG/MEM,SREG REG/SREG,MEMREG/MEM,IMM立即數(shù)通用寄存器(EAX、EBX、ECX、EDX、EBP、ESP、ESI、EDI)CS存儲器段寄存器(SS、DS、ES、FS、GS)MOV指令允許的傳送關(guān)系MOV指令使用說明:源操作數(shù)和目的操作數(shù)的類型必須一致。目的操作數(shù)不能為立即數(shù)。CS和(E)IP均不能用作指令的目的寄存器。段寄存器間不能直接傳送,也不能直接將立即數(shù)送給段寄存器。源操作數(shù)為立即數(shù),而目的操作數(shù)類型不確定時,要給目的操作數(shù)加類型說明。源操作數(shù)和目的操作數(shù)不能同為存儲器操作數(shù)。
目的操作數(shù),源操作數(shù)REG/MEM/SREG,REGREG/MEM,SREGREG/SREG,MEMREG/MEM,IMM⑴MOVDS,100⑵MOV[1000H],23H錯。源、目的操作數(shù)不能同為存儲器尋址。⑶MOV[1000H],[2000H]錯。立即數(shù)不能直接賦給段寄存器。錯。目的操作數(shù)長度不確定。⑷
MOVCS,AX錯。不能用傳送指令改變代碼段寄存器。⑸
MOVAX,[0100H+BX+BP]錯。地址寄存器不能同為基址寄存器。
例識別下列指令的正確性,對錯誤的指令,說明錯誤的原因。MOVAX,100MOVDS,AXMOVWORDPTR[1000H],23HMOVAX,[2000H]MOV[1000H],AX2.交換指令操作:(目的操作數(shù))(源操作數(shù))格式:XCHG目的操作數(shù),源操作數(shù)
REG/MEM, REG REG,MEM
XCHGAX,CX
等價如下指令:
MOVBX,AXMOVAX,CXMOVCX,BX
注意:(1)該指令不影響標志位;(2)不允許使用段寄存器。
MOVSXECX,AL;(AL)=F8H;(ECX)F=FFFFFFF8MOVZXECX,AX;(AX)=FFF8H;(ECX)=0000FFF8H3.擴展傳送指令(非8086指令)
格式:
MOVSX目的操作數(shù),源操作數(shù)
MOVZX目的操作數(shù),源操作數(shù)
操作:MOVSX:帶符號擴展指令 MOVZX:零擴展指令特點:擴展后數(shù)的真值不變。 4.地址傳送指令格式:LEA目的操作數(shù),源操作數(shù) REG16/REG32MEM操作:
REG16/REG32←EA
(源操作數(shù)地址偏移)裝入有效地址注意:寄存器、立即數(shù)和段寄存器都不能作為源操作數(shù)。
說明:LEA指令處理變量的地址(EA)而不是變量的內(nèi)容
LEA和MOV指令的比較
MOVBX,OFFSETVAL;將VAL的有效地址=>BXMOVBX,VAL;將VAL的值=>BXLEABX,VAL;將VAL的有效地址=>BXMOV指令用
OFFSET操作不能直接取數(shù)組中任意元素
的位移量,只能取數(shù)組的第一個元素的位移量,而LEA可以傳送任意數(shù)組元素的位移量。如
LEADX,BETA[BX][SI]LEA的源操作數(shù)必須是存儲器操作數(shù)LEA不影響F標志5.堆棧指令PUSH/POP格式:PUSH 源操作數(shù)
REG16/MEM16 REG32/MEM32操作:((E)SP)-2/4→(E)SP (源操作數(shù))→(SS:(E)SP)注:286以上可以有立即數(shù)方式。(1)壓棧指令先調(diào)整指針,然后存儲數(shù)據(jù);先壓高字節(jié)后壓低字節(jié)格式:POP目的操作數(shù)
MEM16/MEM32/REG16/REG32操作:([SS:(E)SP])→目的操作數(shù) ((E)SP)+2/4→(E)SP(2)彈棧指令先傳數(shù)據(jù),后調(diào)整指針先彈低字節(jié)后彈高字節(jié)。堆棧指令的操作數(shù)只能為字或雙字。8086只有字操作指令操作數(shù)是存儲器尋址時,操作數(shù)長度不確定時,要用PTR運算符。PUSH和POP要成對出現(xiàn),以保持堆棧平衡堆棧指令也隱含了一個目的/源操作數(shù)—堆棧。壓棧順序是先壓高字節(jié)后壓低字節(jié),彈棧則是先彈低字節(jié)后彈高字節(jié)。(3)堆棧指令使用說明:
例用堆棧操作指令將BX和CX中的兩個16位數(shù)(其中BX是高16位)組成32位數(shù)傳送到EAX寄存器中。
PUSH BX ;
PUSH CX ;
POP EAXEAX=BX:CX解:SP1SP1-2BHBLCHCLSP1-4……SS【例】分析下列程序段的執(zhí)行情況。MOVCX,3000H
MOVSP,CX;設(shè)置堆棧的底 部,MOVAX,1234H;設(shè)置AX初始值,MOVBX,5678H;設(shè)置BX初值,
PUSHAX
PUSHBX;將AX,BX內(nèi)容壓入堆棧
POPAX
POPBX;由堆棧彈出數(shù)據(jù)送入AX,BX中實現(xiàn)AX,BX寄存器內(nèi)容交換POP:先傳數(shù)據(jù),后調(diào)整指針;先彈低字節(jié)后彈高字節(jié)。PUSH:先調(diào)整指針,然后存儲數(shù)據(jù);先壓高字節(jié)后壓低字節(jié)說明:
XLAT是一條隱含尋址的指令。隱含兩個操作數(shù):DS:(E)BX存放表基址,AL存放查表參數(shù)。使用前要給隱含操作數(shù)賦初值。6.查表指令
格式:
XLAT
操作:
((EBX)+(AL))→AL((BX)+(AL))→AL
例2.5內(nèi)存中自TABLE開始的16個單元連續(xù)存放著自然數(shù)0到15的平方值(構(gòu)成一個平方表),任給一整數(shù)M在XX單元中(該數(shù)為0≤M≤15),查表求M的平方值,并將結(jié)果存入YY單元中。解: LEABX,TABLE MOVAL,XX
XLAT
MOVYY,ALTABLE0+11+24+39+15225XX5?說明:I/O端口有兩種尋址方式
●
直接尋址,尋址范圍為0~255;
●
間接尋址,尋址范圍為0~216-1。(1)輸入指令?格式:IN累加器,端口AL/AX/EAX,IMM8AL/AX/EAX,DX?操作:AL/AX/EAX←(I/O端口)7.I/O指令(2)輸出指令格式:OUT端口, 累加器
IMM8,AL/AX/EAXDX,AL/AX/EAX操作:(AL/AX/EAX)→I/O端口
‘T’+1‘O’+2‘M’+3‘.’+4‘.’+520+6‘R’+7‘O’+8‘S’+9‘E’+1030+11‘K’+12‘A’+13‘T’+14‘E’+15‘.’+16
25NAMESDS……例
設(shè)程序在數(shù)據(jù)段中定義的數(shù)組如下:NAMESDB'TOM..'DB20DB'ROSE'DB30DB'KATE.'DB25
請指出下列指令是否正確,如正確,A累加器中的結(jié)果是多少?8.傳送指令應(yīng)用舉例1.MOVBX,OFFSETNAMESMOVAL,[BX+5](AL)=[NAMES+5]=202.MOVAX,WORDPTRNAMES+1
(AX)=[NAMES+1]=‘MO’=4D4FH
‘T’+1‘O’+2‘M’+3‘.’+4‘.’+520+6‘R’+7‘O’+8‘S’+9‘E’+1030+11‘K’+12‘A’+13‘T’+14‘E’+15‘.’+16
25NAMESDS……3.MOVBX,6MOVSI,5LEADI,NAMES[BX][SI]MOVAL,[DI](DI)=NAMES偏移地址+(BX)+(SI)=NAMES偏移地址+11(AL)=[NAMES+11]=‘K’=4BH它的操作結(jié)果一般會影響標志寄存器中的狀態(tài)標志位,如ZF、CF、SF、OF、AF、PF等。3.2.2算術(shù)運算類指令1.加法/減法指令
操作:
ADD:(目的)+(源)→目的
SUB:(目的)-(源)→目的
ADC:(目的)+(源)+CF→目的
SBB:(目的)-(源)-CF→目的目的操作數(shù),源操作數(shù)REG,REG/MEM/IMMMEM,REG/IMM
格式:
ADDSUB
ADCSBB列3.12已知AL=0C1H,BL=7FH.
SUBAL,BL人工計算:11000001(AL)-01111111(BL)=0100001042HAL=42H,ZF=0,SF=0,CF=0,AF=1,PF=1,OF=1[負-正]=正,或C2=0,C1=1
對于無符號數(shù),CF=0,無溢出;對于有符號數(shù),OF=1,溢出。
機器計算過程:
11000001+10000001;補碼,BL求反加1=101000010;42H根據(jù)補碼溢出判斷標準,C2=1,C1=0,溢出;AL=42H,ZF=0,SF=0,CF=0,AF=1,PF=1,OF=1
用補碼加法實現(xiàn)減法時,CF,AF需要取反。X34H+112H+278H+356HYEAH+13FH+233H+3A0H解:⑴用8086指令MOVAX,YSUBX,AX;低16位字數(shù)據(jù)相減
MOVAX,2[Y]SBB2[X],AX;高16位字數(shù)據(jù)相減⑵用80386/486指令
MOVEAX,DWORDPTRYSUBDWORDPTRX,EAX兩個32位雙字數(shù)據(jù)X、Y定義如下:
XDW1234H,5678H;X=56781234YDW3FEAH,A033H;Y=33A03FEA請編寫計算X=X-Y的程序段(低位在前)例特殊加減法指令I(lǐng)NC:(目的操作數(shù) )+1→目的操作數(shù)DEC:(目的操作數(shù))+1→目的操作數(shù)目的操作數(shù):寄存器或存儲器影響狀態(tài)標志:OF,SF,ZF,AF,PF。不影響CFINCSIINCWORDPTR[SI]INCBYTEPTR[BX][SI]DECECX加法/減法指令使用說明:ADD/SUB指令用于單個字節(jié)/字/雙字數(shù)的加/減法運算;ADC/SBB指令則常用于多精度或多字節(jié)/多字/多雙字數(shù)的加/減法運算。INC/DECREG/MEMADD/SUBREG/MEM,1兩者都執(zhí)行加1/減1操作,但前者不影響進位,而后者影響。指令的異同:2.整數(shù)變反指令(求補)格式:
NEG目的操作數(shù)
REG/MEM操作:0-(目的操作數(shù))→目的操作數(shù)標志:OF,SF,ZF,ZF,PF,CF應(yīng)用:
常用于求負數(shù)的絕對值。解:
TESTAX,8000H;測試符號位JZNEXTNEGAXNEXT:HLT
例
求AX中存放的有符號數(shù)的絕對值。3.比較指令格式:CMP目的操作數(shù),源操作數(shù)
REG,REG/MEM/IMM MEM,REG/IMMCMP與SUB指令都執(zhí)行減法操作,但前者不因操作結(jié)果改變目標操作數(shù)值,而后者改變。操作:(目的操作數(shù))-(源操作數(shù)),根據(jù)操作結(jié)果修改狀態(tài)標志,但不改變目標操作數(shù)值。
【例】CMPAL,CL
指令執(zhí)行前,AL=68H,CL=9AH。
指令執(zhí)行:
AL=68H,CL=9AH,CF=1,ZF=0,SF=1,AF=1,OF=1,PF=0。
作為無符號數(shù)比較,被減數(shù)小于減數(shù),不夠減,有借位,CF=1。作為有符號數(shù)時,C2C1=10,結(jié)果已超出有符號數(shù)所能表示的范圍,因此OF=1,有溢出。單操作數(shù)乘法指令格式:MUL/IMUL
源操作數(shù)
REG/MEM操作:MUL和IMUL分別為無符號數(shù)和有符號數(shù)乘法指令,兩種指令除操作數(shù)類型不同外,操作完全相同:字:(AX)×(源操作數(shù))→DX:AX雙字:(EAX)×(源操作數(shù))→EDX:EAX字節(jié):(AL)×(源操作數(shù))→AX源操作數(shù)4.乘法指令單操作數(shù)乘法指令的被乘數(shù)是隱含的(在AL/AX/EAX中),而結(jié)果長度一定是被乘數(shù)/乘數(shù)的二倍(在AX/DX:AX/EDX:EAX中)。源操作數(shù)不能為立即數(shù)。源操作數(shù)為存儲器操作數(shù),且類型不能確定時,要顯式說明操作數(shù)類型。要根據(jù)是有符號數(shù)還是無符號數(shù),分別選用IMUL或MUL指令指令執(zhí)行影響CF和OF標志.若指令執(zhí)行后,結(jié)果的高一半是有效數(shù)值位,則CF=OF=1,否則CF=OF=0。乘法指令使用說明:例2.11解:⑴MULBL指令完成AL和BL中的兩個無符號數(shù)相乘:AH含有效數(shù)字,∴OF=1、CF=1。(AX)=0A8CH(AL)96H×(BL)12H12C+96若(AL)=96H,(BL)=12H,求分別執(zhí)行MULBL和IMULBL指令后的結(jié)果及OF、CF狀態(tài)。AH含有效數(shù)字,∴OF=1、CF=1。解:
⑵
IMUL執(zhí)行有符號數(shù)乘法,此時AL=96H中的數(shù)是負數(shù),真值為-6AH,即:用補碼表示:(AX)=F88CH(AX)=-774H(AL)–6AH×(BL)12HD4+6A5.除法指令格式:DIV∕IDIV源操作數(shù)(除數(shù))
REG/MEM操作:按源操作數(shù)類型:狀態(tài)標志不確定字節(jié):(AX)/(源),商存于AL中,余數(shù)存于AH字:(DX:AX)/(源),商存于AX中,余數(shù)存于DX雙字: (EDX:EAX)/(源),商在EAX中,余數(shù)在EDX說明:
除法指令的被除數(shù)是隱含的,且長度一定是除數(shù)的二倍(在AX,DX:AX,EDX:EAX中)。使用除法指令常要擴展被除數(shù)長度。擴展時無符號數(shù)一般用:
MOVZXAX,ALMOVDX,0MOVEDX,0
有符號數(shù)一般用:CBW/CWD/CDQ。
CBW:等價指令MOVSXAX,ALCWD:AX帶符號擴展→DX:AX
源操作數(shù)無立即數(shù)。
MOVAX,a①;②;a×b在CX:BX中③
MOVAX,c④;c在DX:AX中⑤;a×b+c在DX:AX中⑥⑦;(a×b+c)/a,商存入S⑧IMULbMOVCX,DXMOVBX,AXCWDADDAX,BXADCDX,CXIDIVaMOVS,AX
例2.12
下列程序段完成S=(a×b+c)/a的運算,其中變量a、b、c和S均為帶符號的字數(shù)據(jù),結(jié)果的商存入S,余數(shù)則不計,填空完成下列程序。格式:AAA∕AAS∕AAM∕AAD∕DAA∕DAS功能:AAA/AAS:
未組合BCD加法/減法調(diào)整指令,隱含操作數(shù)為AL。DAA/DAS:
組合BCD加法/減法調(diào)整指令,隱含操作數(shù)為AL。6.BCD調(diào)整指令例解:MOVAL,BYTEPTRXADDAL,BYTEPTRY;低位相加
DAA;BCD碼調(diào)整
MOVBYTEPTRX,AL;保存低位結(jié)果
MOVAL,BYTEPTRX[1];取字變量的高字節(jié)
ADCAL,BYTEPTRY[1];高位相加
DAAMOVBYTEPTRX[1],AL;X=7412兩個4位壓縮BCD碼定義如下:
XDW3578H
YDW3834H
請編寫計算X+Y的程序段。多字節(jié)BCD加法/減法只能用帶進位/借位的字節(jié)加法/減法指令實現(xiàn)!
功能:分別按位進行邏輯“與”、“或”、“異或”、“測試”和“非”?!舾袷剑篈ND
OR
XOR
TEST
目標操作數(shù),源操作數(shù)
REG,REG/MEM/IMMMEM,REG/IMM
NOT目標操作數(shù)
REG/MEM3.2.3邏輯運算與移位指令1.邏輯運算指令A(yù)NDAL,DATAORAL,DATAXORAL,DATANOTDATANEGDATAANDAL,0FHORAL,01HXORAL,0FFHTESTAL,80H設(shè)AL=0C4H=11000100B
(DATA)=5AH=01011010B(AL)=01000000(AL)=11011110(AL)=10011110(DATA)=10100101(DATA)=10100110(AL)=00000100(AL)=11000101(AL)=00111011(AL)=原值CF=OF=0,ZF=0,SF=1,PF=0使用說明:②編程時要根據(jù)操作合理選用指令,一般:
●對某些二進制位‘清零’用邏輯‘與’指令A(yù)ND;●對某些二進制位‘置位’用邏輯‘或’指令OR;●對某些二進制位‘求反’用邏輯‘異或’指令XOR,全部位‘求反’用邏輯‘非’指令NOT。①邏輯運算指令除NOT指令外,都影響標志寄存器的狀態(tài)標志位,且邏輯運算后進位標志CF一定為0,所以邏輯運算指令常用于清0和清進位。③AND指令與TEST指令的區(qū)別:相同:都執(zhí)行按位“與”操作,對狀態(tài)標志位的影響相同,不同:
AND改變目標操作數(shù)的值,
TEST并不改變目標操作數(shù)的值。所以TEST指令與CMP指令的用法類似,用于產(chǎn)生按位測試的條件碼。
例已知寄存器DX:AX的內(nèi)容為32位帶符號數(shù),編寫一段程序使DX:AX的內(nèi)容成為原來數(shù)據(jù)的絕對值。 解:TESTDX,8000H;測試符號位,產(chǎn)生狀態(tài)
JZEXIT;符號位=0,結(jié)束
NEGDX;求絕對值
NEGAXSBBDX,0EXIT:HLT2.移位指令
移位指令包括:算術(shù)移位指令(SAL/SAR)邏輯移位指令(SHL/SHR)循環(huán)移位指令(ROR/ROL/RCR/RCL)雙精度移位指令(SHLD/SHRD)2-113邏輯移位算術(shù)移位算術(shù)移位只對帶符號數(shù)進行移,在移位過程中必須保持符號位不變。邏輯移位是對無符號數(shù)移位,移位時,總是用0來填補已空出的數(shù)位。每左移一位,相當(dāng)于將原數(shù)據(jù)乘以2;SHL=SAL每右移一位,相當(dāng)于將原數(shù)據(jù)除以2。SHR(無符號數(shù));SAR(有符號數(shù))根據(jù)移位操作的結(jié)果置標志寄存器中的狀態(tài)標志(AF位除外)。若移位的次數(shù)是1:
SHL,SAL移位后的結(jié)果使最高位(符號位)發(fā)生變化(CF≠SF),則將溢出標志OF置1;SAR:OF=0;SHR:OF=右移動前的最高位;若移次數(shù)大于1時,OF標志無效。邏輯移位算術(shù)移位ROL和ROR指令在執(zhí)行時,沒有把CF套在循環(huán)中,常稱為小循環(huán)移位。RCL和RCR指令在執(zhí)行時,連同CF一起循環(huán)移位,稱為大循環(huán)移位。以上四條指令僅影響標志位CF和OF。循環(huán)移位指令
例試編寫用移位和加法指令完成計算:(EAX)×9/4的程序段。
解:
(EAX)×9/4=[(EAX)×8+(EAX)]/4MOVEBX,EAX;保存EAXSAL/SHLEAX,3;(EAX)×8→EAXADD EAX,EBX;(EAX)×8+(EAX)→EAXSAR/SHR
EAX,2;(EAX)×9/4→EAX串操作約定:
用DS:(E)SI尋址源串,允許段超越;
用ES:(E)DI尋址目的串,但ES段不能超越;
由DF標志位決定(E)SI,(E)DI指針增減:DF=0,遞增;DF=1,遞減;(CLD,STD)指令執(zhí)行完成后,(E)SI,(E)DI指向下一個單元。
由串長度(字節(jié)、字、雙字)決定指針增/減量大??;
帶重復(fù)前綴時,用(E)CX作重復(fù)計數(shù)器。
3.2.4串操作類指令1.串傳送指令
格式:MOVSB/MOVSW/MOVSDMOVS 目的串,源串
MEM,MEM操作:將DS:[(E)SI]所指的源串中的一個字節(jié)、字或雙字傳送到ES:[(E)DI]指的目的串中,然后,按DF指示和操作數(shù)長度修改(E)SI,(E)DI指針,即:[ES:(E)DI]←([DS:(E)SI])(E)SI←((E)SI)±1/2/4;修改源指針(E)DI←((E)DI)±1/2/4;修改目的指針說明:應(yīng)用:用于數(shù)據(jù)塊傳送該指令允許加重復(fù)前綴REP。即:REPMOVSB/MOVSW/MOVSD由(E)CX控制串傳送指令MOVS的執(zhí)行次數(shù)。相當(dāng)于指令序列:
AGAIN:MOVSB/MOVSW/MOVSDLOOPAGAIN
例2.18編寫將數(shù)據(jù)段中自AREA1開始的100個字數(shù)據(jù)搬到附加段中以AREA2開始的數(shù)據(jù)區(qū)中的程序段。解:①用MOV指令
LEASI,AREA1
LEADI,AREA2
MOVCX,100
DONE:MOV AX,[SI]
MOV ES:[DI],AX
ADD SI,2
ADD DI,2
LOOP DONE②用基本串傳送指令
LEASI,AREA1
LEADI,AREA2
MOVCX,100
CLD
DONE:MOVSW
LOOPDONE
③
用重復(fù)串傳送指令
LEASI,AREA1 LEADI,AREA2 MOVCX,100 CLD REPMOVSW格式:LODSB/LODSW/LODSDLODS 源串
MEM說明:允許加重復(fù)前綴REP。操作:([DS:(E)SI])→AL/AX/EAX
按DF指示和操作數(shù)長度修改(E)SI指針應(yīng)用:用于取數(shù)據(jù)塊中元素值2.串裝入指令3.串存儲器指令
格式:STOSB/STOSW/STOSD STOS 目的串
MEM
說明:允許加重復(fù)前綴REP。操作:
AL/AX/EAX→([ES:(E)DI])
按DF指示和操作數(shù)長度修改(E)DI指針應(yīng)用:用于數(shù)據(jù)塊初始化。LODS和STOS結(jié)合常用于數(shù)據(jù)塊傳送。4.串掃描指令
格式:
SCASB/SCASW/SCASD SCAS 目的串
MEM 說明:允許加重復(fù)前綴REPE或REPNE。掃描次數(shù)由(E)CX指定。重復(fù)條件:REPE:IF((E)CX)≠0ANDZF=1THEN重復(fù)串掃描REPNE:
IF((E)CX)≠0ANDZF=0THEN重復(fù)串掃描,即:只要串元素不等且未到達串尾,那么就重復(fù)執(zhí)行。
操作:(AL/AX/EAX)-([ES:(E)DI]),影響標志,但不改變目的串內(nèi)容。按DF指示和操作數(shù)長度修改(E)DI指針。應(yīng)用:用于在串?dāng)?shù)據(jù)中查找關(guān)鍵字。
MOVSI,2170H;搬移 ①
MOVCX,100HCLD② MOVDI,1000H;查找
MOVCX,100H ③
JNZK1 ④MOVBYTEPTR[DI],20H;ASCII碼20H為空
K1: …MOVDI,1000HREPMOVSBREPNESCASBDECDI;回調(diào)指針例用串操作指令將100H個數(shù)的字符從2170H處搬到1000H處,然后從中檢索與AL中字符相同的單元,并將此單元換成空格符,程序段如下,請把所缺指令填上。列:對內(nèi)存中的某給定的數(shù)據(jù)塊或字符串進行搜索掃描,看其中有無關(guān)鍵字,若有,將搜索次數(shù)和存放關(guān)鍵字的地址記錄下來。分析:主體指令SCAS。要搜索的關(guān)鍵字存放在AL/AX/EAX中,被搜索實地址存放在ES:DI中;搜索數(shù)據(jù)長度存放在CX/ECX中;利用重復(fù)前綴REPNE:在沒有成功匹配前,繼續(xù)搜索;
志位ZF=1,表示成功搜索到需要的關(guān)鍵字;INC5.串比較指令格式:
CMPSB/CMPSW/CMPSDCMPS 源串,目的串
MEM,MEM說明:允許加重復(fù)前綴REPE或REPNE。操作:([DS:(E)SI])-([ES:(E)DI]),影響標志,但不改變源串和目的串內(nèi)容。按DF指示和操作數(shù)長度修改(E)DI、(E)SI指針應(yīng)用:常用于比較兩個串?dāng)?shù)據(jù)是否匹配。包括以下5種指令:無條件轉(zhuǎn)移指令(JMP)過程調(diào)用/返回指令(CALL/RET)條件轉(zhuǎn)移指令(JCC)
循環(huán)控制指令(LOOP)中斷指令(INT)無條件向目標地址轉(zhuǎn)移,可分為段內(nèi)、段間轉(zhuǎn)移,段內(nèi)、段間轉(zhuǎn)移又可分別分為直接和間接轉(zhuǎn)移。實現(xiàn)子程序調(diào)用或返回,也可歸入無條件轉(zhuǎn)移指令中。根據(jù)指令執(zhí)行后標志寄存器的狀態(tài)進行轉(zhuǎn)移,通常和CMP或TEST指令組合使用??刂蒲h(huán)程序的循環(huán),實質(zhì)上也是條件轉(zhuǎn)移指令,在CX(ECX)中預(yù)置循環(huán)次數(shù)。產(chǎn)生一個由8位立即數(shù)指定中斷號的軟中斷和處理溢出中斷。這類指令的共同特點是可改變程序的正常執(zhí)行順序,使之轉(zhuǎn)移。而改變程序的執(zhí)行順序,本質(zhì)上就是要改變CS
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 司機貨運合同范例
- 政府廣告制作合同范例
- 電力供應(yīng)設(shè)備采購招標合同三篇
- 杉鋸材購銷合同范例
- 舞廳服務(wù)合同(2篇)
- 土雞合作養(yǎng)殖合同
- 集體合同協(xié)商函
- 共同建設(shè)用地合同范例
- 安能物流加盟合同范例
- 藥店員工勞動合同范例
- 2023甘肅蘭州生物制品研究所限責(zé)任公司招聘77人歷年高頻難易度、易錯點模擬試題(共500題)附帶答案詳解
- 光伏清潔機器人行業(yè)報告
- 中國平安體育營銷品牌策略
- 《汽車銷售禮儀》課件
- 《小小主持人》課件
- 安全教育為快樂成長保駕護航
- 關(guān)于初中學(xué)生計算能力的培養(yǎng)的探究課題實施方案
- 2024青海高校大學(xué)《輔導(dǎo)員》招聘考試題庫
- 培智五年級上次數(shù)學(xué)期末考試題
- 旅游2010級酒店規(guī)劃與設(shè)計課程復(fù)習(xí)思考題
- 窨井抬升施工方案
評論
0/150
提交評論