zoukankan      html  css  js  c++  java
  • 第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的值

  • 相关阅读:
    SQL中利用脚本恢复数据库
    SQL中如何检查死锁
    三个有用的SQL辅助工具
    企业报销系统完整设计方案(三)
    企业报销系统完整设计方案(二)
    企业报销系统完整设计方案
    Crystal Report在.net中的两种显示方式
    cacti 流量图合并
    Centos 7 配置邮件发送
    Centos 7 Ntop 流量分析 安装
  • 原文地址:https://www.cnblogs.com/Rev-omi/p/13142100.html
Copyright © 2011-2022 走看看