![x86汇编与逆向工程:软件破解与防护的艺术](https://wfqqreader-1252317822.image.myqcloud.com/cover/730/53287730/b_53287730.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.2 x86指令
x86汇编语言包括数百种指令。其中最常用的包括以下几种:
• 算术指令:
■ add。
■ sub。
■ mul。
■ inc。
■ dec。
• 位操作指令:
■ and。
■ or。
■ xor。
■ not。
• 栈指令:
■ call。
■ return。
■ push。
■ pop。
• 数据移动指令:
■ mov。
• 执行流程指令:
■ jmp。
■ 条件跳跃指令。
• 比较指令:
■ test。
■ cmp。
• 其他指令:
■ lea。
■ nop。
虽然这看起来很多,但请考虑一下编程语言中常用的操作符(+、-、*、/、%、&&、||、&、|、^、!、~、<、>、<=、>=、==、.、->等)和主要关键词(if、else、switch、while、do、case、break、continue、for等)。用汇编语言实现这些行为需要很强的能力。
说实话,没有人能记住所有的x86指令,也没有必要这样做。x86指令的完整列表可以在http://ref.x86asm.net/coder32.html上找到,若有需要,可以在这里查阅任何指令的详细信息。
然而,要想成为一名成功的逆向工程师,理解最常用的x86指令的工作原理是非常必要的。如果你熟悉这部分关键的x86指令,你就能阅读并理解大多数x86程序。