ADD,是Intel x86平台的汇编加法指令,MEM代指操作数为内存或寄存器,REG代指操作数为寄存器,IMM代指立即数,SEG代指操作数为段寄存器。
形式和示例如下;
 ADD MEM8,REG8        ADD DS:[BX+SI],AL
 ADD MEM16,REG16    ADD BP,BX
 ADD REG8,MEM8       ADD CH,DS:[0E8B]
 ADD REG16,MEM16        ADD BP,BX
 ADD AL,IMM8        ADD AL,12
 ADD AX,IMM16        ADD AX,1234
 ADD MEM8,IMM8        ADD BYTE DS:[BX+SI],12
 ADD MEM16,IMM16        ADD WORD DS:[1234],5678
 ADD MEM8,IMM8        ADD CL,12
 ADD MEM16,IMM8 (有符号)        ADD WORD DS:[BX+SI],-02   |   ADD SP,+0A
我记不清有没有单独写过一篇add指令的博文;再学习一下;
 我也记不住影响的标志位;
加法指令运算的结果对CF、SF、OF、PF、ZF、AF都会有影响,以上标志也称为结果标志,或者叫状态标志。
  CF:进位标志,加法时最高位出现进位或减法时最高位出现借位,该位为1.
   PF:奇偶标志,当运算结果的低8位中1的个数是偶数时,该位为1.
   AF:半进位标志,作字节加法时,若低4位有向高4位的进位,或减法时,低4位有向高4位的借位,该位为1.
   ZF:零标志,运算结果是0,该位为1.
   SF:符号标志,运算结果最高位为1该位是1.
   OF:溢出标志,有溢出,该位是1.
下面看一个例子;

 
两加数符号位都为0,结果符号位变为1,OF = 1;
 结果最高位为1,SF = 1;
 结果不为0,ZF = 0;
 第4位3与7相加时未向高位进位,辅助进位标志 AF = 0;
 结果(低8位)为1011 1010共5个1,PF = 0;
 相加结果未发生进位,CF = 0;


















