一、常用指令:MOV指令、ADD指令、SUB指令、AND指令、OR指令、XOR指令、NOT指令
MOV 的语法:
      MOV r/mX,rX    r 通用寄存器,X 表示位数可以8、16、32
      MOV rX,r/mX    m 代表内存
      MOV rX, immX   imm 代表立即数
1、源操作数可以是立即数、通用寄存器、段寄存器、或者内存单元.
2、目标操作数可以是通用寄存器、段寄存器或者内存单元.
3、操作数的宽度必须一样.
4、源操作数和目标操作数不能同时为内存单元.
mov dword ptr ds:[0x0012FF34],0x12345678 的含义:

dword :要读/写多少此时是4字节   byte == 1字节  word == 2字节
ptr: Point 代表后面是一个指针 (指针的意思就是里面存的不是普通的值,而是个地址)
ds:段寄存器
0x0012FF34:内存编号,必须是32位的  前面0可以省略
注意:地址编号不要随便写,因为内存是有保护的,并不是所有的内存都可以直接读写(需要特别处理)

ADC指令:带进位加法
        格式:ADC  R/M,R/M/IMM   两边不能同时为内存  宽度要一样
SBB指令:带借位减法
        格式同上;
XCHG指令:交换数据
        格式同上;
MOVS指令:移动数据  内存-内存
        MOVS BYTE|WORD|DWORD PTR ES:[EDI],BYTE PTR DS:[ESI]
STOS指令:讲Al/AX/EAX的值存储到[EDI]指定的内存单元
       STOS BYTEBYTE|WORD|DWORD PTR ES:[EDI]
REP指令:按计数寄存器 (ECX) 中指定的次数重复执行字符串指令

MOVSX 先符号扩展,再传送
       MOV AL,80
       MOVSX CX,AL
MOVZX 先零扩展,再传送. 
       MOV AL,80
       MOVSX CX,AL

二、寄存器与内存区别:
1、寄存器位于CPU内部,执行速度快,但比较贵。
2、内存速度相对较慢,但成本较低,所以可以做的很大
3、寄存器和内存没有本质区别,都是用于存储数据的容器,都是定宽的。
4、寄存器常用的有8个:EAX、ECX、EDX、EBX、ESP、EBP、ESI、EDI。
5、计算机中的几个常用计量单位:BYTE WORD DWORD
我们称计算机CPU是32位或者64位,主要指的就是内存编号的宽度,而不是寄存器的宽度。计算机内存的每一个字节会有一个编号,就是地址值。

三、寻址方式
寻址公式一:[立即数]     
        MOV EAX,DWORD PTR DS:[0x13FFC4] ;读取内存的值:
        MOV DWORD PTR DS:[0x13FFC4],eax ;MOV DWORD PTR DS:[0x13FFC4],eax
        LEA EAX,DWORD PTR DS:[0X13FFC4] ;获取内存编号:实际上就是0X13FFC4
寻址公式二:[reg]  reg代表寄存器 可以是8个通用寄存器中的任意一个
       同上,只是0x13FFC4 改成 寄存器;MOV EAX,DWORD PTR DS:[ECX]
寻址公式三:[reg+立即数] 
       MOV EAX,DWORD PTR DS:[ECX+4]
寻址公式四:[reg+reg*{1,2,4,8}] 
       MOV EDX,DWORD PTR DS:[EAX+ECX*4]
寻址公式五:[reg+reg*{1,2,4,8}+立即数] 
       MOV EDX,DWORD PTR DS:[EAX+ECX*4+4]