简单指令
网络中用大端字节序
X86中用小端字节序
sub 指令会修改:ZF:结果为0
CF:目标操作数比减去的值小 CF置位
乘法指令mul:mul value - - -eax乘value 结果以64位形式分别存储在EDX(高)和EAX(低)
除法指令div :div value - - - EDX和EAX和起来除以value 结果商存储在EAX,余数存储在EDX
目的操作数左右移shr shl:shr 1000 2 - - - 结果0100(0填充新位,CF中包含最后移出操作数的那位)(移位通常是对乘法的优化【左移2位=* 4】)
循环移位ror rol:移出那一位会被填到另一端出来的位上(ror低位循环到高位)
移位通常是对乘法的优化
栈
用ESP和EBP来支持栈操作 ESP栈顶指针,EBP栈基址
相关指令:push pop call leave enter ret
pusha 和 pushad 编译器很少使用,通常是手工写的
pop eax == mov eax,ss:[esp]
比较条件指令
ZF标志位 test eax,eax 是否是空值
cmp a,b a = b (ZF=1,CF=0)
a < b (ZF=0,CF=1)
a > b (ZF=0CF=0)
重复指令