实时搜索: ebp esp有几个

ebp esp有几个

687条评论 4986人喜欢 5702次阅读 929人点赞
PUSH EBP
MOV EBP,ESP
SUB ESP,4//分配局部变量空间,一个int是4个字节
MOV EAX,DWORD PTR SS:[EBP+8]//读取参数a 这里能理解 相当于 ESP-10+8
ADD EAX,DWORD PTR SS:[EBP+C]//加上参数b 这里也能理解 ESP-10+C

MOV DWORD PTR SS:[EBP-4],EAX//保存到局部变量c 这句意思没有搞清楚????

为什么是在EBP-4 中存储局部变量C 按照上面的理解 应该是 ESP-10+0...

汇编中eax,ecx,edx,ebx,esp,ebp,esi,edi,eip分别是什么?有什么用?: 这些是32位的CPU中32位的寄存器的名字。

寄存器是CPU内部的用于运行中暂存数据的存储单元。

在PC用的16位CPU 8086、8088中,寄存器的名字分别是AX(累加器),BX(基址寄存器),CX(计数寄存器),DX(数据寄存器),SP(堆栈指针),BP(基址指针),SI(源变址寄存器),DI(目的变址寄存器),IP(指令指针),等等……

这些寄存器除了从名字可以看得出来的用途以外,一部分寄存器也可以作为通用的一般数据寄存使用。具体每个寄存器的功能要与各种具体的指令关联起来才能理解清楚。

在386以上的32位CPU中,这些寄存器扩展成了32位的,名字就是在原来16位的名字前面加一个字母E,变成了EAX,EBX,…………

在OD 反汇编关于EBP 和ESP 局部变量 和函数参数 区别 比如:: 建议你找本关于汇编语言的书看看,这是堆栈平衡的问题,调用函数时,先保存EBP,再把当前ESP值赋给EBP,相当于这个函数所用的堆栈空间的起点,然后传递的参数,定义的局部变量,在程序中都是以这个EBP为参考点的,比如[EBP+8],[EBP+c]等指令,是调用压入堆栈的参数,,,一般,调用一个函数,堆栈分配是先压入参数,在压入调用程序的返回地址,再压入EBP值,再压入要保存的寄存器,如果没有可以省略,然后压入局部变量,所以压入的参数在EBP上边,调用参数一般是[EBP+x],x是偏移,而局部变量一般是[ebp-x],,根据你的描述EBP中存参数?怎么可能,EBP是个寄存器,局部变量存于堆栈中,而堆栈是内存的一部分,,EBP占四个字节的堆栈,EBP的上四个字节,即[EBP+4]存返回地址,[ebp+8]存参数,你说是存参数a,然后如果没有其他参数那么,参数b应该存于[ebp+12]的堆栈空间中,而变量存于EBP下方的堆栈空间,占4个字节,所以是[ebp-4]的堆栈空间啊,没错啊,EBP是寄存器,存地址,不存 变量,,不懂再问,

esp和ebp有什么区别: ESP\EBD?
两者不同,ESP是车辆稳定系统,在车辆变更形式方向时,由电脑自动调节打滑车轮附着力,将驱动轮分别单独制动,达到稳定形式状态目的。
EBD是ABS的辅助系统,在启动ABS同时,平衡各车轮的附着力,达到禁止制动时不发生单个轮胎暴死位移。

EBP寄存器存着什么东西,跟函数返回有什么联系啊: 进入函数时要保存ebp的值, 然后用来存放进入函数时esp的值,方便进行堆栈内的寻址, 函数返回要恢复ebp的值, 除此以外,ebp和函数返回没什么关系
====================================================================
在寄存器里面有很多寄存器虽然他们的功能和使用没有任何的区别,但是在长期的编程和使用中,在程序员习惯中已经默认的给每个寄存器赋上了特殊的含义,比如:EAX一般用来做返回值,ECX用于记数等等。在win32的环境下EBP寄存器用与存放在进入call以后的ESP的值,便于退出的时候回复ESP的值,达到堆栈平衡的目的。

应用以前说过的一段话:

原程序的OEP,通常是一开始以 Push EBP 和MOV Ebp,Esp这两句开始的,不用我多说大家也知道这两句的意思是以EBP代替ESP,作为访问堆栈的指针。

为什么要这样呢?为什么几乎每个程序都是的开头能?因为如果我们写过C等函数的时候就应该清楚,程序的开始是以一个主函数main()为开始的,而函数在访问的过程中最重要的事情就是要确保堆栈的平衡,而在win32的环境下保持平衡的办法是这样的:

