散分+快来报名“C语言指针与汇编内存地址(二)”公开课

赵4老师 2016-05-16 12:03:59
加精
欢迎初步了解C语言指针和X86汇编语言的新人们来捧个人场啊!
欢迎有幸参加了“C语言指针与汇编内存地址”的老人们继续来捧场啊!

“C语言指针与汇编内存地址(二)”公开课
http://edu.csdn.net/huiyiCourse/detail/127

通过求函数大小功能和求函数调用者实例了解指针与函数对应的汇编内存地址。

sizeoffun.c
#include <stdio.h>
void fun1() {
int f1=1;
printf("fun1\n");printf("fun1\n");
}
void fun2() {
int f2=2;
printf("fun2\n");
}
void fun3() {}
int main() {
#ifdef _DEBUG
printf("sizeof(fun1)==%d\n",((int)fun2+5+*(int *)((int)fun2+1))-((int)fun1+5+*(int *)((int)fun1+1)));
printf("sizeof(fun2)==%d\n",((int)fun3+5+*(int *)((int)fun3+1))-((int)fun2+5+*(int *)((int)fun2+1)));
#else
printf("sizeof(fun1)==%d\n",(int)fun2-(int)fun1);
printf("sizeof(fun2)==%d\n",(int)fun3-(int)fun2);
#endif
return 0;
}


whocallme.c
#include <stdio.h>
void whocallme();
void fun1() {
printf("in fun1\n");whocallme();
}
void fun2() {
printf("in fun2\n");whocallme();
}
void fun3() {}
void whocallme() {
int *_ebp;
__asm {
mov eax,ebp
mov _ebp,eax
}
#ifdef _DEBUG
printf("\nfun1,fun2,fun3,_ebp=%08x,%08x,%08x,%08x\n",(int)fun1+5+*(int *)((int)fun1+1),(int)fun2+5+*(int *)((int)fun2+1),(int)fun3+5+*(int *)((int)fun3+1),(int)_ebp);
#else
printf("\nfun1,fun2,fun3,_ebp=%08x,%08x,%08x,%08x\n",(int)fun1,(int)fun2,(int)fun3,(int)_ebp);
#endif
printf("ret addr=%08x\n",_ebp[1]);
#ifdef _DEBUG
if ((int)fun1+5+*(int *)((int)fun1+1)<=_ebp[1] && _ebp[1]<(int)fun2+5+*(int *)((int)fun2+1)) printf("fun1 callme\n");
if ((int)fun2+5+*(int *)((int)fun2+1)<=_ebp[1] && _ebp[1]<(int)fun3+5+*(int *)((int)fun3+1)) printf("fun2 callme\n");
#else
if ((int)fun1<=_ebp[1] && _ebp[1]<(int)fun2) printf("fun1 callme\n");
if ((int)fun2<=_ebp[1] && _ebp[1]<(int)fun3) printf("fun2 callme\n");
#endif
}
int main() {
fun2();
fun1();
return 0;
}


我的课从来不怕提前剧透!

...全文
2585 62 打赏 收藏 转发到动态 举报
写回复
用AI写文章
62 条回复
切换为时间正序
请发表友善的回复…
发表回复
feynman233 2016-11-22
  • 打赏
  • 举报
回复
lucky_草木皆兵 2016-09-28
  • 打赏
  • 举报
回复
顶一下 露个脸。。
zzz233 2016-09-24
  • 打赏
  • 举报
回复
散分是怎么个意思
额上帝 2016-09-15
  • 打赏
  • 举报
回复
kingsword09 2016-05-29
  • 打赏
  • 举报
回复
顶一下,正在学习这方面的知识
遗失的圣剑 2016-05-29
  • 打赏
  • 举报
回复
我前几天听了赵老师的课 感觉用工具来分析更能理解程序的内部运行 我是程序小白 完全是爱好 把学习程序当成打麻将一样的娱乐 没指望学得多好 就是别人说话听得懂就行
slmax1 2016-05-29
  • 打赏
  • 举报
回复
平时没时间.只有等上传完了再看.
Dominia 2016-05-27
  • 打赏
  • 举报
回复
老师,还只自学到函数这一章,可否听课?
赵4老师 2016-05-27
  • 打赏
  • 举报
回复
列子汤问 2016-05-27
  • 打赏
  • 举报
回复
Dominia 2016-05-27
  • 打赏
  • 举报
回复
那我就报名了!老师收下我的膝盖。
  • 打赏
  • 举报
回复
赵4老师 2016-05-27
  • 打赏
  • 举报
回复
引用 51 楼 qcx1221 的回复:
老师,还只自学到函数这一章,可否听课?
听了总没坏处,我觉得。
理想三旬 2016-05-24
  • 打赏
  • 举报
回复
顶一顶。。。
ljheee 2016-05-23
  • 打赏
  • 举报
回复
不明觉厉。。。
赵4老师 2016-05-22
  • 打赏
  • 举报
回复
刚看了一遍第一次课的录像。 里面既没萝莉,也没大叔!
赵4老师 2016-05-22
  • 打赏
  • 举报
回复
引用 43 楼 lqbk1 的回复:
蹭点分,赵老师记得及时结贴..........
怎么也得等到课讲完以后再结贴吧。
冷西瓜 2016-05-22
  • 打赏
  • 举报
回复
已经报名第二期了!!!
动力风暴 2016-05-22
  • 打赏
  • 举报
回复
刚看到这个帖子,先把(1)看下,再来看(2)…… 看了视频才知道赵老师的大名……
lqbk1 2016-05-21
  • 打赏
  • 举报
回复
蹭点分,赵老师记得及时结贴..........
加载更多回复(42)

69,374

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