OPCode详解及汇编与反汇编原理


1. 何为OPCode
在计算机科学领域中,操作码(Operation Code, OPCode)被用于描述机器语言指令中, 指定要执行某种操作的那部分机器码,构成OPCode的指令格式和规范由处理器的 指令规范指定。除了指令本身以外通常还有指令所需要的操作数,可能有的指令不需要显示 的操作数。这些操作数可能是寄存器中的值,堆栈中的值,某块内存的值或者IO端口中 的值等等。
OPCode在不同的场合中通常具有不同的含义,例如PHP虚拟机(Zend VM)、 java虚拟机(JVM)以及一些软件保护虚拟机中的最小操作单元都 可以称之为OPCode。
在本节课中,介绍的是Intel 80x86 CPU的OPCode
2. 常用单字节OPCode概览A -- 40~4F
                   opcode                                asm                        using
                     0x40                                  inc eax                 emit(0x40)
                     0x41                                  inc ecx                 emit(0x41)
                     0x42                                  inc edx                 emit(0x42)
                     0x43                                  inc ebx                 emit(0x43)
                     0x44                                  inc esp                 emit(0x44)
                     0x45                                  inc ebp                 emit(0x45)
                     0x46                                  inc esi                   emit(0x46)
                     0x47                                  inc edi                  emit(0x47)
                     0x48                                  dec eax                 emit(0x48)
                     0x49                                   dec  ecx                 emit(0x49)
                     0x4a                                   dec  ebx                 emit(0x4a)
                     0x4b                                   dec  ebx                emit(0x4b)
                     0x4c                                   dec  esp                 emit(0x4c)
                     0x4d                                   dec  ebp                emit(0x4d)
                     0x4e                                   dec  esi                  emit(0x4e)
                     0x4f                                    dec  edi                 emit(0x4f)
2. 常用单字节OPCode概览B -- 50~5F
                   opcode                                asm                        using
                     0x50                                  push eax                 emit(0x50)
                     0x51                                   push   ecx                emit(0x51)
                     0x52                                   push   edx                emit(0x52)
                     0x53                                   push   ebx                emit(0x53)
                     0x54                                   push   esp                emit(0x54)
                     0x55                                   push  
  • 17
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值