1.让EBP保存ESP的值;

2.在结束的时候调用

mov esp,ebp
pop ebp
retn

或者是

leave
retn

两个形式是一个意思。
这样做的好处是不用考虑ESP等于多少,PUSH了多少次,要POP多少次了,因为我们知道EBP里面放的是开始时候的ESP值。

MOV EAX,DWORD PTR SS:[EBP+8]: 是从ss段的ebp+8这里开始,复制4个字节到eax寄存器。

在32位环境下,这一句一般是将函数第一个参数的值放到eax寄存器中。
楼上的写法应该是错误的,lea只负责加减乘除运算,没有取内容的用法。

你说的那句用nasm来写可以写成
mov eax,dword ptr [ebp + 8]
理由:ebp和esp默认是ss段,所以根本不用显式说明。eax,ebx,ecx,edx,edi,esi默认是ds段,eip默认是cs段。

[EBP+xxx],与[esp+xxx]分别是啥意思的哦?: able同学在研究shellcode吗?mov esp, ebppush ebp// mov ebp,esp ; 把当前esp赋给ebp <—— 多余代码不过看起不太对如果这些代码在函数开头的话,我觉得应该是push ebp ; 保存旧的ebp(调用本函数的函数的栈基址)mov ebp, esp ; 划定本函数的栈基址,从ebp开始向前的一段空间sub esp, 100 ; 类似的代码是为函数局部变量预留存储空间,然后以[ebp-xxx]的形式引用它们之后那一大串mov byte ptr [ebp-xx], yy 就是修改这片内存的值为command.com这个字符串然后 lea eax,[ebp-0ch] ; 获取字符串首地址,后面的push和call就不用说了吧,函数调用

汇编ESP+4 和 EBP+4: 不是。没一个指向第一个参数

汇编如何修改esp--高分求解决-解决在追加 200-在线等: QQ已经解决

  • dvi转hdmi怎样

    为什么周震南机场秀造型,黑色头套配墨镜,安保看到都要崩溃?: 我估计这就是今年的新造型吧,也有可能是怕被粉丝认出来。 ...

    305条评论 5037人喜欢 4228次阅读 426人点赞
  • 0.78 是多少

    别人帮我炒外汇亏了20万能追回来吗: 亏损是可以通过律所维权帮你追回损失的 ...

    769条评论 5599人喜欢 4224次阅读 487人点赞
  • og是什么意思

    海尔空调au1是什么意思: A是现在空调的能效等级新标准APF(Annual Performance Factor,全年能源消耗效率),U1是说这个空调有智能模块,可以连wifi控制 ...

    767条评论 2685人喜欢 1390次阅读 237人点赞
  • outlook 如何密送

    雷凌要换4个轮毂得多少钱: 这款车一个轮毂大概400块钱左右。希望我的回答能帮到您.如果有不明白欢迎继续追问.祝您用车愉快!【汽车有问题,问汽车大师。4S店专业技师,10分钟解决。】 ...

    790条评论 1930人喜欢 3172次阅读 907人点赞
  • .msi文件在哪

    三星 s6一个放手机卡一个放内存卡可以吗?: 非常抱歉,三星S6系列手机是不支持内存卡的。S6插/取SIM卡方法:插入SIM卡:将取卡针插入手机SIM卡卡槽的小孔弹出卡槽(确保取卡针与小孔垂直,否则可能会损坏设备),轻轻地将SIM卡托盘从卡槽中拉出,将SIM卡的...

    863条评论 1706人喜欢 3391次阅读 903人点赞
  • 23厘米等于多少毫米

    瑞风s6价格多少: 价格812万三配置过8万估计库存几乎没有4S肯定给买12万自动挡技术没位耗油买10万款还错手动挡具体价格要看地区而定了每地方经销商优惠幅度样10万2.0手动挡我开过动力、油耗表现还错大开起来爽尤其超车等红灯哈哈安全没...

    580条评论 2732人喜欢 6659次阅读 810人点赞
  • 2017有几个情人节

    三星s6怎么清理内存垃圾: S6若需要优化内存,建议您:1.点击手机左下角近期应用程序键-点击要关闭的应用程序右上角的“X”关闭(如需全部关闭,点击屏幕下方的关闭全部即可)。2.待机桌面-应用程序-智能管理器-内存-可结束正在运行的程序/可停止...

    754条评论 1847人喜欢 1646次阅读 407人点赞