80x86匯編指令詳解

80x86匯編指令詳解

ID:12311348

大?。?44.00 KB

頁數(shù):31頁

時(shí)間:2018-07-16

80x86匯編指令詳解_第1頁
80x86匯編指令詳解_第2頁
80x86匯編指令詳解_第3頁
80x86匯編指令詳解_第4頁
80x86匯編指令詳解_第5頁
資源描述:

《80x86匯編指令詳解》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、80x86匯編指令詳解(上)2008年01月15日星期二15:0580x86指令系統(tǒng),指令按功能可分為以下七個(gè)部分?! ?1)數(shù)據(jù)傳送指令?! ?2)算術(shù)運(yùn)算指令?! ?3)邏輯運(yùn)算指令?! ?4)串操作指令?! ?5)控制轉(zhuǎn)移指令?! ?6)處理器控制指令?! ?7)保護(hù)方式指令?! ?.3.1數(shù)據(jù)傳送指令  數(shù)據(jù)傳送指令包括:通用數(shù)據(jù)傳送指令、地址傳送指令、標(biāo)志寄存器傳送指令、符號擴(kuò)展指令、擴(kuò)展傳送指令等?! ∫?、通用數(shù)據(jù)傳送指令  1傳送指令  傳送指令是使用最頻繁的指令,格式:MOVDEST,SRC  功能

2、:把一個(gè)字節(jié),字或雙字從源操作數(shù)SRC傳送至目的操作數(shù)DEST?! 魉椭噶钤试S的數(shù)據(jù)流方向見圖311。圖3.11 傳送指令數(shù)據(jù)流  由上圖可知,數(shù)據(jù)允許流動(dòng)方向?yàn)椋和ㄓ眉拇嫫髦g、通用寄存器和存儲器之間、通用寄存器和段寄存器之間、段寄存器和存儲器之間,另外還允許立即數(shù)傳送至通用寄存器或存儲器。但在上述傳送過程中,段寄存器CS的值不能用傳送指令改變?! ±?.12CPU內(nèi)部寄存器之間的數(shù)據(jù)傳送?! OVAL,DH    ;AL←DH    (8位)  MOVDS,AX   ?。籇S←AX    (16位)  MO

3、VEAX,ESI  ?。籈AX←ESI   (32位)  例3.13CPU內(nèi)部寄存器和存儲器之間的數(shù)據(jù)傳送。  MOV[BX],AX     ??;間接尋址     (16位)  MOVEAX,[EBX+ESI]   ;基址變址尋址   (32位)  MOVAL,BLOCK    ?。籅LOCK為變量名,直接尋址(8位)例3.14立即數(shù)送通用寄存器、存儲器?! OVEAX,12345678H   ;EAX←12345678H   (32位)  MOV[BX],12H    ??;間接尋址      (8位)  MOV

4、AX,1234H;AX←1234H(16位)  使用該指令應(yīng)注意以下問題:  ·源和目的操作數(shù)不允許同時(shí)為存儲器操作數(shù);  ·源和目的操作數(shù)數(shù)據(jù)類型必須一致;  ·源和目的操作數(shù)不允許同時(shí)為段寄存器;  ·目的操作數(shù)不允許為CS和立即數(shù);  ·當(dāng)源操作數(shù)為立即數(shù)時(shí),目的操作數(shù)不允許為段寄存器;  ·傳送操作不影響標(biāo)志位。  2擴(kuò)展傳送指令  格式:MOVSX DEST,SRC     MOVZX DEST,SRC  功能:將源操作數(shù)由8位擴(kuò)展到16位送目的操作數(shù),或由16位擴(kuò)展到32位送目的操作數(shù)。其中MOVSX是

5、按有符號數(shù)擴(kuò)展,MOVZX是按無符號數(shù)擴(kuò)展。無符號數(shù)或正數(shù)高位擴(kuò)展為0,負(fù)數(shù)高位擴(kuò)展為全“1”?! ±?.15帶符號數(shù)擴(kuò)展  MOVBL,80H ??; -128  MOVSXAX,BL  ; 將80H擴(kuò)展為FF80H后送AX中?! ±?.16無符號數(shù)擴(kuò)展  MOVBL,80H  ; 128  MOVZXAX,BL ??; 將80H擴(kuò)展為0080H后送AX中?! ∈褂迷撝噶顟?yīng)注意以下問題:  ·目的操作數(shù)應(yīng)為16位或32位通用寄存器;  ·源操作數(shù)長度須小于目的操作數(shù)長度,為8位或16位通用寄存器或存儲器操作數(shù);  ·

6、擴(kuò)展傳送操作不影響標(biāo)志位。  3交換指令  (1)格式:XCHGOPR1,OPR2  功能:交換操作數(shù)OPR1和OPR2的值,操作數(shù)數(shù)據(jù)類型為字節(jié)、字或雙字。允許通用寄存器之間,通用寄存器和存儲器之間交換數(shù)據(jù)。  例3.17  XCHGAX,BX;通用寄存器之間交換數(shù)據(jù)(16位)  XCHGESI,EDI;通用寄存器之間交換數(shù)據(jù)(32位)  XCHGBX,[SI];通用寄存器和存儲器之間交換數(shù)據(jù)(16位)  XCHGAL,[BX];通用寄存器和存儲器之間交換數(shù)據(jù)(8位)  使用該指令應(yīng)注意以下問題:  ·操

7、作數(shù)OPR1和OPR2不允許同為存儲器操作數(shù);  ·操作數(shù)數(shù)據(jù)類型必須一致;  ·交換指令不影響標(biāo)志位?! ∪缫獙?shí)現(xiàn)存儲器操作數(shù)交換,可用如下指令實(shí)現(xiàn):               MOVAL,BLOCK1               XCHGAL,BLOCK2               MOVBLOCK1,AL  (2)格式:BSWAPREG  功能:將32位通用寄存器中,第1個(gè)字節(jié)和第4個(gè)字節(jié)交換,第2個(gè)字節(jié)和第3個(gè)字節(jié)交換。例3.18  MOVEAX,44332211H  BSWAPEAX;EAX=1122

8、3344H  使用該指令應(yīng)注意以下問題:  ·操作數(shù)為32位通用寄存器;  ·交換指令不影響標(biāo)志位。  二、堆棧操作指令  1壓棧指令  (1)格式:PUSHSRC  功能:將源操作數(shù)壓下堆棧,源操作數(shù)允許為16位或32位通用寄存器、存儲器和立即數(shù)以及16位段寄存器。當(dāng)操作數(shù)數(shù)據(jù)類型為字類型,壓棧操作使SP值減2;當(dāng)數(shù)據(jù)類型為雙字類型,壓棧操作使SP值減4。

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。