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

时间:2022-05-05 04:02:18
欢迎初步了解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;
}


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

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

62 个解决方案

#1


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

#2


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

#3


引用 1 楼 akirya 的回复:
散分+快来报名“C语言指针与汇编内存地址(二)”公开课

你这个表情缺那么点“喜大普奔”的感觉。 散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#4


哈哈,报名去

#5


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

#6


引用 5 楼 DelphiGuy 的回复:
老赵上课有报酬吗  散分+快来报名“C语言指针与汇编内存地址(二)”公开课

有。为什么没有。
您老也可以申请讲公开课,挣点玫瑰花或奶粉或课外班钱。 散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#7


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

#8


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

#9


前排,前排,上次的视频怎么没发出来啊还,有些地方没听清啊

#10


前排接分,赵老师v5

#11


赵老师又来,又是周二,靠靠靠...

#12


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

#13


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

#14


完全看不懂这是什么

#15


学习一下!!

#16


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

#17


这些年汇编都还给老师了 散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#18


引用 6 楼 zhao4zhong1 的回复:
Quote: 引用 5 楼 DelphiGuy 的回复:

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

有。为什么没有。
您老也可以申请讲公开课,挣点玫瑰花或奶粉或课外班钱。 散分+快来报名“C语言指针与汇编内存地址(二)”公开课


太好了,正好给老婆挣点玫瑰花钱,给老大挣点课外班钱,给老二挣点奶粉钱...  散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#19


感觉指针看书看的很明白  用的时候就迷糊了

#20


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

#21


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

#22


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

#23


点个赞,报个名。哈哈

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

#24


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

#25


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

#26


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

#27


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

#28


赵老师,我又来接分啦

#29


赵老师,我爱你

#30


哈哈哈,,第一次参加公开课~

#31


看例子,你还活在32位的世界里

#32


散分+快来报名“C语言指针与汇编内存地址(二)”公开课求好心人帮忙断帖: http://bbs.csdn.net/topics/391951019

#33


引用 31 楼 lgbxyz 的回复:
看例子,你还活在32位的世界里

调用约定  https://msdn.microsoft.com/zh-cn/magazine/9b372w95.aspx

#34


引用 31 楼 lgbxyz 的回复:
看例子,你还活在32位的世界里

X86汇编包含64位吗?! 散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#35


接分。。。。。

#36


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

#37


第一期看了,是来接赵老师的分的!

#38


引用 37 楼 zhang5476499 的回复:
第一期看了,是来接赵老师的分的!

好不容易找到一个看了的。
能在此帖发表几句你的观后感( 散分+快来报名“C语言指针与汇编内存地址(二)”公开课散分+快来报名“C语言指针与汇编内存地址(二)”公开课都欢迎)帮我拉拉人气吗?

#39


引用 29 楼 xigua1102 的回复:
赵老师,我爱你

今天这个特殊的日子最适合表白了! 散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#40


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

#41


引用 38 楼 zhao4zhong1 的回复:
Quote: 引用 37 楼 zhang5476499 的回复:

第一期看了,是来接赵老师的分的!

好不容易找到一个看了的。
能在此帖发表几句你的观后感( 散分+快来报名“C语言指针与汇编内存地址(二)”公开课散分+快来报名“C语言指针与汇编内存地址(二)”公开课都欢迎)帮我拉拉人气吗?

凡是看过第一期且在此帖发表几句你的观后感( 散分+快来报名“C语言指针与汇编内存地址(二)”公开课散分+快来报名“C语言指针与汇编内存地址(二)”公开课都欢迎)帮我拉人气的好心人,我多多散分给你! 散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#42


   看了赵老师的第一期了,说说我的感言吧!首先,我的第一门编程语言是C语言,所以在csdn接触的第一个技术板块就是C语言板块了。大家都知道,赵老师是C语言板块的风云人物啊!现在我是Java初级程序员了,当然还是实习阶段。
   自己的C语言水平就限制在大学的C语言课程,学了半年的C语言,半年的数据结构(C语言实现),半年的c++,半年的汇编语言,所以自己对硬件编程的只是很有限,听赵老师的课程还是有点难度的,毕竟很久不用汇编了,上次听起来就只有一个概念而已。所以,对那些在校生或者刚入职的嵌入式,或者接近底层的同学可以多多理解,交流。
   赵老师在答疑阶段也是答得不错的。提问者的每个问题都会答道,但是也会造成很多问题解答的不深入。

#43


蹭点分,赵老师记得及时结贴..........

#44


已经报名第二期了!!!

#45


引用 43 楼 lqbk1 的回复:
蹭点分,赵老师记得及时结贴..........

怎么也得等到课讲完以后再结贴吧。 散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#46


刚看了一遍第一次课的录像。
里面既没萝莉,也没大叔!
散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#47


刚看到这个帖子,先把(1)看下,再来看(2)……
看了视频才知道赵老师的大名……

#48


不明觉厉。。。

#49


