1. "movsx"用于"movsx EAX,BX"赋值表示,二进制表示形式有符号数为正数用0填充前四位,有符号数为负数用F填充前四位,二进制数,前面0开头的为正数,前面1开头的为负数,"movzx"默认用0填充前四位,无论是否正数负数.
    1.1 A123二进制数为负数,用F填充前4位.


    1.2 A123,二进制数用1开头,代表负数.



    1.3 1234二进制数为正数,用0填充前4位.


    1.4 1234,二进制数用0开头,代表正数,0被忽略了,用三个0填充在前面.



    1.5 "movzx EAX,BX"直接用0填充.

  2. "lea"指令用于计算方括号里面的数值并赋值给寄存器,并不是方括号内存地址中的值,这和平常计算获取内存地址中的值不一样,“xchg”用于互换寄存器中的值.
    2.1 [ebx+0x16] = 5555A139


    2.2 EAX与ECX互换.

  3. "add"用于相加数值并赋值给左值,"sub"用于相减数值并赋值给左值.
    3.1 如图.eax和ecx相加,然后相加赋值给402000内存地址处的值,原本402000地址处的值为0,eax,ecx相减后为0赋值给eax.