有时我们需要查看汇编代码去分析软件异常,汇编代码才能最直观地反映出软件的问题所在。为了方便大家理解并记忆常用的汇编指令,读懂汇编代码的上下文,此处列出常用汇编指令的使用说明,以供参考。
|
AAA |
||
|
AAD |
||
|
AAM |
||
|
AAS |
||
|
ADC |
||
|
ADD |
||
|
AND |
||
|
CALL |
||
|
CBW |
||
|
CLC |
说明: 例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针. |
|
|
CLD |
说明: 例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针. |
|
|
CLI |
说明: 例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针. |
|
|
CMC |
说明: 例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针. |
|
|
CMP |
||
|
CMPS |
||
|
CMPSB |
||
|
CMPSW |
||
|
CWD |
||
|
DAA |
||
|
DAS |
||
|
DEC |
||
|
DIV |
||
|
ESC |
||
|
HLT |
||
|
IDIV |
||
|
IMUL |
||
|
IN |
||
|
INC |
||
|
INT |
说明: 操作过程与INTO指令雷同,只需将10H改为n*4即可.所以,本指令也将影响标志位IF及TF. |
|
|
INTO |
||
|
IRET |
||
|
JA |
||
|
JAE |
||
|
JB |
说明: 该指令用于无符号数的条件转移 |
|
|
JBE |
说明: 该指令用于无符号数的条件转移 |
|
|
JC |
说明: JC为根据标志位CF进行转移的指令 |
|
|
JE |
||
|
JG |
说明: 用于带符号数的条件转移指令 |
|
|
JGE |
说明: 用于带符号数的条件转移指令 |
|
|
JL |
说明: 用于带符号数的条件转移指令 |
|
|
JLE |
说明: 用于带符号数的条件转移指令 |
|
|
JMP |
||
|
JNA |
说明: 该指令用于无符号数的条件转移 |
|
|
JNAE |
说明: 该指令用于无符号数的条件转移 |
|
|
JNB |
||
|
JNBE |
||
|
JNC |
说明: JNC为根据标志位CF进行转移的指令 |
|
|
JNE |
||
|
JNG |
说明: 用于带符号数的条件转移指令 |
|
|
JNGE |
说明: 用于带符号数的条件转移指令 |
|
|
JNL |
说明: 用于带符号数的条件转移指令 |
|
|
JNLE |
说明: 用于带符号数的条件转移指令 |
|
|
JNO |
说明: JNO是根椐溢出标志位OF进行转移的指令 |
|
|
JNP |
||
|
JNS |
说明: JNS是根据符号标志位SF进行转移的指令 |
|
|
JNZ |
||
|
JO |
说明: JO是根椐溢出标志位OF进行转移的指令 |
|
|
JP |
||
|
JPE |
||
|
JPO |
||
|
JS |
说明: JS是根据符号标志位SF进行转移的指令 |
|
|
JZ |
||
|
LAHF |
说明: 该指令不影响FLAG的原来内容,AH只是复制了原FLAG的低8位内容. |
|
|
LDS |
||
|
LEA |
||
|
LES |
||
|
LOCK |
无可用信息!用户可自行添加! |
|
|
LODS |
||
|
LOOP |
||
|
LOOPE |
||
|
LOOPNE |
||
|
LOOPNZ |
||
|
LOOPZ |
||
|
MOVE |
||
|
MOVS |
||
|
MOVSB |
||
|
MOVSW |
||
|
MUL |
||
|
NEG |
||
|
NOP |
说明: 本指令不影响标志位. |
|
|
NOT |
||
|
OR |
||
|
OUT |
||
|
POP |
||
|
POPF |
说明: 如果对堆栈中的原FLAG内容进行修改,如对TF等标志位进行修改,然后再弹回标志位寄存器FLAG.这是通过指令修改TF标志的唯一方法. |
|
|
PUSH |
||
|
PUSHF |
||
|
RCL |
||
|
RCR |
||
|
REP |
||
|
REPE |
||
|
REPNE |
||
|
REPNZ |
||
|
REPZ |
||
|
RET |
||
|
ROL |
||
|
ROR |
||
|
SAHF |
说明: 本指令将用AH的内容改写FLAG标志寄存器中的SF、ZF、AF、PF、和CF标志,从而改变原来的标志位. |
|
|
SAL |
||
|
SAR |
||
|
SBB |
||
|
SCAS |
||
|
SCASB |
||
|
SCASW |
||
|
SHL |
||
|
SHR |
||
|
STC |
说明: 例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针. |
|
|
STD |
说明: 例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针. |
|
|
STI |
说明: 例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针. |
|
|
STOS |
||
|
SUB |
||
|
TEST |
说明: TEST与AND指令的关系,有点类似于CMP与SUB指令之间的关系. |
|
|
WAIT |
说明: 本指令不影响标志位. |
|
|
XCHG |
||
|
XLAT |
||
|
XOR |
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176465.html原文链接:https://javaforall.net
