zoukankan      html  css  js  c++  java
  • OllyDbg---汇编指令

    汇编指令

    NOP 无操作

    • 运行这条指令时,不会对寄存器、内存以及堆栈造成任何影响,也就是无操作。

    • 当用一个短指令来替换一个长指令时,如果处理器没有错误,多余的空间将会被NOP填充。

    • 适当数目的NOP指令可以将其他指令完全替换掉。

    PUSH

    • 将操作数压入到堆栈顶部,新压入的值总是在堆栈的顶部,不会改变下边的数据。
    • 注意:PUSH 401008、PUSH [401008]的含义是不同的。
      • PUSH 401008是把数值401008压入到堆栈顶部
      • PUSH [401008]是将内存单元401008中存储的内容,压入到堆栈中,而且被倒序放置。

    POP

    • 出栈,取出栈顶部的第一个值,然后存放到指定的目标地址内存单元中,比如,POP EAX,从栈顶中取出第一个值存放到EAX中, 随后的一个值就会变为栈顶。

    PUSHAD

    • 把所有通用寄存器的内容按顺序压入到堆栈中

    POPAD

    • 与PUSHAD相反,从堆栈中取值,并将取到的内容放到相应的寄存器中
    PUSHAD 等价于 'PUSH AX, CX, DX, BX, SP, BP, SI, DI'。
    POPAD 等价于  'pop DI, SI, BP, SP, BX, DX, CX, AX'。
    

    MOV

    • 将第二个操作数赋值给第一个操作数

    MOVSX

    • 第二个操作数可能是一个寄存器,也可能是一个内存单元,第一个操作数的位数可能比第二个操作数多,第二个操作数的符号位将会填充第一个操作数的剩余部分。

    MOVZX

    • 和MOVSX类似,但是第一个操作数的剩余部分将会用0填充。

    LEA取地址指令

    • 类似于MOV指令,第一个操作数是一个寄存器,第二个操作数是一个内存单元,将指定地址存放到寄存器中。

    XCHG交换

    • 将两个操作数的值进行交换
  • 相关阅读:
    高清摄像头MIPI接口与ARM处理器的连接
    How to make apq8084
    DBI接口和DPI接口的区别
    MIPI DSI协议介绍
    LCD显示的一些基本概念以及DSI的一些clock解释
    AXI总线
    SPI,UART,I2C都有什么区别,及其各自的特点
    图像滤镜处理算法:灰度、黑白、底片、浮雕
    用到的一些算法收集
    实用Linux命令,不求最全但求实用-------iptables命令实战
  • 原文地址:https://www.cnblogs.com/KX-Lau/p/12928752.html
Copyright © 2011-2022 走看看