顶一顶。。。

#1


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

#2


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

#3


引用 1 楼 akirya 的回复:
散分+快来报名“C语言指针与汇编内存地址(二)”公开课

你这个表情缺那么点“喜大普奔”的感觉。 散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#4


哈哈,报名去

#5


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

#6


引用 5 楼 DelphiGuy 的回复:
老赵上课有报酬吗  散分+快来报名“C语言指针与汇编内存地址(二)”公开课

有。为什么没有。
您老也可以申请讲公开课,挣点玫瑰花或奶粉或课外班钱。 散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#7


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

#8


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

#9


前排,前排,上次的视频怎么没发出来啊还,有些地方没听清啊

#10


前排接分,赵老师v5

#11


赵老师又来,又是周二,靠靠靠...

#12


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

#13


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

#14


完全看不懂这是什么

#15


学习一下!!

#16


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

#17


这些年汇编都还给老师了 散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#18


引用 6 楼 zhao4zhong1 的回复:
Quote: 引用 5 楼 DelphiGuy 的回复:

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

有。为什么没有。
您老也可以申请讲公开课,挣点玫瑰花或奶粉或课外班钱。 散分+快来报名“C语言指针与汇编内存地址(二)”公开课


太好了,正好给老婆挣点玫瑰花钱,给老大挣点课外班钱,给老二挣点奶粉钱...  散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#19


感觉指针看书看的很明白  用的时候就迷糊了

#20


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

#21


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

#22


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

#23


点个赞,报个名。哈哈

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

#24


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

#25


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

#26


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

#27


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

#28


赵老师,我又来接分啦

#29


赵老师,我爱你

#30


哈哈哈,,第一次参加公开课~

#31


看例子,你还活在32位的世界里

#32


散分+快来报名“C语言指针与汇编内存地址(二)”公开课求好心人帮忙断帖: http://bbs.csdn.net/topics/391951019

#33


引用 31 楼 lgbxyz 的回复:
看例子,你还活在32位的世界里

调用约定  https://msdn.microsoft.com/zh-cn/magazine/9b372w95.aspx

#34


引用 31 楼 lgbxyz 的回复:
看例子,你还活在32位的世界里

X86汇编包含64位吗?! 散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#35


接分。。。。。

#36


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

#37


第一期看了,是来接赵老师的分的!

#38


引用 37 楼 zhang5476499 的回复:
第一期看了,是来接赵老师的分的!

好不容易找到一个看了的。
能在此帖发表几句你的观后感( 散分+快来报名“C语言指针与汇编内存地址(二)”公开课散分+快来报名“C语言指针与汇编内存地址(二)”公开课都欢迎)帮我拉拉人气吗?

#39


引用 29 楼 xigua1102 的回复:
赵老师,我爱你

今天这个特殊的日子最适合表白了! 散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#40


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

#41


引用 38 楼 zhao4zhong1 的回复:
Quote: 引用 37 楼 zhang5476499 的回复:

第一期看了,是来接赵老师的分的!

好不容易找到一个看了的。
能在此帖发表几句你的观后感( 散分+快来报名“C语言指针与汇编内存地址(二)”公开课散分+快来报名“C语言指针与汇编内存地址(二)”公开课都欢迎)帮我拉拉人气吗?

凡是看过第一期且在此帖发表几句你的观后感( 散分+快来报名“C语言指针与汇编内存地址(二)”公开课散分+快来报名“C语言指针与汇编内存地址(二)”公开课都欢迎)帮我拉人气的好心人,我多多散分给你! 散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#42


   看了赵老师的第一期了,说说我的感言吧!首先,我的第一门编程语言是C语言,所以在csdn接触的第一个技术板块就是C语言板块了。大家都知道,赵老师是C语言板块的风云人物啊!现在我是Java初级程序员了,当然还是实习阶段。
   自己的C语言水平就限制在大学的C语言课程,学了半年的C语言,半年的数据结构(C语言实现),半年的c++,半年的汇编语言,所以自己对硬件编程的只是很有限,听赵老师的课程还是有点难度的,毕竟很久不用汇编了,上次听起来就只有一个概念而已。所以,对那些在校生或者刚入职的嵌入式,或者接近底层的同学可以多多理解,交流。
   赵老师在答疑阶段也是答得不错的。提问者的每个问题都会答道,但是也会造成很多问题解答的不深入。

#43


蹭点分,赵老师记得及时结贴..........

#44


已经报名第二期了!!!

#45


引用 43 楼 lqbk1 的回复:
蹭点分,赵老师记得及时结贴..........

怎么也得等到课讲完以后再结贴吧。 散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#46


刚看了一遍第一次课的录像。
里面既没萝莉,也没大叔!
散分+快来报名“C语言指针与汇编内存地址(二)”公开课

#47


刚看到这个帖子,先把(1)看下,再来看(2)……
看了视频才知道赵老师的大名……

#48


不明觉厉。。。

#49


顶一顶。。。

#50