第4章指令系統(tǒng)3_第1頁
第4章指令系統(tǒng)3_第2頁
第4章指令系統(tǒng)3_第3頁
第4章指令系統(tǒng)3_第4頁
第4章指令系統(tǒng)3_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、PUSHPUSH指令允許將字立即數(shù)壓入堆棧,如果給出的數(shù)不夠指令允許將字立即數(shù)壓入堆棧,如果給出的數(shù)不夠1616位,它會在自動擴展后壓入堆棧。位,它會在自動擴展后壓入堆棧。例如:SAR DX,3 ROL BYTE PTRBX,10 2.2. 8028680286新增指令新增指令此類指令專為支持保護虛存管理而設置,見表此類指令專為支持保護虛存管理而設置,見表4-12。2.2. 8028680286新增指令新增指令8028680286增強與增加的指令增強與增加的指令 段基址由某一個段寄存器指定,而有效地址則是通過下列段基址由某一個段寄存器指定,而有效地址則是通過下列4種地址元素計種地址元素計算出來

2、的。算出來的。偏移量:操作碼之后的偏移量:操作碼之后的8位、位、16位或位或32位的數(shù)據(jù)。位的數(shù)據(jù)。 基址:任何通用寄存器都可以作為基址寄存器,其內(nèi)容即為基址?;罚喝魏瓮ㄓ眉拇嫫鞫伎梢宰鳛榛芳拇嫫鳎鋬?nèi)容即為基址。變址:除變址:除ESP寄存器之外任何通用寄存器均可作為變址寄存器,其值為寄存器之外任何通用寄存器均可作為變址寄存器,其值為 變址。變址。比例因子:變址寄存器的值可以乘以一個比例因子,比例因子可以取比例因子:變址寄存器的值可以乘以一個比例因子,比例因子可以取 1、2、4或或8。93232位處理器指令系統(tǒng)位處理器指令系統(tǒng)v32位微處理器寄存器結(jié)構(gòu) 通用寄存器在8086基礎上擴展了16

3、位,成為32位 其低16位寄存器的用法與名稱完全與8086相同 在用做32位寄存器時,其全稱在低16位寄存器名稱上加一個E 段寄存器仍然是16位的,但是與8086CPU相比增加了兩個附加數(shù)據(jù)段寄存器FS和GS。 指令指針寄存器EIP和處理器狀態(tài)標志寄存器都是32位的。 補充:(1)直接尋址)直接尋址 DEC WORD PTR 1000HDEC WORD PTR 1000H (2 2)寄存器間接尋址)寄存器間接尋址 MOV EBXMOV EBX,ECX ECX (3 3)基址尋址)基址尋址 MOV EBX+100MOV EBX+100,ECX ECX (4 4)變址尋址)變址尋址 MOV ECX

4、MOV ECX,ESI+100 ESI+100 (5 5)帶比例因子的變址尋址)帶比例因子的變址尋址 MOV ECXMOV ECX,ESIESI* *4+1004+100 (6 6)基址變址尋址)基址變址尋址 MOV ECXMOV ECX,ESIEBXESIEBX 操作數(shù)的有效地址操作數(shù)的有效地址EA的計算公式如下:的計算公式如下: EA=基址基址+變址變址*比例因子比例因子+偏移量偏移量 以上以上4個因素的組合形成個因素的組合形成9種存儲器尋址方式。種存儲器尋址方式。(7)基址加比例因子變址尋址)基址加比例因子變址尋址 MOV ECX,ESI*4EBX (8)帶偏移量的基址變址尋址)帶偏移量

5、的基址變址尋址 MOV ECX,ESIEBX+100 (9)帶偏移量的基址比例因子變址尋址)帶偏移量的基址比例因子變址尋址 MOV ECX,ESI*4EBX+100 操作數(shù)的有效地址操作數(shù)的有效地址EA的計算公式如下:的計算公式如下: EA=基址基址+變址變址*比例因子比例因子+偏移量偏移量 以上以上4個因素的組合形成個因素的組合形成9種尋址方式。種尋址方式。 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 1)通用傳送指令通用傳送指令 MOV指令指令功能擴展功能擴展指令中可以出現(xiàn)指令中可以出現(xiàn)32位寄存器操作數(shù),允許使用位寄存器操作數(shù),允許使用32位位寄存器和存儲器操作數(shù)寄存器和存儲器操作數(shù)新增指令新增指令 MO

