汇编语言笔记

一、传送指令

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

image-20220626085110131