• 第4章:IA-32寄存器


    Intel x86系列的CPU采用的是小端序,RISC系列的CPU采用采用的是大端序

    小端序方便计算,大端序方便表示

    记住下面的寄存器名字:

    EAX :(针对操作数和结果数据的)累加器 Accumulation,或用在函数返回值中

    EBX:(DS段中的数据指针)基址寄存器

    ECX:(字符串和循环操作中的)计数器

    EDX:(I/O指针)数据寄存器

    上面四个寄存器主要用在算术运算中.

    EBP:(SS段中栈内数据指针)扩展基址指针寄存器 Base Pointer,栈区域的基地址,用于暂时保存ESP的值,这叫栈帧(Stack Frame)技术

    ESI:(字符串操作源指针)源变址寄存器 Source

    EDI:(字符串目标指针)目的变址寄存器 Destination

    ESP:(SS段中栈指针)栈指针寄存器  Stack Segment

    在IA-32的保护模式中,段是一种内存保护技术,段内存记录在SDT(Segment Descriptor Table,段描述符表)中,段寄存器就持有SDT的索引值

    段寄存器的名称如下:

    CS:Code Segment ,代码段寄存器,即放应用程序代码所在段的段基址

    SS:Stack Segment ,栈段寄存器,放栈段的段基址

    DS:Data Segment ,数据段寄存器,数据段的段基址

    ES:Extra(data) Segment ,附加数据段寄存器,附加数据段的段基址

    FS,GS:同 ES

    FS寄存器在高级调试中会使用到,它用于计算SEH(Structured Exception Handler)结构化异常处理,TEB(Thread Environment Block)线程环境块,PEB(Process Environment Block)进程环境块等地址

    Eflags,标志寄存器:

    OF(Over Flow)标志位:有符号整数溢出时或最高有效位MSB(Most Significant Bit),即化为二进制后最高的那一位,改变时都会置为1.

    CF(carrier Flag):无符号整数溢出时,置为1

    EIP寄存器:CPU下一个将要执行的指令,不能直接改变,只能通过其它指令jmp,call等或者中断or异常来修改EIP的值

  • 相关阅读:
    Microsoft Dynamics CRM 常用JS语法(已转成vs2017语法提示)
    IIS7如何实现访问HTTP跳转到HTTPS访问
    C#调用PB写的com组件dll
    C# winform程序免安装.net framework在XP/win7/win10环境运行!
    文件上传漏洞
    OWASP TOP 10
    sql
    ASCII码查看
    sql注入--mysql
    sql注入--access
  • 原文地址:https://www.cnblogs.com/Rev-omi/p/13142100.html
Copyright © 2020-2023  润新知