x86中的短指令

x86 指令集中指令所对应的机器码的长短是不一样的,有时候功能相似的指令的机器码长度差异会很大。这里给出一些非常有用的单字节指令。

xchg eax,reg 交换 eax 和其他寄存器中的值
lodsd 把 esi 指向的一个 dword 装入 eax,并且增加 esi
lodsb 把 esi 指向的一个 byte 装入 al,并且增加 esi
stosd
stosb
pushad/popad 从栈中存储/恢复所有寄存器的值
cdq 用 edx 把 eax 扩展成四字。这条指令在 eax<0x80000000 时可用作 mov edx,0