什么是指令指针寄存器
指令指针寄存器ip(x86型cpu)相当于arm型cpu中的程序计数器pc,用于控制程序中指令的执行顺序。正常运行时,ip中含有biu要取的下一条指令(字节)的偏移地址,一般情况下,每从内存中存取一次指令码,ip就自动加1,从而保证指令的顺序执行。ip实际上是指令机器码存放内存单元的地址指针,ip的内容可以被转移类指令(如jmp)强迫改写,以改变程序执行的顺序。
注意!我们编制的程序不能直接访问ip,即不能用指令去取出ip的值或给ip设定值(如不能用mov指令给ip赋值)。
指令指针寄存器的作用
指针寄存器包括 ebp esp,低 16 位为 sbp sp。
bp 为可以直接存取堆栈中的数据,sp 可以访问栈顶。
ebp 被用做框架指针,例如,一个程序在逆向后的代码中:
push ebp;
mov ebp,esp;
ebp 保存了一个栈,最后 mov 使得 esp 成为该栈的栈顶指针。
指令指针寄存器记作 eip ,低 16 位为 ip 。用来存放下次将要执行的指令在代码段的偏移量。
32位cpu有2个32位通用寄存器ebp和esp。其低16位对应先前cpu中的sbp和sp,对低16位数据的存取,不影
响高16位的数据。
寄存器ebp、esp、bp和sp称为指针寄存器(pointerregister),主要用于存放堆栈内存储单元的偏移量,
用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。
指针寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。
它们主要用于访问堆栈内的存储单元,并且规定:
bp为基指针(base pointer)寄存器,用它可直接存取堆栈中的数据;
sp为堆栈指针(stack pointer)寄存器,用它只可访问栈顶。
基于Fuzzy-PID的陀螺仪温度控制系统设计
为什么AI即服务势在必行一起来看看吧
苹果十周年,将发三款iPad Por无边框高端产品
四氯乙烯检测仪:专业的环境监测设备
AMD表示不会把自己的成功建立在对手失败的基础上
指令指针寄存器是什么_作用有哪些
手撕友商7nm FPGA?英特尔“亲儿子”上阵
关于铠装光纤跳线综合布线厂家有话说-clan
特朗普拟邀库克共进晚餐,称赞苹果向美国经济中注入“巨额资金”
联发科技正式对外发布天玑1000+ 5G芯片
联发科发布了首颗5G芯片天玑1000售价为50美元
如何阅读微控制器数据表?
神舟推出战神GX10-CR9Pro笔记本,搭载第九代智能英特尔酷睿i9-9900K处理器
四川高科技企业成立两年 连推4款霸气产品“震惊”业界
怎样用手机设置路由器
明日开幕,CITE2022准备就绪!亮点抢先看
浅谈3G无线视频监控服务器
开关二极管有哪些种类
锂电化,将电动两轮车推向更高level
数字时代来临,视频监控的网络安全形势变得严峻