【软件逆向】第20课,软件逆向安全工程师之汇编语言常用操作码认识,每天5分钟学习逆向吧!

在x86架构的汇编语言中,操作码(Opcodes)是用于定义指令的代码,它们指示CPU执行哪种操作。操作码通常是由一个或多个字节组成的二进制序列,每个字节都代表一个特定的操作。

由于x86架构的复杂性,操作码的数量非常多,这里无法列出所有的操作码。但是,我可以提供一些常见的操作码类别和示例:

数据传输:

mov:将一个值从一个位置移动到另一个位置。
movzx/movsx:零扩展/符号扩展。
lea:加载有效地址。
算术运算:
add:加法。
sub:减法。
inc/dec:增加/减少。
mul/div:乘法/除法。

逻辑运算:

and:按位与。
or:按位或。
xor:按位异或。
not:按位取反。

移位和循环:

shl/shr:逻辑左移/逻辑右移。
sal/sar:算术左移/算术右移。
rol/ror:循环左移/循环右移。

比较和跳转:

cmp:比较两个值。
jmp:无条件跳转。
je/jne/jg/jl/ja/jb:根据比较结果跳转。

栈操作:

push:将值压入栈中。
pop:从栈中弹出值。
call:调用子程序,并压入返回地址。
ret:返回子程序,并弹出返回地址。

过程控制:

int/iret:中断/中断返回。
iretd:带状态的中断返回。

控制流:

jecxz/loop/loope/loopne:循环控制。
输入/输出:
in/out:输入/输出。

浮点运算:

fld/fstp:浮点加载/浮点存储。

这些操作码是x86汇编语言的基础,但并不是全部。汇编语言的复杂性意味着存在大量的操作码,以支持各种不同的编程需求。由于操作码的数量和多样性,它们通常以助记符的形式出现在汇编语言中,以便于程序员记忆和使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值