6、VSX OP目,目,OP源;帶符號數(shù)擴展指令源;帶符號數(shù)擴展指令 MOVSZ OP目,目,OP源;無符號數(shù)擴展指令源;無符號數(shù)擴展指令 MOVSXMOVSX指令將源操作數(shù)的內(nèi)容送到目的操作數(shù)中,目的指令將源操作數(shù)的內(nèi)容送到目的操作數(shù)中,目的操作數(shù)空出的高位用源操作數(shù)的符號位來填補;操作數(shù)空出的高位用源操作數(shù)的符號位來填補;MOVSZMOVSZ指令同樣將源操作數(shù)的內(nèi)容送到目的操作數(shù)中,但目的指令同樣將源操作數(shù)的內(nèi)容送到目的操作數(shù)中,但目的操作數(shù)空出的高位用零來填補。要求指令中的目的操作操作數(shù)空出的高位用零來填補。要求指令中的目的操作數(shù)必須為數(shù)必須為1616位或位或3232位的通用寄存器,源操作數(shù)

7、可以是位的通用寄存器,源操作數(shù)可以是8 8位或位或1616位的寄存器或存儲器操作數(shù)。同時明確要求,源位的寄存器或存儲器操作數(shù)。同時明確要求,源操作數(shù)的長度要小于目的操作數(shù)。操作數(shù)的長度要小于目的操作數(shù)。 新增指令功能新增指令功能 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 1)通用傳送指令通用傳送指令 PUSHPUSH指令指令 功能擴展功能擴展允許立即數(shù)入棧,允許使用允許立即數(shù)入棧,允許使用3232位操作數(shù)(此時由位操作數(shù)(此時由ESPESP指向堆棧棧頂,進棧時先將指向堆棧棧頂,進棧時先將ESPESP減減4 4,再將源操,再將源操作數(shù)依次壓入堆棧)。作數(shù)依次壓入堆棧)。 新增指令新增指令PUSHA ;將寄存器;

8、將寄存器AX、CX、DX、BX、 ;SP、BP、SI、DI依次壓入堆棧依次壓入堆棧PSHAD ;將寄存器;將寄存器EAX、ECX、EDX、EBX、ESP、 ; EBP、ESI、EDI依次壓入堆棧依次壓入堆棧 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 1)通用傳送指令通用傳送指令 POPPOP指令指令 功能擴展功能擴展允許彈出允許彈出3232位操作數(shù)(此時由位操作數(shù)(此時由ESPESP指向堆棧棧頂,出指向堆棧棧頂,出棧時先將源操作數(shù)依次彈出堆棧,再將棧時先將源操作數(shù)依次彈出堆棧,再將ESPESP加加4 4)。)。 新增指令新增指令POPA ;從棧頂彈出;從棧頂彈出8個字分別送入寄存器個字分別送入寄存器DI 、S

9、I 、 ;BP 、 SP 、 BX 、DX 、CX 、 AX POPAD ;從棧頂彈出;從棧頂彈出8個字分別送入寄存器個字分別送入寄存器EDI 、ESI 、 ;EBP 、 ESP 、 EBX 、EDX 、ECX 、EAX 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 2)地址傳送指令地址傳送指令 LEA指令指令 允許使用允許使用32位操作數(shù)。位操作數(shù)。 LDS指令指令 允許從數(shù)據(jù)段中取出允許從數(shù)據(jù)段中取出3232位的偏移量送位的偏移量送ESIESI,取,取1616位位 的段基址送的段基址送DSDS。 LES指令指令 允許允許從當前數(shù)據(jù)段中取從當前數(shù)據(jù)段中取4848位的地址指針送位的地址指針送ESES和和EDIED

