汇编指令英文全称
1.通用数据传送指令
MOV—-> move
MOV dest,src dest←src
MOV 指令把一个字节或字的操作数从源地址src传送至目的地址dest。
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
交换指令用来将源操作数和目的操作数内容交换,操作数可以是字、也可以是字节,可以在通用寄存器与通用寄存器或存储器之间对换数据,但不能在存储器与存储器之间对换数据。
mov ax,1234h ax=1234h
mov bx,5678h bx=5678h
xchg ax,bx ax=5678h,
bx=1234h
xchg ah,al ax=7856h
CMPXCHG—->compare and change
XADD—->exchange and add
XLAT—->translate 换码指令用于将BX指定的缓冲区中、AL指定的位移处的数据取出赋给AL。
2.输入输出端口传送指令
IN—->input
OUT—->output
3.目的地址传送指令
LEA—->load effective addres
有效地址传送指令
mov bx,0400h
mov si,3ch
lea bx,[bx+si+0f62h] BX=139EH 这里BX得到的是主存单元的有效地址,不是物理地址,也不是该单元的内容。
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 dflag
POPD—->pop dflag
二、算术运算指令
ADD—->add
加法指令
mov al,0fbh al=0fbh
add al,07h al=02h
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
三、逻辑运算指令
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