分享

汇编指令与英文单词的对照

 厚积书屋 2012-10-09
 
学习汇编中碰到的很多命令书上都没介绍怎么来的,是哪个英文单词的缩写,这样记起来很是麻烦,现总结一下,以方便记忆。

寄存器类(register):

通用寄存器:AX,BX,CX,DX——这几个没什么好写的,就是这样了。

段寄存器:代码段寄存器CS--code segment , 数据段寄存器DS--data segment , 堆栈段寄存器SS--stack segment ,附加段寄存器ES--extra segment 。

特殊功能寄存器:指令指针寄存器IP--instruction pointer ,堆栈指针SP--stack pointer ,基址指针BP--base pointer ,源变址寄存器SI--source index ,目标变址寄存器DI--destination index ,标志寄存器FR--flag register(或者叫程序状态字PSW--program status word)。

PSW常用的标志有:

标志                             值为1时的标记                值为0时的标记

OF(overflow flag)         OV(overflow)                  NV(not overflow)

ZF(zero flag)              ZR(zero)                       NZ(not zero)

PF(parity flag)            PE(parity even)               PO(parity odd)

CF(carry flag)              CY(carried)                   NC(not carried)

DF(direction flag)         DN(down)                      UP(up)   

SF(sign flag)              NG(negtive)                   PL(plus)

TF(trap flag)

IF(interrupt flag)

AF(auxiliary flag)

命令类

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 dflag 
POPD---->pop dflag 

二、算术运算指令 
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 

三、逻辑运算指令 
——————————————————————————————————————— 
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 
4>中断指令 
INT---->interrupt 
INTO---->overflow interrupt 
IRET---->interrupt return 
5>处理器控制指令 
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---->definw word 
PROC---->procedure 
ENDP---->end of procedure 
SEGMENT---->segment 
ASSUME---->assume 
ENDS---->end segment 
END---->end

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多