資源描述:
《匯編指令(常用指令).docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、匯編指令百科名片匯編指令是匯編語(yǔ)言中使用的一些操作符(如mov,inc,loop)和助記符,還包括一些偽指令(如assume,end)。用于告訴匯編程序如何進(jìn)行匯編的指令,它既不控制機(jī)器的操作也不被匯編成機(jī)器代碼,只能為匯編程序所識(shí)別并指導(dǎo)匯編如何進(jìn)行。目錄一、數(shù)據(jù)傳輸指令二、算術(shù)運(yùn)算指令三、邏輯運(yùn)算指令四、串指令五、程序轉(zhuǎn)移指令六、偽指令編輯本段一、數(shù)據(jù)傳輸指令 它們?cè)诖尜A器和寄存器、寄存器和輸入輸出端口之間傳送數(shù)據(jù)?! ?.通用數(shù)據(jù)傳送指令 MOV傳送字或字節(jié). MOVSX先符號(hào)擴(kuò)展,再傳送. MOVZX先零擴(kuò)展,再傳送. PUSH把字壓入堆棧. POP把字彈出堆棧. PUS
2、HA把AX,CX,DX,BX,SP,BP,SI,DI依次壓入堆棧. POPA把DI,SI,BP,SP,BX,DX,CX,AX依次彈出堆棧. PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次壓入堆棧. POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次彈出堆棧. BSWAP交換32位寄存器里字節(jié)的順序 XCHG交換字或字節(jié).(至少有一個(gè)操作數(shù)為寄存器,段寄存器不可作為操作數(shù)) CMPXCHG比較并交換操作數(shù).(第二個(gè)操作數(shù)必須為累加器AL/AX/EAX) XADD先交換再累加.(結(jié)果在第一個(gè)操作數(shù)里) XLAT字節(jié)查表轉(zhuǎn)
3、換. ──BX指向一張256字節(jié)的表的起點(diǎn),AL為表的索引值(0-255,即 0-FFH);返回AL為查表結(jié)果.([BX+AL]->AL) 2.輸入輸出端口傳送指令. INI/O端口輸入.(語(yǔ)法:IN累加器,{端口號(hào)│DX}) OUTI/O端口輸出.(語(yǔ)法:OUT{端口號(hào)│DX},累加器) 輸入輸出端口由立即方式指定時(shí),其范圍是0-255;由寄存器DX指定時(shí), 其范圍是0-65535. 3.目的地址傳送指令. LEA裝入有效地址. 例:LEADX,string;把偏移地址存到DX. LDS傳送目標(biāo)指針,把指針內(nèi)容裝入DS. 例:LDSSI,string;把段地址:偏移地
4、址存到DS:SI. LES傳送目標(biāo)指針,把指針內(nèi)容裝入ES. 例:LESDI,string;把段地址:偏移地址存到ES:DI. LFS傳送目標(biāo)指針,把指針內(nèi)容裝入FS. 例:LFSDI,string;把段地址:偏移地址存到FS:DI. LGS傳送目標(biāo)指針,把指針內(nèi)容裝入GS. 例:LGSDI,string;把段地址:偏移地址存到GS:DI. LSS傳送目標(biāo)指針,把指針內(nèi)容裝入SS. 例:LSSDI,string;把段地址:偏移地址存到SS:DI. 4.標(biāo)志傳送指令. LAHF標(biāo)志寄存器傳送,把標(biāo)志裝入AH. SAHF標(biāo)志寄存器傳送,把AH內(nèi)容裝入標(biāo)志寄存器. PUSHF
5、標(biāo)志入棧. POPF標(biāo)志出棧. PUSHD32位標(biāo)志入棧. POPD32位標(biāo)志出棧.編輯本段二、算術(shù)運(yùn)算指令 ADD加法. ADC帶進(jìn)位加法. INC加1. AAA加法的ASCII碼調(diào)整. DAA加法的十進(jìn)制調(diào)整. SUB減法. SBB帶借位減法. DEC減1. NEC求反(以0減之). CMP比較.(兩操作數(shù)作減法,僅修改標(biāo)志位,不回送結(jié)果). AAS減法的ASCII碼調(diào)整. DAS減法的十進(jìn)制調(diào)整. MUL無(wú)符號(hào)乘法. IMUL整數(shù)乘法. 以上兩條,結(jié)果回送AH和AL(字節(jié)運(yùn)算),或DX和AX(字運(yùn)算), AAM乘法的ASCII碼調(diào)整. DIV無(wú)符號(hào)
6、除法. IDIV整數(shù)除法. 以上兩條,結(jié)果回送: 商回送AL,余數(shù)回送AH,(字節(jié)運(yùn)算); 或商回送AX,余數(shù)回送DX,(字運(yùn)算). AAD除法的ASCII碼調(diào)整. CBW字節(jié)轉(zhuǎn)換為字.(把AL中字節(jié)的符號(hào)擴(kuò)展到AH中去) CWD字轉(zhuǎn)換為雙字.(把AX中的字的符號(hào)擴(kuò)展到DX中去) CWDE字轉(zhuǎn)換為雙字.(把AX中的字符號(hào)擴(kuò)展到EAX中去) CDQ雙字?jǐn)U展.(把EAX中的字的符號(hào)擴(kuò)展到EDX中去)編輯本段三、邏輯運(yùn)算指令 AND與運(yùn)算. or或運(yùn)算. XOR異或運(yùn)算. NOT取反. TEST測(cè)試.(兩操作數(shù)作與運(yùn)算,僅修改標(biāo)志位,不回送結(jié)果). SHL邏輯左移.
7、SAL算術(shù)左移.(=SHL) SHR邏輯右移. SAR算術(shù)右移.(=SHR) ROL循環(huán)左移. ROR循環(huán)右移. RCL通過(guò)進(jìn)位的循環(huán)左移. RCR通過(guò)進(jìn)位的循環(huán)右移. 以上八種移位指令,其移位次數(shù)可達(dá)255次. 移位一次時(shí),可直接用操作碼.如SHLAX,1. 移位>1次時(shí),則由寄存器CL給出移位次數(shù). 如MOVCL,04 SHLAX,CL編輯本段四、串指令 DS:SI源串