汇编语言笔记
汇编语言笔记
一、传送指令
1 、通用数据传送指令
指令 | 英文全称 |
---|---|
MOV | move |
MOVSX | extended move with sign data |
MOVZX | extended move with zero data |
PUSH | push |
POP | pop |
PUSHA | push all |
POPA | pop all |
PUSHAD | push all data |
POPAD | pop all data |
BSWAP | byte swap |
XCHG | exchange |
CMPXCHG | compare and change |
XADD | exchange and add |
XLAT | translate |
2 、输入输出端口传送指令
指令 | 英文全称 |
---|---|
IN | input |
OUT | output |
3 、目的地址传送指令
指令 | 英文全称 |
---|---|
LEA | load effective address |
LDS | load DS |
LES | load ES |
LFS | load FS |
LGS | load GS |
LSS | load SS |
4 、标志传送指令
指令 | 英文全称 |
---|---|
LAHF | load AH from flag |
SAHF | save AH to flag |
PUSHF | push flag |
POPF | pop flag |
PUSHD | push dword flag |
POPD | pop dword flag |
二、 运算指令
1 、算术运算指令
指令 | 英文全称 |
---|---|
ADD | add |
ADC | add with carry |
INC | increase 1 |
AAA | ascii add with adjust |
DAA | decimal add with adjust |
SUB | substract |
SBB | substract with borrow |
DEC | decrease 1 |
NEC | negative |
CMP | compare |
AAS | ascii adjust on substract |
DAS | decimal adjust on substract |
MUL | multiplication |
IMUL | integer multiplication |
AAM | ascii adjust on multiplication |
DIV | divide |
IDIV | integer divide |
AAD | ascii adjust on divide |
CBW | change byte to word |
CWD | change word to double word |
CWDE | change word to double word with sign to EAX |
CDQ | change double word to quadrate word |
2 、逻辑运算指令
指令 | 英文全称 |
---|---|
AND | and |
OR | or |
XOR | xor |
NOT | not |
TEST | test |
SHL | shift left |
SAL | arithmatic shift left |
SHR | shift right |
SAR | arithmatic shift right |
ROL | rotate left |
ROR | rotate right |
RCL | rotate left with carry |
RCR | rotate right with carry |
三、字符串操作指令
指令 | 英文全称 |
---|---|
MOVS | move string |
CMPS | compare string |
SCAS | scan string |
LODS | load string |
STOS | store string |
REP | repeat |
REPE | repeat when equal |
REPZ | repeat when zero flag |
REPNE | repeat when not equal |
REPNZ | repeat when zero flag |
REPC | repeat when carry flag |
REPNC | repeat when not carry flag |
四、程序转移指令
1 、 无条件转移指令 ( 长转移 )
指令 | 英文全称 |
---|---|
JMP | jump |
CALL | call |
RET | return |
RETF | return far |
2 、 条件转移指令 ( 短转移 ,128 到 +127 的距离内 )
指令 | 英文全称 |
---|---|
JAE | jump when above or equal |
JNB | jump when not below |
JB | jump when below |
JNAE | jump when not above or equal |
JBE | jump when below or equal |
JNA | jump when not above |
JG | jump when greater |
JNLE | jump when not less or equal |
JGE | jump when greater or equal |
JNL | jump when not less |
JL | jump when less |
JNGE | jump when not greater or equal |
JLE | jump when less or equal |
JNG | jump when not greater |
JE | jump when equal |
JZ | jump when has zero flag |
JNE | jump when not equal |
JNZ | jump when not has zero flag |
JC | jump when has carry flag |
JNC | jump when not has carry flag |
JNO | jump when not has overflow flag |
JNP | jump when not has parity flag |
JPO | jump when parity flag is odd |
JNS | jump when not has sign flag |
JO | jump when has overflow flag |
JP | jump when has parity flag |
JPE | jump when parity flag is even |
JS | jump when has sign flag |
3 、 循环控制指令 ( 短转移 )
指令 | 英文全称 |
---|---|
LOOP | loop |
LOOPE | loop equal |
LOOPZ | loop zero |
LOOPNE | loop not equal |
LOOPNZ | loop not zero |
JCXZ | jump when CX is zero |
JECXZ | jump when ECX is zero |
五 、中断指令
指令 | 英文全称 |
---|---|
INT | interrupt |
INTO | overflow interrupt |
IRET | interrupt return |
六、 处理器控制指令
指令 | 英文全称 |
---|---|
HLT | halt |
WAIT | wait |
ESC | escape |
LOCK | lock |
NOP | no operation |
STC | set carry |
CLC | clear carry |
CMC | carry make change |
STD | set direction |
CLD | clear direction |
STI | set interrupt |
CLI | clear interrupt |
七、 伪指令
指令 | 英文全称 |
---|---|
DW | define word |
PROC | procedure |
ENDP | end of procedure |
SEGMENT | segment |
ASSUME | assume |
ENDS | end segment |
END | end |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.