10、I 寄存器。寄存器。 新增指令新增指令LFS ;從當前數(shù)據(jù)段中?。粡漠斍皵?shù)據(jù)段中取48位的地址指針送位的地址指針送FS和和ESI寄存寄存 ; 器器LGS ;從當前數(shù)據(jù)段中?。粡漠斍皵?shù)據(jù)段中取48位的地址指針送位的地址指針送GS和和ESI寄存寄存 ; 器器LSS ;從當前數(shù)據(jù)段中??;從當前數(shù)據(jù)段中取48位的地址指針送位的地址指針送SS和和ESP寄存寄存 ; 器器 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 3)標志傳送指令標志傳送指令 除了除了80868086指令系統(tǒng)中的標志傳送指令指令系統(tǒng)中的標志傳送指令LAHFLAHF、SAHFSAHF、PUSHFPUSHF、POPFPOPF之外,之外,8038680386還

11、設置了以下新增指令:還設置了以下新增指令: 新增指令新增指令PUSHFD ;將標志寄存器中的;將標志寄存器中的32位數(shù)據(jù)壓棧位數(shù)據(jù)壓棧 POPFD ;將棧頂?shù)碾p字彈出到將棧頂?shù)碾p字彈出到3232位的標志寄存器位的標志寄存器 算術(shù)運算指令算術(shù)運算指令 1)1)加法指令。加法指令包括加法指令。加法指令包括ADDADD、ADCADC和和INCINC指令,在指令,在 8038680386指令系統(tǒng)中其操作數(shù)可以是字節(jié)、字或雙字。指令系統(tǒng)中其操作數(shù)可以是字節(jié)、字或雙字。2)2)減法指令。加法指令包括減法指令。加法指令包括SUBSUB、SBBSBB、DECDEC、NEGNEG和和CMPCMP 指令,其擴展功

12、能同加法指令。指令,其擴展功能同加法指令。 算術(shù)運算指令算術(shù)運算指令 3)3)乘法指令乘法指令 MUL指令指令 允許操作數(shù)為兩個允許操作數(shù)為兩個32位數(shù),此時被乘數(shù)在位數(shù),此時被乘數(shù)在EAX中,乘數(shù)在指令指定中,乘數(shù)在指令指定的的32位寄存器或存儲器中,位寄存器或存儲器中,64位的乘積存在位的乘積存在EDX:EAX中。中。 IMUL指令指令 功能擴展同功能擴展同MUL指令指令 。新增指令:新增指令: IMUL OP目,目,OP源源 ;OP目目OP源源OPOP目目 IMUL OP目,目,OP源源1,OP源源2 ;OP源源1OP源源2OPOP目目在格式在格式1中除源操作數(shù)為中除源操作數(shù)為8位立即數(shù)

13、外,均要求源和目的位立即數(shù)外,均要求源和目的操作數(shù)的長度一致;格式操作數(shù)的長度一致;格式2要求源操作數(shù)要求源操作數(shù)1不能是立即數(shù),不能是立即數(shù),源操作數(shù)源操作數(shù)1和源操作數(shù)和源操作數(shù)2的長度必須一致(的長度必須一致(8位立即數(shù)除位立即數(shù)除外)。在外)。在IMUL的兩種擴充形式中,由于被乘數(shù)、乘數(shù)的兩種擴充形式中,由于被乘數(shù)、乘數(shù)和乘積的長度一樣,所以很有可能會溢出,此時溢出部和乘積的長度一樣,所以很有可能會溢出,此時溢出部分會被丟棄并且將溢出標志分會被丟棄并且將溢出標志OF置置1。功能擴展功能擴展可完成可完成6464位數(shù)除以位數(shù)除以3232位數(shù)的操作,此時被除數(shù)在位數(shù)的操作,此時被除數(shù)在EDX

14、EDX:EAXEAX中,除數(shù)在指令指定的中,除數(shù)在指令指定的3232位通用寄存器或存儲器位通用寄存器或存儲器中,除得的商在中,除得的商在EAXEAX中,余數(shù)在中,余數(shù)在EDXEDX中。中。 新增指令新增指令CWDE ;將;將AX中的字進行高位擴展,成為中的字進行高位擴展,成為EAX中的雙字中的雙字 CDQ;將;將EAX中的雙字進行高位擴展,得到中的雙字進行高位擴展,得到EDX和和EAX ;中的;中的64位數(shù)位數(shù) 算術(shù)運算指令算術(shù)運算指令 4)4)除法指令除法指令 DIV和和IDIV指令指令符號擴展指令符號擴展指令 除了字節(jié)擴展指令除了字節(jié)擴展指令CBW和和CWD指令之外還增加了下面兩條指令:指

