****(三)——IA-32寄存器学习

基本程序运行寄存器

名称 种类
通用寄存器 EA/B/C/DX,ESI,EDI,EBP,ESP
段寄存器 C/D/S/E/F/GS
程序状态与控制寄存器 EFLAGS
指令指针寄存器 EIP

寄存器前有E存在,表示该寄存器在IA-16时就有,并且在IA-32时扩展到了32位

1.通用寄存器:
  • 用于保存常量和地址以及传送和暂存数据,也可参与算术逻辑运算并保存结果。
  • ESP表示栈区域的栈顶指针,PUSH,POP,CALL,RET可直接操作ESP
  • EBP表示栈区域基地址,函数被调用时保存ESP的值,函数返回时再把值返回给ESP,用来保证栈不会崩溃。
    ****(三)——IA-32寄存器学习
2.段寄存器:
  • 段是一种内存保护技术,段寄存器描述了保护模式下内存分段模型。
  • CS:代码段寄存器
  • SS:栈段寄存器
  • DS:数据段寄存器
  • ES:附加段寄存器
  • FS:数据段寄存器
  • GS:数据段寄存器
3.EFLAGS寄存器:

****(三)——IA-32寄存器学习

  • ZF:运算结果为0,值为1,否则为0
  • OF:有符号整数溢出时OF=1
  • CF:无符号整数溢出CF=1
  • 待续
4.指令指针寄存器:
  • 保存CPU要执行的指令的地址
  • 不可以直接修改EIP的值,只能通过其他指令间接修改,JMP,CALL,RET等

相关文章: