IA32寄存器基本讲解

1.什么是CPU寄存器

寄存器(Register )是CPU内部用来存放数据的一些小型存储区域,它与我们常说的RAM( Random Access
Memory,随机存储器、内存)略有不同。CPU访问(Access
)RAM中的数据时要经过较长的物理路径,所以花费的时间要长一些;而寄存器集成在CPU内部,拥有非常高的读写速度。

2.IA-32寄存器
1.通用寄存器
通用寄存器是一种通用型的寄存器,用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。通用寄存器有以下8种:

EAX:累加器。
EBX:基址寄存器。
ECX:计数器。
EDX:数据寄存器。
EBP:拓展基址指针寄存器。
ESP:栈指针寄存器。
ESI:源变址寄存器。
EDI :目的变址寄存器。

2.段寄存器
3.程序状态与控制寄存器

  • EFLAGS:Flag Register,标志寄存器 IA-32中标志寄存器的名称为EFLAGS,其大小为4个字节( 32位),由原来的16位FLAGS寄存器扩展而来。

  • ZF:若运算结果为0,则其值为1(Treu)反之为0(False)

  • OF:有符号整数溢出时,OF值被置为1。

  • CF:无符号整数溢出时,CF值被置为1。

4.指令指针寄存器

  • EIP:Instruction Pointer,指令指针寄存器

指令指针寄存器保存着CPU要执行的指令地址,其大小为32位(4个字节),由原16位IP寄存器扩展而来。程序运行时,CPU会读取EIP中一条指令的地址,传送指令到指令缓冲区后,EIP寄存器的值自动增加,增加的大小即是读取指令的字节大小。这样,CPU每次执行完一条指令,
就会通过EIP寄存器读取并执行下一- 条指令。

逆向工程---IA32寄存器相关推荐

  1. 逆向工程核心原理学习笔记(十):IA-32寄存器基本讲解

    什么是CPU寄存器: 为什么要学习寄存器: IA-32寄存器: 基本程序运行寄存器: 下面介绍一下各种寄存器:

  2. IA-32寄存器基本介绍

    IA-32寄存器基本介绍 什么是寄存器 寄存器就是CPU内部用来存放数据的一些小型存储区域 特点: 由于距离CPU近,它的读写速度非常快,常用来暂时存储数据 寄存器的种类 Basic program ...

  3. 5.IA-32寄存器

    寄存器(Register)是CPU内部用来存放数据的一些小型存储区域,它与RAM(Random Access Memory,随机存储器.内存)略有不同.CPU访问(Access)RAM中的数据时要经过 ...

  4. IA-32寄存器(通用寄存器、EFLAGS寄存器、指令指针寄存器、段寄存器)

    文章目录 一.通用寄存器(GPR) 二.EFLAGS寄存器(标志寄存器) 三.指令指针寄存器(EIP) 四.段寄存器(Segment Register) 通用寄存器(General Purpose R ...

  5. 《逆向工程核心原理》

    <逆向工程核心原理> 基本信息 作者: (韩)李承远    译者: 武传海 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787115350183 上架时间:2014-4 ...

  6. CSAPP导读第3章 程序的机器级表示

    我们知道,计算机只认识0和1,因此在计算机发展的早期,我们只有二进制程序可用,对于程序员而言,能够使用的只有0和1,这样去编写程序是十分痛苦的.后来,出现了汇编语言,使得程序的编写变得方便了许多,使用 ...

  7. CTF-RE 笔记汇总

    推荐肉丝r0ysue课程(包含安卓逆向与js逆向): 做了笔记从来不看系列--丢云端清本地了 文章目录 滴水 2015-01-12(进制01) 2015-01-13(进制01) 2015-01-14( ...

  8. 【二进制基础篇-1】汇编基础

    掌握汇编语言的目的是能够深入理解计算机系统的底层原理,在提高程序设计能力的同时也为二进制安全打下坚实的基础. 目录 1.CPU指令集 1.1 CPU的作用 1.2 CPU指令集 2.数据表示 2.1 ...

  9. 计算机系统 程序和指令

    文章目录 程序和指令 intel 处理器 高级语言中程序寻址举例 IA 32 机器指令格式 IA32 常用传送指令 常用定点运算指令 加分以运算的底层实现举例 加法指令和乘法指令举例 逻辑运算指令和按 ...

最新文章

  1. python Django 学习笔记
  2. 黑马程序员---基础加强-----------------第二天(新特性:注解、泛型)
  3. PHPCMS V9自定义分页函数
  4. 2021夏季每日一题 【week4 完结】
  5. Type of data in energy dashboard
  6. Apache+jboss群集部署
  7. android调用另一app的xml,Android 7.0+调用其他App打开文件
  8. OGR示例:写shp,求面与面的交和差操作
  9. XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)
  10. C语言一趟冒泡交换最小值,C语言单链表冒泡排序为啥以下代码实现不了?
  11. 属性面板 脚本_如何在组态王中实现同类型设备公用操作面板的调用---干货
  12. Event Loop、计时器、nextTick
  13. Laravel核心解读--Database(二) 查询构建器
  14. 掌握这8个CSS开发工具让你瞬间成为开发高手
  15. Arcgis Javascript那些事儿(一)--Arcgis server发布feature access服务
  16. 查询数据库里所有表名,字段名的语句
  17. iSCSI服务部署网络存储
  18. 在ppt中怎么加入倒计时 里面怎么加入倒计时【方法】
  19. mysql index函数用法_mysql 的indexof函数用法说明
  20. 物联网之卫星导航系统

热门文章

  1. 何为Turing Machine(图灵机)?
  2. 谢孟媛老师英语拼读03(附我备注)
  3. git clone公司项目的代码到本地
  4. 推荐系统架构及流程说明
  5. EJBCA证书平台-管理员及用户使用指南
  6. 如何看iPhone是哪个国家的
  7. 牛投客- 最新热门炒股讲解分享
  8. 欢迎使用CSDN-markdown编辑器 新人报道
  9. 媒体观点 | 手机拍照“神仙打架”背后,厂商死磕计算摄影到底在比什么?
  10. 【转载】数据分析中的两种偏差(选择性偏差、幸存者偏差)