15、令之外還增加了下面兩條指令: 邏輯運算指令邏輯運算指令 邏輯運算指令包括與指令邏輯運算指令包括與指令ANDAND、或指令、或指令OROR、異或指令、異或指令XORXOR和測試指令和測試指令TESTTEST,其指令格式和功能與,其指令格式和功能與8086/80888086/8088指令相同,所不同的是指令相同,所不同的是8038680386允許操作數(shù)為允許操作數(shù)為3232位數(shù)。位數(shù)。移位指令包括邏輯左移移位指令包括邏輯左移SHLSHL、邏輯右移、邏輯右移SHRSHR、算術(shù)左移、算術(shù)左移SALSAL、算術(shù)右移算術(shù)右移SARSAR,不帶進位循環(huán)左移,不帶進位循環(huán)左移ROLROL,不帶進位循環(huán)右,不帶

16、進位循環(huán)右移移RORROR,帶進位循環(huán)左移,帶進位循環(huán)左移RCLRCL和帶進位循環(huán)右移和帶進位循環(huán)右移RCRRCR,其指,其指令格式和功能與令格式和功能與8086/80888086/8088指令相同,所不同的是指令相同,所不同的是8038680386允許使用這些指令對允許使用這些指令對3232位數(shù)據(jù)進行移位,而且若移位次位數(shù)據(jù)進行移位,而且若移位次數(shù)大于數(shù)大于1 1時可以在指令中用立即數(shù)表示移位次數(shù)。時可以在指令中用立即數(shù)表示移位次數(shù)。 移位指令移位指令 移位指令移位指令新增指令新增指令SHLD OP目,目,OP源源1,OP源源2;雙精度左移指令,按;雙精度左移指令,按OP源源2給定的次給定的

17、次 ;數(shù)對;數(shù)對OP目做左移操作,移出的位進入目做左移操作,移出的位進入 ;CF標志,標志,OP目移位之后的空缺由目移位之后的空缺由OP ;源;源1的高位填補,移位之后源操作數(shù)的高位填補,移位之后源操作數(shù)1 ;的內(nèi)容不變;的內(nèi)容不變SHRD OP目,目,OP源源1,OP源源2;雙精度右移指令,按;雙精度右移指令,按OP源源2給定的次給定的次 ;數(shù)對;數(shù)對OP目做右移操作,移出的位進入目做右移操作,移出的位進入 ;CF標志,標志,OP目移位之后的空缺由目移位之后的空缺由OP ;源;源1的低位填補,移位之后源操作數(shù)的低位填補,移位之后源操作數(shù)1 ;的內(nèi)容不變;的內(nèi)容不變OPOP源源1 1只能是寄存

18、器,只能是寄存器,OPOP源源2 2可以是可以是8 8位立即數(shù)或用來指明移位立即數(shù)或用來指明移位次數(shù)的位次數(shù)的CLCL寄存器;寄存器;OPOP目可以是寄存器或存儲器操作數(shù)。目可以是寄存器或存儲器操作數(shù)。 串操作指令串操作指令新增指令新增指令 1) 常規(guī)串操作常規(guī)串操作 所有字符串操作指令(所有字符串操作指令(MOVS、CMPS、SCAS、LODS、STOS、INS和和OUTS)帶后綴)帶后綴D后,變成雙字操作。后,變成雙字操作。 REP MOVSD 雙字串傳送雙字串傳送 REPZ/REPNZCMPSD 雙字串比較雙字串比較 REPZ/REPNZSCASD 雙字串搜索雙字串搜索 LODSD 取雙

