社区
汇编语言
帖子详情
请教EBP的应用.
willflyz
2008-03-10 11:48:34
如下,为何SS会在[ebp-$04],
如果我再加一个string的变量并赋值给它,那它的地址是什么?
如果再加一个integer的变量并赋值给它,那它的地址是什么?
以上请高手帮忙解答,谢谢!
//
procedure TForm1.Button1Click(Sender: TObject);
var ss: string;
begin
ss := 'TEST';
asm
mov eax,[ebp-$04]
call showmessage
end;
end;
...全文
152
8
打赏
收藏
请教EBP的应用.
如下,为何SS会在[ebp-$04], 如果我再加一个string的变量并赋值给它,那它的地址是什么? 如果再加一个integer的变量并赋值给它,那它的地址是什么? 以上请高手帮忙解答,谢谢! // procedure TForm1.Button1Click(Sender: TObject); var ss: string; begin ss := 'TEST'; asm mov eax,[ebp-$04] call showmessage end; end;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cnzdgs
2008-03-11
打赏
举报
回复
自己把代码写出来,反汇编看一下不就知道了。
willflyz
2008-03-11
打赏
举报
回复
哈哈,没关系,我也喜欢鲁伊.科斯塔,定位球技术很好。
刚才看了一下程式,如果是字串EBP就向后推算,如果是数值类型的会直接放在寄存器当中。
dongyi940333
2008-03-11
打赏
举报
回复
对不起LZ,贴子回错了,^_^,LZ的问题也在学习中
dongyi940333
2008-03-11
打赏
举报
回复
暂留程序有两种,这取决于程序文件使用的扩展名(COM或EXE).COM程序是未经修改的机器语言程序的二进制映像,MS-DOS会把COM程序加载到最低可用的段地址,并在偏移0-处创建一个256字节的PSP,(程序段前缀)代码从偏移100H处开始(所以ORG 100H),数据区紧接在代码区后,堆栈区在段的最底端.
LZ可以参考INTEL汇编语言程序设计第四版(第16章)
不对之处请原谅!!!
willflyz
2008-03-11
打赏
举报
回复
谢谢楼上的,好早啊!
大概明白了,不过如果是好几个局部变量呢,
是按变量定义的顺序及所占字节数往后推算嘛?
zara
2008-03-11
打赏
举报
回复
用堆栈来传递参数和开拓局部变量的存放空间时, 往往在函数的开始处有如下的指令:
push ebp
mov ebp, esp
sub esp, xx ; 这里就是为局部变量在堆栈中留出空间来
所以, ebp 就是局部变量和函数参数间的基址了. ebp-?? 就是局部变量; ebp+?? 则可以访问到参数.
willflyz
2008-03-11
打赏
举报
回复
Debug了一下确实是这样,谢谢zara.
zara
2008-03-11
打赏
举报
回复
"如果是数值类型的会直接放在寄存器当中", 这个不完全对的. 寄存器能够提供出来作为变量, 其个数是很有限的. 现在的 Win32 一般是 esi, edi 和 ebx 三个 32 位的寄存器, 有的连 ebx 都不会用到. 如果函数里的数值类型的变量多于 3 个, 还是要自堆栈里占用空间的.
高手过招:
请教
:变量到底是在编译的时候初始化的,还是在运行的时候初始化的?
请教
:变量到底是在编译的时候初始化的,还是在运行的时候初始化的? [问题点数:40分,结帖人learnc2015] https://bbs.csdn.net/topics/391832733 收藏帖子 回复 learnc2015 结帖率 62.5% 变量到底是在编译的时候初始化的,还是在运行的时候初始化的? 如下函数:居然调用两次打印出来的值分别是1和2,非常不好理解 如果按照C...
转载--算法分析实战篇和
应用
篇之提高(一)我的常用断点系统
【文章标题】: 算法分析实战篇和
应用
篇之提高(一)我的常用断点系统 【文章作者】: NBA2005【作者邮箱】: stockfox1699@126.com【作者QQ号】: 382309369【软件名称】: 小蜜蜂和check 求解没有任何提示的crackme算法【下载地址】: http://bbs.pediy.com/showthread.php?t=56420 小蜜蜂
OllyDbg
应用
方法大全
OllyDbg
应用
方法大全!所有文章均为散落在DFCG论坛各处或其他网络文集的经典。雪很冷搜集整理于学习笔记或与朋友讨论之中Ollydbg 中断方法 Quote: Originally posted by dong at 2004-6-1 10:29 PM:我问个问题在od中怎么下断点呢??现在有的程序一点注册就没反映了这样的怎么下断点呢??能介绍下什么情况下什么断点吗? 在转存中下硬件访问-
2017-2018-1 20155232 《信息安全系统设计基础》第十四周学习总结
2017-2018-1 20155232 《信息安全系统设计基础》第十四周学习总结 1.第八章教材内容总结 异常 进程 系统调用错误处理 进程控制 信号 非本地跳转 操作进程的工具 2.课本练习题 3.家庭作业 4.ch08错题整理以及分析 5.总结 找出全书你认为学得最差的一章,深入重新学习一下,要求(期末占5分): 总结新的收获 给你的结对学习搭档讲解或
请教
,并获取反馈 参考上面的...
[转]Delphi的对象机制浅探
Delphi的对象机制浅探savetime2k@yahoo.com2004-1-3前几天开始阅读 VCL 源代码,可是几个基类的继承代码把我看得头大。在大富翁
请教
了几位仁兄后,我还是对Delphi对象的创建和方法调用原理不太清楚。最后只好临时啃了一下汇编,把Delphi对象操作的几个关键的方法勘察了一遍。你可以通过以下链接知道我为什么要做这件事:http://www.delphibbs.com/d
汇编语言
21,459
社区成员
41,602
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章