




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、13.3 80 x863.3 80 x86指令系統(tǒng)指令系統(tǒng)指令類型指令類型 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令 邏輯運(yùn)算和移位指令邏輯運(yùn)算和移位指令 串操作指令串操作指令 程序控制指令程序控制指令 處理器控制指令處理器控制指令2一、一、 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 實(shí)現(xiàn)實(shí)現(xiàn) 存儲(chǔ)器存儲(chǔ)器 寄存器寄存器 I/O I/O 四種傳送指令四種傳送指令通用數(shù)據(jù)傳送通用數(shù)據(jù)傳送目標(biāo)地址傳送目標(biāo)地址傳送標(biāo)志傳送標(biāo)志傳送輸入輸出輸入輸出3通用數(shù)據(jù)傳送指令1 1、 MOV destMOV dest,src src (destdest)(srcsrc) 傳送的是字節(jié)、字或雙字傳送的是字節(jié)、字或雙字
2、具體來(lái)說(shuō)可實(shí)現(xiàn):具體來(lái)說(shuō)可實(shí)現(xiàn): MOV mem/reg1MOV mem/reg1,mem/reg2mem/reg2 指令中兩操作數(shù)中至少有一個(gè)為寄存器指令中兩操作數(shù)中至少有一個(gè)為寄存器 例例: MOV: MOVCLCL,DLDL MOV MOVAXAX,BXBX MOV MOVESIESI,CXCX MOV MOVCLCL,EBX+5EBX+5 MOV EAX,DWORD PTR ESI MOV EAX,DWORD PTR ESI4 MOV reg MOV reg,data data ; ;立即數(shù)送寄存器立即數(shù)送寄存器 MOV memMOV mem,data data ; ;立即數(shù)送存儲(chǔ)單元
3、立即數(shù)送存儲(chǔ)單元 MOV segregMOV segreg,mem/reg mem/reg ; ;存儲(chǔ)單元存儲(chǔ)單元/ /寄存器送寄存器送 段寄存器段寄存器 MOV mem/regMOV mem/reg,segreg segreg ; ;段寄存器送存儲(chǔ)元段寄存器送存儲(chǔ)元/ /寄存器寄存器5例:例: MOV EAX, EBX+ECX*4 把把DS段中有效地址為:段中有效地址為:(EBX)(ECX)*4存儲(chǔ)單元的內(nèi)容送給存儲(chǔ)單元的內(nèi)容送給 EAX寄存器。寄存器。6MOVMOV指令使用規(guī)則:指令使用規(guī)則:1) 1) EIPEIP不能作目的寄存器不能作目的寄存器2) 2) 不允許不允許memmemmem
4、mem3) 3) 不允許不允許segregsegregsegregsegreg4) 4) 目的操作數(shù)不允許是目的操作數(shù)不允許是立即數(shù)立即數(shù), 也不允許是也不允許是CSCS寄存器寄存器5) 5) 不允許不允許segregsegreg立即數(shù)立即數(shù)6) 6) 源操作數(shù)與目的操作數(shù)類型要一致源操作數(shù)與目的操作數(shù)類型要一致7幾個(gè)不能傳送的解決辦法幾個(gè)不能傳送的解決辦法:l存儲(chǔ)器存儲(chǔ)器存儲(chǔ)器:存儲(chǔ)器: MOV EAXMOV EAX,MEM1MEM1 MOV MEM2 MOV MEM2,EAXEAX1616位:位:l段寄存器段寄存器段寄存器:段寄存器: MOV AXMOV AX,DSDS MOV ES MO
5、V ES,AXAXl段寄存器段寄存器立即數(shù):立即數(shù): MOV AXMOV AX,DATADATA MOV DS MOV DS,AXAX8l應(yīng)用舉例:將1000H開(kāi)始的100個(gè)存儲(chǔ)單元 全部填充為ASCII碼2AH(*)。16位程序段位程序段如下: MOV EDI,1000H MOV CX,0064H MOV AL,2AHAGAIN: MOV EDI,AL INC EDI DEC CX JNZ AGAIN HLT9 格式:格式:MOVSX destMOVSX dest,srcsrc; 操作:(操作:(destdest)符號(hào)擴(kuò)展(符號(hào)擴(kuò)展(srcsrc) 兩種格式:兩種格式: MOVSX reg1
6、, reg2 MOVSX reg1, reg2 MOVSX reg, mem MOVSX reg, mem 注意:注意: 源操作數(shù)可以是源操作數(shù)可以是8 8位或位或1616位,而目的操作數(shù)必須是位,而目的操作數(shù)必須是1616或或3232位。位。 2、 MOVSX帶符號(hào)擴(kuò)展傳送指令帶符號(hào)擴(kuò)展傳送指令10例例: MOVSX EAXMOVSX EAX,CLCL 把把CLCL寄存器中的寄存器中的8 8位數(shù),符號(hào)擴(kuò)展成位數(shù),符號(hào)擴(kuò)展成3232位數(shù),位數(shù), 送到送到EDXEDX寄存器。寄存器。 MOVSX EDX,EDIMOVSX EDX,EDI 把把DSDS段中由段中由EDIEDI指定地址的指定地址的1
7、616位數(shù)符號(hào)擴(kuò)展位數(shù)符號(hào)擴(kuò)展成成3232位數(shù),位數(shù), 送到送到EDXEDX寄存器寄存器。11 格式:格式:MOVZX destMOVZX dest,srcsrc; 操作:(操作:(destdest)零擴(kuò)展(零擴(kuò)展(srcsrc) 兩種格式:兩種格式: MOVZX reg1,reg2MOVZX reg1,reg2 MOVZX reg, mem MOVZX reg, mem 3、 MOVZX帶零擴(kuò)展傳送指令帶零擴(kuò)展傳送指令12例:例: MOVZX DXMOVZX DX,ALAL 把把ALAL寄存器中的寄存器中的8 8位數(shù),零擴(kuò)展成位數(shù),零擴(kuò)展成1616位數(shù),位數(shù), 送到送到DXDX寄存器。寄存器
8、。 MOVZX EDX,DATAMOVZX EDX,DATA 把把DATADATA單元的單元的1616位數(shù)零擴(kuò)展成位數(shù)零擴(kuò)展成3232位數(shù),送到位數(shù),送到 EDX EDX寄存器。寄存器。134 4、 PUSHPUSH進(jìn)棧指令進(jìn)棧指令格式:格式:PUSH SRC 執(zhí)行操作: 16位指令: (SP) (SP)-2 (SP)+1,(SP) (SRC) 32位指令: (ESP) (ESP)-4 (ESP)+3, (ESP)+2, (ESP)+1,(ESP) (SRC) 幾種用法:幾種用法: PUSH reg PUSH mem PUSH data ; 8086不允許使用立即數(shù)尋址方式不允許使用立即數(shù)尋址
9、方式 PUSH segreg145 5、 POPPOP出棧指令出棧指令格式:格式:POP DST 執(zhí)行操作: 16位指令位指令: (DST) (SP)+1,(SP) (SP) (SP)+2 32位指令: (DST) (ESP)+3, (ESP)+2, (ESP)+1,(ESP) (ESP) (ESP)+4 幾種用法:幾種用法: POP reg POP mem POP segreg; POPPOP指令不允許使用指令不允許使用CSCS段寄存器段寄存器15堆棧指令使用時(shí)應(yīng)注意幾點(diǎn):堆棧指令使用時(shí)應(yīng)注意幾點(diǎn): 堆棧操作總是按堆棧操作總是按雙字雙字進(jìn)行進(jìn)行 不能從棧頂彈出一個(gè)字給不能從棧頂彈出一個(gè)字給C
10、SCS 堆棧指針為堆棧指針為SS:ESPSS:ESP,ESPESP永遠(yuǎn)指向棧頂永遠(yuǎn)指向棧頂 80868086:PUSH ESPPUSH ESP,進(jìn)入堆棧的是該指,進(jìn)入堆棧的是該指令已修改了的令已修改了的SPSP新值新值。 8028680286以后的以后的PUSH ESP PUSH ESP ,進(jìn)入堆棧的,進(jìn)入堆棧的ESPESP是執(zhí)行該指令之前的舊值。是執(zhí)行該指令之前的舊值。166 6、 PUSHA/PUSHADPUSHA/PUSHAD所有寄存器進(jìn)棧指令所有寄存器進(jìn)棧指令格式:格式: PUSHADPUSHAD 32 32位通用寄存器依次進(jìn)棧,進(jìn)棧次序?yàn)椋何煌ㄓ眉拇嫫饕来芜M(jìn)棧,進(jìn)棧次序?yàn)椋篍AX,E
11、CX,EDX,EBXEAX,ECX,EDX,EBX, 指令執(zhí)行前的指令執(zhí)行前的ESP, ESP, EBP, ESI, EDI EBP, ESI, EDI。 指令執(zhí)行后指令執(zhí)行后 (ESP) (ESP) (ESP)(ESP)3232。177 7、 POPA/POPADPOPA/POPAD所有寄存器出棧指令所有寄存器出棧指令格式:格式: POPADPOPAD執(zhí)行操作:3232位通用寄存器依次出棧,棧次序?yàn)椋何煌ㄓ眉拇嫫饕来纬鰲?,棧次序?yàn)椋篍DI,ESI,EBP,ESP,EBX,EDX,ECX,EAXEDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX。 指令執(zhí)行后指令執(zhí)行后 (ESP)
12、(ESP) (ESP)(ESP)3232。出棧的出棧的ESPESP未存入未存入ESPESP寄存器寄存器。18格式:XCHG reg,mem/reg操作:交換兩操作數(shù)的內(nèi)容。 要求:兩操作數(shù)中必須有一個(gè)在寄存器中;操作數(shù)不能為段寄存器和立即數(shù);源和目地操作數(shù)類型要一致。該指令允許除立即數(shù)以外的任何尋址方式。舉例: XCHG BX, EBP+ESI ; (BX) (EA) XCHG AL, BH ; (AL) (BH)8 8、交換指令、交換指令XCHGXCHG19I/OI/O傳送指令傳送指令三種三種I/OI/O傳送指令:傳送指令: IN (input) IN (input) 輸入輸入 OUTOUT
13、(outputoutput)輸出)輸出 XLATXLAT(translatetranslate)換碼)換碼201 1、短地址輸入輸出指令:、短地址輸入輸出指令:格式: IN AL, PORT ; AL (PORT) IN AX, PORT ; AX (PORT+1,PORT) OUT PORT, AL ; (PORT) AL OUT PORT, AX ; (PORT+1,PORT) AX注意: PORT為輸入輸出端口號(hào),范圍為0255。212 2、通用輸入輸出指令、通用輸入輸出指令格式: IN AL, DX ; AL (DX)OUTDX, AL ; (DX) AL OUT DX, EAX ;
14、(DX) EAX端口號(hào)范圍:端口號(hào)范圍:00000000FFFFH.FFFFH.22輸入輸出指令的使用輸入輸出指令的使用 IN指令:用于從數(shù)據(jù)端口輸入數(shù)據(jù)或從狀態(tài)端口輸入狀態(tài)字. 例: IN AL , 28H; IN AL, 27H; MOV DS:2000H , AL; TEST AL, 000001000B; JNZ ERROR 233 3、換碼、換碼指令指令XLATXLAT格式:XLAT OPR 或 XLAT執(zhí)行操作: 16位指令:(AL)(BX)+(AL) 32位指令:(AL)(EBX)+(AL) 該指令又叫查表轉(zhuǎn)換查表轉(zhuǎn)換指令,根據(jù)表項(xiàng)序號(hào)查出表中對(duì)應(yīng)的內(nèi)容。執(zhí)行時(shí)先將表的首地址送到
15、BX或EBX中,表項(xiàng)序號(hào)存于AL中。24303132.394142.4546.42000H+0H0129ABEF十六進(jìn)制數(shù)十六進(jìn)制數(shù)ASCIIASCII碼表碼表存儲(chǔ)器例如:內(nèi)存數(shù)據(jù)段有一張16進(jìn)制數(shù)的ASCII碼表,設(shè)首地址為42000H,如欲查出表中第11個(gè)代碼(代碼序號(hào)從0開(kāi)始)即十六進(jìn)制數(shù)B的ASCII碼。EBX=? AL=?42000H+0BH25示例注意:轉(zhuǎn)換表長(zhǎng)度最大為注意:轉(zhuǎn)換表長(zhǎng)度最大為256256個(gè)表項(xiàng)個(gè)表項(xiàng)( (字節(jié)字節(jié)) )AL=3,結(jié)結(jié)果如何?果如何?26地址傳送指令地址傳送指令共有六種:格式:格式:LEA reg,mem ; 有效地址送寄存器指令有效地址送寄存器指令
16、下面五個(gè)是指針?biāo)图拇嫫骱投渭拇嫫髦噶?LDS reg, mem32; DS: reg(mem開(kāi)始的四 個(gè)內(nèi)存單元) LES reg, mem32; ES: reg(mem開(kāi)始的四 個(gè)內(nèi)存單元)27地址傳送指令地址傳送指令LFS reg, mem32; FS:reg(mem開(kāi)始的四 個(gè)內(nèi)存單元) LGS reg, mem32; GS:reg(mem開(kāi)始的四 個(gè)內(nèi)存單元) LSS reg, mem32; SS:reg(mem開(kāi)始的四 個(gè)內(nèi)存單元)要求源操作數(shù)必須是一個(gè)內(nèi)存操作數(shù),目的操作數(shù)必須是一個(gè)32位的通用寄存器。28例:例:LEAEBX,ESI+10H設(shè):(ESI)=1000H則執(zhí)行該指令后
17、,(EBX)=1010H注意以下兩條指令差別: LEA EBX,BUFFER 將符號(hào)地址為BUFFER的存儲(chǔ)單元的偏侈地址取到 EBX中 MOV EBX,BUFFER;后者表示將BUFFER存儲(chǔ)單元中的內(nèi)容取到 BX中有效地址送寄存器指令有效地址送寄存器指令29下面兩條指令等效:下面兩條指令等效: LEA EBX,BUFFER MOV EBX, OFFSET BUFFER其中OFFSET BUFFER表示存儲(chǔ)器單元BUFFER的偏移地址。二者都可用于取存儲(chǔ)器單元的偏移地址,但LEA指令可以取動(dòng)態(tài)的地址,OFFSET只能取靜態(tài)的地址。30指針?biāo)图拇嫫髦羔標(biāo)图拇嫫鞲袷剑焊袷剑?LDS REG ,
18、SRC 執(zhí)行操作:執(zhí)行操作: 16位指令:位指令: (src)REG,(,(src2)DS 32位指令:位指令: (src)REG,(,(src4)DS(16位)位)例:例: LES DI, BX 執(zhí)行前:執(zhí)行前: (DS)=B000H, (BX)=080AH, (0B080AH)=05AEH, (0B080CH)=4000H 執(zhí)行后:執(zhí)行后:(DI)=05AEH, (ES)=4000H 31讀取讀取標(biāo)志指令:標(biāo)志指令: LAHF 執(zhí)行操作:執(zhí)行操作: (AH) (FLAGS的低字節(jié)的低字節(jié)) 設(shè)置標(biāo)志指令:設(shè)置標(biāo)志指令: SAHF 執(zhí)行操作:執(zhí)行操作: (FLAGS的低字節(jié)的低字節(jié)) (AH)標(biāo)志位入棧指令:標(biāo)志位入棧指令: PUSHF/PUSHFD執(zhí)行操作:執(zhí)行操作: PUSHF: (SP) (SP) 2 ( (SP)+1, (SP) ) (
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度廚師技能競(jìng)賽合作舉辦協(xié)議
- 人力資源招聘事務(wù)文書草案
- 酒店經(jīng)營(yíng)管理權(quán)合作協(xié)議
- 電商平臺(tái)用戶免責(zé)條款協(xié)議
- 工作紀(jì)律修訂內(nèi)容
- 高效會(huì)議事務(wù)組織與實(shí)施流程文書
- 公司股東間股權(quán)認(rèn)購(gòu)及合作開(kāi)發(fā)協(xié)議表
- 《正弦定理在三角形中的應(yīng)用:高中數(shù)學(xué)教案》
- 三農(nóng)金融服務(wù)平臺(tái)建設(shè)方案
- 工作目標(biāo)實(shí)現(xiàn)路徑規(guī)劃
- 保潔工作整改方案整改方案
- 12詩(shī)詞四首《漁家傲-秋思》公開(kāi)課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì) 初中語(yǔ)文九年級(jí)下冊(cè)
- 金礦承包協(xié)議合同2024年
- 解讀國(guó)有企業(yè)管理人員處分條例(2024)課件(全文)
- 2024年江蘇省揚(yáng)州市中考數(shù)學(xué)真題(解析版)
- 創(chuàng)新創(chuàng)業(yè)基礎(chǔ)-理論、案例與訓(xùn)練(大學(xué)生創(chuàng)新創(chuàng)業(yè)教育課程)全套教學(xué)課件
- TD/T 1072-2022 國(guó)土調(diào)查坡度分級(jí)圖制作技術(shù)規(guī)定(正式版)
- 《火力發(fā)電建設(shè)工程機(jī)組調(diào)試技術(shù)規(guī)范》
- 2024年湘潭醫(yī)衛(wèi)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- 2024年合肥市高三第二次教學(xué)質(zhì)量(二模)英語(yǔ)試卷(含答案)
- 新能源充電樁創(chuàng)業(yè)計(jì)劃書
評(píng)論
0/150
提交評(píng)論