19、字取雙字 REPSTOSD 存雙字存雙字串操作指令除了字符串傳送指令串操作指令除了字符串傳送指令MOVSMOVS、字符串比較指令、字符串比較指令CMPSCMPS、字、字符串搜索指令符串搜索指令SCASSCAS、取字符串指令、取字符串指令LODSLODS和存字符串指令和存字符串指令STOSSTOS這些這些常規(guī)串操作指令來完成字或字節(jié)串的操作之外,還有一些新增指常規(guī)串操作指令來完成字或字節(jié)串的操作之外,還有一些新增指令用來完成雙字的串操作。令用來完成雙字的串操作。 串操作指令串操作指令新增指令新增指令 3) 串輸出指令串輸出指令REPOUTSB REPOUTSB ;字節(jié)串輸出,將;字節(jié)串輸出,將D

20、S:SIDS:SI所指向的字節(jié)源串輸出到所指向的字節(jié)源串輸出到DXDX指定的指定的 ;端口;端口REPOUTSW REPOUTSW ;字串輸出,將;字串輸出,將DS:SIDS:SI所指向的字源串輸出到所指向的字源串輸出到DXDX指定的端口指定的端口 REPOUTSD REPOUTSD ;雙字串輸出,將;雙字串輸出,將DS:ESIDS:ESI所指向的雙字源串輸出到所指向的雙字源串輸出到DXDX指定的指定的 ;端口;端口2) 2) 串輸入指令串輸入指令REPINSB REPINSB ;輸入字節(jié)串,從;輸入字節(jié)串,從DXDX指定的端口讀字節(jié)串到指定的端口讀字節(jié)串到ES:DIES:DI指向的緩沖區(qū)中指

21、向的緩沖區(qū)中REPINSW REPINSW ;輸入字串,從;輸入字串,從DXDX指定的端口讀字串到指定的端口讀字串到ES:DIES:DI指向的緩沖區(qū)中指向的緩沖區(qū)中REPINSD REPINSD ;輸入雙字串,從;輸入雙字串,從DXDX指定的端口讀雙字串到指定的端口讀雙字串到ES:EDIES:EDI指向的緩沖區(qū)指向的緩沖區(qū) ;中;中 轉(zhuǎn)移指令轉(zhuǎn)移指令1) 1) 條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令JECXZ OPJECXZ OP;當;當ECXECX的內(nèi)容為的內(nèi)容為0 0時轉(zhuǎn)移到由時轉(zhuǎn)移到由OPOP指定的目標地址指定的目標地址2) 2) 子程序調(diào)用和返回指令子程序調(diào)用和返回指令 功能擴展:在間接調(diào)用的時候,

22、若功能擴展:在間接調(diào)用的時候,若CALLCALL指令的目標地址為指令的目標地址為3232位寄存器或存位寄存器或存儲器,執(zhí)行時先將儲器,執(zhí)行時先將CSCS壓入堆棧,堆棧指針減壓入堆棧,堆棧指針減2 2,再將,再將EIPEIP壓棧,堆棧指針減壓棧,堆棧指針減4 4,同時同時CSCS和和EIPEIP裝入新值;用裝入新值;用RETRET完成上述間接調(diào)用的返回時,首先從棧頂彈出完成上述間接調(diào)用的返回時,首先從棧頂彈出4 4個字節(jié)裝入個字節(jié)裝入EIPEIP,再彈出兩個字節(jié)給,再彈出兩個字節(jié)給CSCS,同時堆棧指針加,同時堆棧指針加6 6。 新增指令新增指令 條件設置指令條件設置指令 格式:格式:SET條件

23、條件 寄存器寄存器/存儲器存儲器 該指令用于對指定標志位進行測試,并根據(jù)測試結(jié)果將指定的寄該指令用于對指定標志位進行測試,并根據(jù)測試結(jié)果將指定的寄存器或存儲器置存器或存儲器置1或置或置0。條件測試指令的各種形式及其各自完成。條件測試指令的各種形式及其各自完成的功能見表的功能見表4-13。 中斷指令中斷指令 輸入輸出指令輸入輸出指令中斷指令包括中斷指令包括INT n、INTO和和IRET,這些指令格式和功能與,這些指令格式和功能與8086相相同,除此之外還增加了一條指令:同,除此之外還增加了一條指令:IRETD ;從堆棧中依次彈出相應字節(jié)的數(shù)據(jù)給;從堆棧中依次彈出相應字節(jié)的數(shù)據(jù)給EIP、CS和和

