




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、80 x86 CPU指令指令按操作數(shù)地址個數(shù)按操作數(shù)地址個數(shù)可劃分為可劃分為3種類型種類型: (1)雙操作數(shù)指令雙操作數(shù)指令 OPR DEST,SRC OPR表示指令操作碼。指令中給出兩個操作數(shù)地址,表示指令操作碼。指令中給出兩個操作數(shù)地址,SRC表表示源操作數(shù)地址,簡稱源地址;示源操作數(shù)地址,簡稱源地址;DEST表示目的操作數(shù)地址,簡稱表示目的操作數(shù)地址,簡稱目的地址。目的地址。 (2)單操作數(shù)指令單操作數(shù)指令 OPR DEST 指令中只給出一個操作數(shù)地址指令中只給出一個操作數(shù)地址DEST。若指令只需一個操作數(shù),。若指令只需一個操作數(shù),則該地址既是源地址又是目的地址。若指令需兩個操作數(shù),則另
2、則該地址既是源地址又是目的地址。若指令需兩個操作數(shù),則另一個操作數(shù)地址由指令隱含指定。一個操作數(shù)地址由指令隱含指定。(3)無操作數(shù)指令無操作數(shù)指令 OPR一種情況是指令未給出操作數(shù)地址,但隱含指定了操作數(shù)的存一種情況是指令未給出操作數(shù)地址,但隱含指定了操作數(shù)的存放處。另一種情況是指令本身不需要操作數(shù)。放處。另一種情況是指令本身不需要操作數(shù)。4.3.2 80 x86 CPU指令系統(tǒng)指令系統(tǒng)80 x86指令按功能可分為指令按功能可分為6大類:大類:(1)傳送類指令()傳送類指令(Transfer Instructions)(2)算術(shù)運算類指令()算術(shù)運算類指令(Arithmetic Instruc
3、tions)(3)邏輯類指令()邏輯類指令(Bit Manipulation Instructions)(4)串操作類指令()串操作類指令(String Instructions)(5)程序轉(zhuǎn)移類指令()程序轉(zhuǎn)移類指令(Program Transfer Instructions)(6)處理器控制類指令()處理器控制類指令(Processor Control Instruction) 下面分別介紹這幾類指令(其中的第下面分別介紹這幾類指令(其中的第5類指令將在類指令將在第第5章介紹),下述指令均章介紹),下述指令均采用匯編指令格式采用匯編指令格式描述。描述。1傳送類指令傳送類指令 傳送類指令負責(zé)
4、把數(shù)據(jù)、地址或立即數(shù)傳送到寄傳送類指令負責(zé)把數(shù)據(jù)、地址或立即數(shù)傳送到寄存器或存儲單元中。它又可分為存器或存儲單元中。它又可分為4種:種:數(shù)據(jù)傳送數(shù)據(jù)傳送指令、指令、地址傳送地址傳送指令、指令、標志位傳送標志位傳送指令和指令和類型轉(zhuǎn)換類型轉(zhuǎn)換指令指令。 (1)數(shù)據(jù)傳送指令)數(shù)據(jù)傳送指令 MOV(MOVe) 傳送傳送 PUSH(PUSH onto the stack) 進棧進棧 POP(POP from the stack) 出棧出棧 XCHG(eXCHanGe) 交換交換 MOV傳送指令傳送指令 指令格式:指令格式:MOV DEST,SRC 指令功能:指令功能:DEST (SRC),即將源地址的
5、內(nèi)容),即將源地址的內(nèi)容(源操作數(shù))傳送到目的地址中。傳送指令執(zhí)行完后(源操作數(shù))傳送到目的地址中。傳送指令執(zhí)行完后源操作數(shù)保持不變。源操作數(shù)保持不變。 受影響的狀態(tài)標志位:無。受影響的狀態(tài)標志位:無。 MOV指令中的兩個操作指令中的兩個操作數(shù)可以同時是字節(jié)、字或雙數(shù)可以同時是字節(jié)、字或雙字,但兩者位數(shù)必須一致。字,但兩者位數(shù)必須一致。源操作數(shù)可存放在通用寄存源操作數(shù)可存放在通用寄存器、段寄存器、存儲器中,器、段寄存器、存儲器中,也可以是立即數(shù);目的操作也可以是立即數(shù);目的操作數(shù)則不能為立即數(shù);并且兩數(shù)則不能為立即數(shù);并且兩個操作數(shù)不能同時為存儲器個操作數(shù)不能同時為存儲器操作數(shù)。操作數(shù)。MOV
6、指令的數(shù)據(jù)傳指令的數(shù)據(jù)傳送方向如右圖所示送方向如右圖所示: 例如,將立即數(shù)傳送到通用寄存器或存儲單元例如,將立即數(shù)傳送到通用寄存器或存儲單元 MOV AL,1FH;將;將8位立即數(shù)位立即數(shù)1FH傳送到傳送到8位寄存器位寄存器AL中中 MOV AX,2345H;字傳送;字傳送 MOV DA_BYTE,0FEH ;字節(jié)傳送;字節(jié)傳送 MOV ARYBX,1234H;字傳送;字傳送 例如,寄存器之間的傳送例如,寄存器之間的傳送 MOV AH,BL;字節(jié)傳送;字節(jié)傳送 MOV DX,CX;字傳送;字傳送 MOV DS,AX;字傳送;字傳送 例如,寄存器與存儲單元之間的傳送例如,寄存器與存儲單元之間的傳
7、送 MOV CL,DA_BYTE;字節(jié)傳送;字節(jié)傳送 MOV TABBXDI,AX;字傳送;字傳送 【例【例4-6】 把把DA_WORD1字單元內(nèi)容傳送到字單元內(nèi)容傳送到DA_WORD2字字單元中,可用如下兩條指令:單元中,可用如下兩條指令: MOV AX,DA_WORD1 MOV DA_WORD2,AX 此外,此外,MOV指令中立即數(shù)不能直接傳送給段寄存器,指令中立即數(shù)不能直接傳送給段寄存器,而且段寄存器之間也不能直接傳送數(shù)據(jù),但可以通過通用而且段寄存器之間也不能直接傳送數(shù)據(jù),但可以通過通用寄存器來實現(xiàn)間接傳送。寄存器來實現(xiàn)間接傳送?!纠纠?-7】 把立即數(shù)把立即數(shù)10A0H傳送給段寄存器
8、傳送給段寄存器DS、ES,可用,可用以下以下3條指令:條指令: MOV AX,10A0H MOV DS,AX MOV ES,AX PUSH進棧指令進棧指令 指令格式:指令格式:PUSH SRC 指令功能:指令功能:首先修改堆棧指針首先修改堆棧指針SP或或ESP的內(nèi)容,然后將源操作的內(nèi)容,然后將源操作數(shù)壓入棧頂單元中。源操作數(shù)可以是立即數(shù)、寄存器(含段寄存數(shù)壓入棧頂單元中。源操作數(shù)可以是立即數(shù)、寄存器(含段寄存器)或存儲單元的內(nèi)容,但器)或存儲單元的內(nèi)容,但8086不能使用立即數(shù)。具體操作可表不能使用立即數(shù)。具體操作可表示如下:示如下: 操作數(shù)操作數(shù)16位:位:SP或或ESP (SP或或ESP)
9、 2 棧頂字單元棧頂字單元 (SRC) 受影響的狀態(tài)標志位:受影響的狀態(tài)標志位:無。無。 堆棧是以堆棧是以“后進先出后進先出”方式工作的一個存儲區(qū),它必須存在于方式工作的一個存儲區(qū),它必須存在于堆棧段中,因而其堆棧段中,因而其段基值或段選擇器存放于段基值或段選擇器存放于SS寄存器寄存器中。堆棧操中。堆棧操作只能在棧頂進行,因此作只能在棧頂進行,因此使用堆棧指針使用堆棧指針SP或或ESP來指示棧頂單元來指示棧頂單元的地址,當堆棧地址長度為的地址,當堆棧地址長度為16位時用位時用SP,當堆棧地址長度為,當堆棧地址長度為32位位時用時用ESP。 應(yīng)當注意,應(yīng)當注意,堆棧的存取必須以字或雙字為單位堆棧
10、的存取必須以字或雙字為單位 。 POP出棧指令出棧指令 指令格式:指令格式:POP DEST 指令功能:指令功能:首先將首先將SP或或ESP指向的棧頂單元的內(nèi)容彈出到目的指向的棧頂單元的內(nèi)容彈出到目的寄存器或存儲單元中,然后修改寄存器或存儲單元中,然后修改SP或或ESP指向棧頂。目的地址可指向棧頂。目的地址可采用寄存器(除采用寄存器(除CS外)或存儲器尋址方式,但不能是立即尋址。外)或存儲器尋址方式,但不能是立即尋址。具體操作可表示如下:具體操作可表示如下: 操作數(shù)操作數(shù)16位:位:DEST 棧頂字單元內(nèi)容棧頂字單元內(nèi)容 SP或或ESP (SP或或ESP)+2 受影響的狀態(tài)標志位:受影響的狀態(tài)
11、標志位:無。無。 PUSH/POP指令執(zhí)行的操作指令執(zhí)行的操作 PUSH和和POP指令的操作數(shù)地址長度為指令的操作數(shù)地址長度為16位時,使用位時,使用SP作為堆棧作為堆棧指針,指針,進出棧的可以是字,也可以是雙字進出棧的可以是字,也可以是雙字;同樣地,地址長度為;同樣地,地址長度為32位時,使用位時,使用ESP作為堆棧指針,進出棧的可以是雙字,也可以是字作為堆棧指針,進出棧的可以是雙字,也可以是字。如下表所示。如下表所示?!纠?-12】 指令指令“PUSH AX”的執(zhí)行情況如下圖所示:的執(zhí)行情況如下圖所示:【例例4-13】 指令指令“POP AX”的執(zhí)行情況如圖所示:的執(zhí)行情況如圖所示: X
12、CHG交換指令交換指令 指令格式:指令格式:XCHG DEST,SRC 指令功能:指令功能:(DEST)(SRC)。將源地址的內(nèi)容與目的地)。將源地址的內(nèi)容與目的地址的內(nèi)容相互交換。數(shù)據(jù)交換只能在通用寄存器之間或通用寄存址的內(nèi)容相互交換。數(shù)據(jù)交換只能在通用寄存器之間或通用寄存器與存儲單元之間進行,器與存儲單元之間進行,不允許使用段寄存器不允許使用段寄存器。指令允許字或字。指令允許字或字節(jié)操作,節(jié)操作,80386及其后繼機型還允許雙字操作。及其后繼機型還允許雙字操作。 受影響的狀態(tài)標志位:受影響的狀態(tài)標志位:無。無。源操作數(shù)的物理地址源操作數(shù)的物理地址= 2F000+0200+0046=2F24
13、6則該指令執(zhí)行后則該指令執(zhí)行后(BX)= 4154H ,(,(2F246H)= 6F30H【例例4-22】 指令指令“XCHG BX,BP+SI”執(zhí)行前,設(shè)執(zhí)行前,設(shè)(BX)= 6F30H,(,(BP)= 0200H,(,(SI)= 0046H,(SS)= 2F00H,(,(2F246H)= 4154H(2)地址傳送指令)地址傳送指令 這種指令完成將存儲器操作數(shù)的地址傳送給指定的這種指令完成將存儲器操作數(shù)的地址傳送給指定的寄存器,而不是傳送操作數(shù)。寄存器,而不是傳送操作數(shù)。 LEA(Load Effective Address)有效地址送寄存器。有效地址送寄存器。 LDS(Load DS wi
14、th pointer)地址指針送寄存器和地址指針送寄存器和DS。 LES(Load ES with pointer)地址指針送寄存器和地址指針送寄存器和ES。 LFS(Load FS with pointer) 地址指針送寄存器和地址指針送寄存器和FS。 LGS(Load GS with pointer)地址指針送寄存器和地址指針送寄存器和GS。 LSS(Load SS with pointer) 地址指針送寄存器和地址指針送寄存器和SS。 LEA有效地址送寄存器指令有效地址送寄存器指令 指令格式:指令格式:LEA DEST,SRC 指令功能:指令功能:DEST SRC的的EA,即將源操作數(shù)的
15、有效地,即將源操作數(shù)的有效地址址EA傳送到目的地址(傳送到目的地址(16位或位或32位通用寄存器)中。位通用寄存器)中。 受影響的狀態(tài)標志位:受影響的狀態(tài)標志位:無。無。 LEA指令的源操作數(shù)必須是存儲器操作數(shù),而目的地址指令的源操作數(shù)必須是存儲器操作數(shù),而目的地址只能是只能是16位或位或32位通用寄存器名,不能使用段寄存器。位通用寄存器名,不能使用段寄存器。 由于存在著目的寄存器位數(shù)與源操作數(shù)有效地址長度的不同,由于存在著目的寄存器位數(shù)與源操作數(shù)有效地址長度的不同,該指令執(zhí)行的操作如下表所示該指令執(zhí)行的操作如下表所示: 如下圖所示,設(shè)指令如下圖所示,設(shè)指令“LEA SI,BUF”中中BUF的
16、有效地址的有效地址EA是是100H,因此該指令完成將,因此該指令完成將100H送入送入SI中,而不是把中,而不是把DS:100H所指所指向字單元的內(nèi)容向字單元的內(nèi)容00FFH送入送入SI中。中。LEA SI,BUF 指令的執(zhí)行情況指令的執(zhí)行情況 LDS、LES 地址指針送寄存器和段寄存器指令地址指針送寄存器和段寄存器指令 在前面曾介紹,一個存儲單元的邏輯地址是由在前面曾介紹,一個存儲單元的邏輯地址是由16位段基值位段基值(或段選擇器)和(或段選擇器)和16(或(或32)位偏移地址組成。因此,可用)位偏移地址組成。因此,可用4(或(或6)個字節(jié)單元來存放這個邏輯地址。這)個字節(jié)單元來存放這個邏輯
17、地址。這4(或(或6)個字節(jié)單)個字節(jié)單元構(gòu)成元構(gòu)成32(或(或48)位的)位的地址指針地址指針,段基值(或段選擇器)存放在,段基值(或段選擇器)存放在2個高字節(jié)單元中,偏移地址則存放在個高字節(jié)單元中,偏移地址則存放在2(或(或4)個低字節(jié)單元中。)個低字節(jié)單元中。 32位的地址指針如右圖所示:位的地址指針如右圖所示: 指令指令LDS的功能就是從作為地址指針的的功能就是從作為地址指針的4(或(或6)個存儲單元)個存儲單元中,同時取出段基值(或段選擇器)與偏移地址,分別送到段寄中,同時取出段基值(或段選擇器)與偏移地址,分別送到段寄存器存器DS和指定通用寄存器中。和指定通用寄存器中。 LDS指令
18、格式:指令格式:LDS DEST,SRC LES、LFS、LGS、LSS指令與其格式相同,只是指定的段寄指令與其格式相同,只是指定的段寄存器不同。存器不同。 LDS指令功能:指令功能:DEST (SRC) DS (SRC+2)或)或DS (SRC+4) 受影響的狀態(tài)標志位:受影響的狀態(tài)標志位:無。無?!纠纠?-14】 右圖給出了指令右圖給出了指令“LDS SI,ADRBX”的執(zhí)行情況。的執(zhí)行情況。由源地址由源地址ADRBX可以計算出可以計算出源操作數(shù)在數(shù)據(jù)段的有效源操作數(shù)在數(shù)據(jù)段的有效地址地址EA。這時。這時EA及及EA+2指向的字單元作為指向的字單元作為32位地位地址指針。址指針。EA指向
19、的字單元指向的字單元存放的是偏移地址存放的是偏移地址,應(yīng)送,應(yīng)送到指令指定的到指令指定的SI中;中;EA+2字單元存放的是段基值字單元存放的是段基值,應(yīng)送到應(yīng)送到DS中。該指令執(zhí)行中。該指令執(zhí)行完后,完后,DS的內(nèi)容為新的段的內(nèi)容為新的段基值?;怠DS SI,ADRBX指令功能指令功能 在實模式下,假設(shè)(在實模式下,假設(shè)(DS)=091DH,(,(SS)=1E4AH,(AX)=1234H,(,(BX)=0024H,(,(CX)=5678H,(BP)=0024H,(,(SI)=0012H,(,(DI)=0032H,(09226H)=00F6H,(,(09228H)=1E40H,(1E4F6H
20、)=091DH。試給出以下指令的執(zhí)行結(jié)果。試給出以下指令的執(zhí)行結(jié)果。(1)MOV BPDI,CX(2)LDS SI,BXDI(3)標志位傳送指令)標志位傳送指令 這種指令用于對標志寄存器進行存取操作,共有這種指令用于對標志寄存器進行存取操作,共有6條指令且都條指令且都是無操作數(shù)指令。是無操作數(shù)指令。 LAHF(Load AH with Flags) 標志送標志送AH。 SAHF(Store AH into Flags) AH送標志寄存器。送標志寄存器。 PUSHF/PUSHFD(PUSH the Flags or eflags) 標志進棧。標志進棧。 POPF/POPFD(POP the Fl
21、ags or eflags) 標志出棧。標志出棧。【例例4-25】 指令指令“LDS SI,10H”執(zhí)行前,如果(執(zhí)行前,如果(DS) C000H,(,(C0010H) 0180H,(,(C0012H)= 2000H。則指令執(zhí)行后:則指令執(zhí)行后:(SI) 0180H,(,(DS)= 2000H。 LAHF標志送標志送AH指令指令 指令格式:指令格式:LAHF 指令功能:指令功能:AH FLAGS的低字節(jié),即將標志寄存器的的低字節(jié),即將標志寄存器的低低8位內(nèi)容傳送到位內(nèi)容傳送到AH寄存器中,也就是把標志位寄存器中,也就是把標志位SF、ZF、AF、PF、CF送至送至AH中的第中的第7,6,4,2,
22、0位。位。 受影響的狀態(tài)標志位:受影響的狀態(tài)標志位:無。無。 SAHF AH送標志寄存器指令送標志寄存器指令 指令格式:指令格式:SAHF 指令功能:指令功能:FLAGS的低字節(jié)的低字節(jié)(AH),即將),即將AH寄存器寄存器的內(nèi)容傳送給標志寄存器的低的內(nèi)容傳送給標志寄存器的低8位。位。 受影響的狀態(tài)標志位:受影響的狀態(tài)標志位:SF、ZF、AF、PF、CF。 SAHF指令用以設(shè)置或恢復(fù)指令用以設(shè)置或恢復(fù)SF、ZF、AF、PF、CF 5個標志位。個標志位。它只影響標志寄存器的低它只影響標志寄存器的低8位,對高位,對高8位標志無位標志無影響。影響。 PUSHF/PUSHFD標志進棧指令標志進棧指令 指令格式:指令格式:PUSHF 指令功能:指令功能: PUSHF: SP (SP) 2。 棧頂字單元棧頂字單元 (FLAGS),), 不影響任何狀態(tài)標志位。不影響任何狀態(tài)標志位。 POP
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物理-福建省龍巖市2025年高中畢業(yè)班三月教學(xué)質(zhì)量檢測(龍巖一檢)試題和答案
- (三檢)漳州市2025屆高三畢業(yè)班第三次教學(xué)質(zhì)量檢測 地理試卷(含答案)
- 江蘇財稅知識培訓(xùn)課件
- 黑龍江省雙鴨山市2023-2024學(xué)年高一政治下學(xué)期開學(xué)考試含解析
- 鄒平基坑施工方案
- 2025年新高考地理全真模擬試卷1(含答案解析)
- 人造草坪合同范本
- 涼皮店轉(zhuǎn)讓合同范例
- 信陽小區(qū)購房合同范例
- 辦公空調(diào)維修 合同范例
- 2025安徽振含控股集團有限公司招聘8人筆試參考題庫附帶答案詳解
- 2025年內(nèi)蒙古機電職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案一套
- 河道洪水應(yīng)急響應(yīng)預(yù)案
- 《欣賞與設(shè)計》(教案)2024-2025學(xué)年數(shù)學(xué)六年級下冊 北師大版
- 2025年中國煙氣檢測儀器行業(yè)市場運行態(tài)勢、進出口貿(mào)易及發(fā)展趨勢預(yù)測報告
- 減免保證金申請書
- 五年級下冊語文第三單元遨游漢字王國單元整體教學(xué)設(shè)計
- 工業(yè)級3D打印市場潛力-深度研究
- 某縣電子政務(wù)信息化服務(wù)平臺項目可行性研究報告管理資料
- 加油站的充電樁建設(shè)與運營
- 2024-2025學(xué)年江蘇省南京建鄴區(qū)新城中學(xué)七年級(上)期末數(shù)學(xué)試卷(含答案)
評論
0/150
提交評論