24、 ;EFLAGS寄存器寄存器1) IN指令指令 可以從外設端口讀入可以從外設端口讀入32位數(shù)到位數(shù)到EAX。2) OUT指令指令 可以將可以將EAX中的中的32位數(shù)通過端口傳送到外設。位數(shù)通過端口傳送到外設。 位操作指令位操作指令1) 位測試和設置指令位測試和設置指令 BT OP目,目,OP源源 ;測試由源操作數(shù)指出的目的操作數(shù)的二進制;測試由源操作數(shù)指出的目的操作數(shù)的二進制 ;位,將其送入;位,將其送入CF標志標志BTCOP目,目,OP源源 ;測試由源操作數(shù)指出的目的操作數(shù)的二進制;測試由源操作數(shù)指出的目的操作數(shù)的二進制 ;位,將其送入;位,將其送入CF標志,測試后將該位取反標志,測試后將該

25、位取反BTROP目,目,OP源源 ;測試由源操作數(shù)指出的目的操作數(shù)的二進制;測試由源操作數(shù)指出的目的操作數(shù)的二進制 ;位,并將其送入;位,并將其送入CF標志,測試后將該位清零標志,測試后將該位清零 BTSOP目,目,OP源源 ;測試由源操作數(shù)指出的目的操作數(shù)的二進制;測試由源操作數(shù)指出的目的操作數(shù)的二進制 ;位,并將其送入;位,并將其送入CF標志,測試后將該位置標志,測試后將該位置1目的操作數(shù)是目的操作數(shù)是16位或位或32位的寄存器或存儲器;源操作數(shù)可位的寄存器或存儲器;源操作數(shù)可以是以是8位立即數(shù)或與目的操作數(shù)位數(shù)相同的寄存器,它指出位立即數(shù)或與目的操作數(shù)位數(shù)相同的寄存器,它指出位號,其最大

26、值為位號,其最大值為31。位操作指令位操作指令2) 位掃描指令位掃描指令 指令格式:指令格式:BSF OP目,目,OP源源 BSR OP目,目,OP源源指令功能:二指令均完成對操作數(shù)進行掃描的操作,將第一個掃描指令功能:二指令均完成對操作數(shù)進行掃描的操作,將第一個掃描到是到是“1”的位的位號送入目的操作數(shù)。如果源操作數(shù)為的位的位號送入目的操作數(shù)。如果源操作數(shù)為0,則使,則使ZF=1,此時目的操作數(shù)中的結(jié)果無定義;否則,此時目的操作數(shù)中的結(jié)果無定義;否則,ZF=0,此時目的,此時目的操作數(shù)的內(nèi)容即為掃描到的位號。上述指令的不同之處在于操作數(shù)的內(nèi)容即為掃描到的位號。上述指令的不同之處在于BSF指指

27、令從低位向高位掃描,而令從低位向高位掃描,而BSR指令從高位向低位掃描。指令從高位向低位掃描。 目的操作數(shù)與源操作數(shù)均可為目的操作數(shù)與源操作數(shù)均可為16位或位或32位的寄存器或存儲位的寄存器或存儲器,兩操作數(shù)的位數(shù)必須一致。器,兩操作數(shù)的位數(shù)必須一致。 處理器控制指令處理器控制指令 80386的標志操作指令與的標志操作指令與8086/8088完全相同,包括完全相同,包括CLC、STC、CMC、CLD、STD、CLI和和STI指令;指令;CPU控制指令也包括控制指令也包括HLT、WAIT、NOP、LOCK封鎖前綴和封鎖前綴和ESC指令,只是在指令,只是在80386中可以中可以利用處理器交權(quán)指令利

28、用處理器交權(quán)指令ESC使數(shù)值協(xié)處理器使數(shù)值協(xié)處理器80387可以接收可以接收80386的的指令,還可以利用指令,還可以利用80386的尋址方式執(zhí)行程序。的尋址方式執(zhí)行程序。 保護方式指令保護方式指令 這一組保護方式指令是這一組保護方式指令是80386新增加的指令,用于對系統(tǒng)進行設置和新增加的指令,用于對系統(tǒng)進行設置和測試,并且通常只由系統(tǒng)管理員使用,因此只將這些指令的格式和測試,并且通常只由系統(tǒng)管理員使用,因此只將這些指令的格式和功能羅列在表功能羅列在表4-14中。中。 高級語言支持指令高級語言支持指令 1) 檢查數(shù)組下標界限指令檢查數(shù)組下標界限指令 BOUND OP目,目,OP源源 2) 建

29、立堆??蚣苤噶罱⒍褩?蚣苤噶?ENTER OP目,目,OP源源 3) 釋放堆??蚣苤噶钺尫哦褩?蚣苤噶?LEAVE指令功能:檢查目的操作數(shù)給出的帶符號數(shù)是否在源操作數(shù)指令功能:檢查目的操作數(shù)給出的帶符號數(shù)是否在源操作數(shù)給出的數(shù)組界限之內(nèi),源操作數(shù)存放的是數(shù)組的起始下標值給出的數(shù)組界限之內(nèi),源操作數(shù)存放的是數(shù)組的起始下標值和終止下標值。和終止下標值。指令功能:為高級語言正在執(zhí)行的過程建立堆??蚣?。目的指令功能:為高級語言正在執(zhí)行的過程建立堆??蚣?。目的操作數(shù)是框架的大小,表示該過程局部變量占用的字節(jié)數(shù),操作數(shù)是框架的大小,表示該過程局部變量占用的字節(jié)數(shù),源操作數(shù)表示過程被嵌套的層數(shù),源操作數(shù)表

30、示過程被嵌套的層數(shù),BPBP或或EBPEBP是指向該堆??蚴侵赶蛟摱褩?蚣艿闹羔?。架的指針。 指令功能:與指令功能:與ENTERENTER指令相反,指令相反,LEAVELEAVE指令釋放當前過程所有指令釋放當前過程所有局部變量占用的堆??臻g,堆棧指針恢復為系統(tǒng)堆棧指針局部變量占用的堆??臻g,堆棧指針恢復為系統(tǒng)堆棧指針ESPESP。 80386/80486增強與增加的指令增強與增加的指令 Pentium系列微處理器的新增指令CMPXCHG8B 存儲器,存儲器,ECX:EBX1 CMPXCHG8B 2 RDMSR用于將用于將ECX指示的實模式描述寄存器的內(nèi)容寫入指示的實模式描述寄存器的內(nèi)容寫入ED

31、X:EAX中。中。 3 WDMSR該指令的功能是將該指令的功能是將EDX:EAX中的值寫入中的值寫入ECX指示的實模式描述指示的實模式描述寄存器中。寄存器中。 Pentium系列微處理器的新增指令5RDTSC4RSM用于恢復到系統(tǒng)管理方式。用于恢復到系統(tǒng)管理方式。 80286增加的指令增加的指令v(1)棧操作指令PUSHA、POPA v(2)字符串輸入指令I(lǐng)NS ES:DI,DX( INSB 、INSW)v(3)字符串輸出指令OUTS DX,DS:SI (OUTB 、OUTW ) v(4)數(shù)組界限檢查指令BOUND DEST,SRC v(5)建立堆??臻g指令ENTER DEST,SRC v(6

32、)取消建立的??臻g指令LEAVEv(7)控制保護指令(有16條)v 控制保護指令有16條: LAR ;裝入訪問權(quán)限LSL ;裝入段界限 LGDT ;裝入全局描述符表SGDT ;存儲全局描述符表 LIDT ;裝入8字節(jié)中斷描述符表SIDT ;存儲8字節(jié)中斷描述符表 LIDT ;裝入局部描述符表SLDT;存儲局部描述符表 LTR ;裝入任務寄存器STR ;存儲任務寄存器 LMSW ;裝入機器狀態(tài)字SMSW ;存儲機器狀態(tài)字 ARPL ;調(diào)整已請求特權(quán)級別CLTS ;清除任務轉(zhuǎn)移狀態(tài) VERR ;對存儲器或寄存器讀校驗VERW ;對存儲器或寄存器寫校驗80286增加的指令增加的指令80386擴充和增加的指令擴充和增加的指令v 180386擴充

溫馨提示

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

評論

0/150

提交評論