《深入理解计算机系统》第三章,帮我解惑一下

yaopengpeng 2013-09-26 03:32:29
3.3.2代码示例

使用gcc -O1 -S code.c
产生code.s文件
sum:
pushl %ebp
movel %esp,%ebp
move1 12(%ebp),%eax
addl 8(%ebp),%eax
addl %eax,accum
popl %ebp
ret
可是为什么我得到的结果是:

关键问题是连入栈出栈都没有?
...全文
365 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2013-09-28
  • 打赏
  • 举报
回复
这是FPO 优化,全称是 Frame-Pointer Omission 中文名称,不记得了.
yaopengpeng 2013-09-28
  • 打赏
  • 举报
回复
引用 13 楼 yulinlang 的回复:
不是太旧,是太新。看看上面GCC 4.4.5的变现
确实我不开编译器优化,也就是不加-O1得到的结果就差不多。
yulinlang 2013-09-28
  • 打赏
  • 举报
回复
不是太旧,是太新。看看上面GCC 4.4.5的变现
yulinlang 2013-09-27
  • 打赏
  • 举报
回复
编译器优化,看看这个: .file "code.c" .text .globl sum .type sum, @function sum: pushl %ebp movl %esp, %ebp movl 12(%ebp), %eax addl 8(%ebp), %eax addl %eax, accum popl %ebp ret .size sum, .-sum .globl accum .data .align 4 .type accum, @object .size accum, 4 accum: .long 4 .ident "GCC: (Debian 4.4.5-8) 4.4.5" .section .note.GNU-stack,"",@progbits
yaopengpeng 2013-09-27
  • 打赏
  • 举报
回复
引用 11 楼 mxgsgtc 的回复:
引用
引用 1 楼 ForestDB 的回复: call convention不一样? 事实上我最大的问题是不知道参数存放在esp的偏移中还是ebp的偏移中。
在老版本中的编译器,参数是存放在esp偏移中,现在的都是在ebp中,因为esp是随时可能改变的,所以现在都是通过ebp来寻找变量
我用的gcc 4.7.3难道很旧?
loe 2013-09-27
  • 打赏
  • 举报
回复
引用
引用 1 楼 ForestDB 的回复: call convention不一样? 事实上我最大的问题是不知道参数存放在esp的偏移中还是ebp的偏移中。
在老版本中的编译器,参数是存放在esp偏移中,现在的都是在ebp中,因为esp是随时可能改变的,所以现在都是通过ebp来寻找变量
loe 2013-09-27
  • 打赏
  • 举报
回复
很明显,你用的编译器版本太老了,换个就好了,你用的那个反汇编出来其实都是一样的
lm_whales 2013-09-26
  • 打赏
  • 举报
回复
这是代码优化。
AnYidan 2013-09-26
  • 打赏
  • 举报
回复
引用 6 楼 yaopengpeng 的回复:
[quote=引用 1 楼 ForestDB 的回复:] call convention不一样?
事实上我最大的问题是不知道参数存放在esp的偏移中还是ebp的偏移中。[/quote] The stack pointer can move while the procedure is executing, and hence most information is accessed relative to the frame pointer.
yaopengpeng 2013-09-26
  • 打赏
  • 举报
回复
引用 1 楼 ForestDB 的回复:
call convention不一样?
事实上我最大的问题是不知道参数存放在esp的偏移中还是ebp的偏移中。
yaopengpeng 2013-09-26
  • 打赏
  • 举报
回复
引用 4 楼 hu7324829 的回复:
你用的编译器?
GCC
hu7324829 2013-09-26
  • 打赏
  • 举报
回复
你用的编译器?
赵4老师 2013-09-26
  • 打赏
  • 举报
回复
“变量赋值”和“变量初始化”不是一回事! “变量赋值”发生在运行期,其写法遵循赋值语法规定。 “变量初始化”发生在编译期或运行期,其写法遵循初始化列表语法规定。 变量初始化只发生一次。
yaopengpeng 2013-09-26
  • 打赏
  • 举报
回复
引用 1 楼 ForestDB 的回复:
call convention不一样?
什么意思?
ForestDB 2013-09-26
  • 打赏
  • 举报
回复
call convention不一样?
教师信息技术培训资料 2015-2016学年度 第二学期 东风小学 2016年3月1日 教师信息技术培训目录 培训计划 二、培训教案 三、活动记录 四、培训总结 学校教师信息技术培训计划 2015-2016学年度 第二学期 一、指导思想 为加快我校教育信息化进程,提高全校教师信息技术运用能力,经研究决定,对全 校教师进展信息技术提高培训。 二、目的要求 1、、能使用电子信箱、进入百度云平台。 2、微课制作和智慧课课堂平台使用。 3、完善自己账号国家教育的资源库。 三、培训教师和地点: 蔡静玲 计算机多媒体教室 培训 从2016年3月1日开始每月一次,时间为周三下午。3月份班任学习月份科任学习 。 五、参加对象: 全员教师培训 六、培训容: 主要包括以下二个方面的容: 1、微课宝使用 2、智慧课堂平台使用 七、培训方式: 1、示讲授与动手操练相结合。 2、集中培训与分散练习相结合。 3、自主探索与协作研讨相结合。 八、培训要求与考核方法 1、严格考勤制度。参训教师按时参加培训,不得无故缺席。 2、辅导教师认真备课,耐心辅导。 3、每一位教师结合自己的教学实际设计制作一节微课和平台习题容。 4、完善自己账号国家教育的资源库。 微课培训教案 培训教师:蔡静玲 微课视频制作培训方案 1 什么是微课? "微课〞是指为使学习者自主学习获得最正确效果,经过精心的信息化教学设计,以视频 形式展示的围绕某个知识点或教学环节开展的简短、完整的教学活动。精美的视频配上 悦耳的音乐,达到学习知识的目的,并引发学生更深入的思考。它的形式是自主学习, 通过容的可视化与精美的制作,目的是最正确效果,容是某个知识点或教学环节,时间 是简短的,本质是完整的教学活动。因此,对于教师而言,最关键的是要从学生的角度 去制作微课,而不是在教师的角度去制作,要表达以学生为本的教学思想。   2 微课的主要特点   微课只讲授一两个知识点,没有复杂的课程体系,也没有众多的教学目标与教学对 象,看似没有系统性和全面性,许多人称之为"碎片化〞。但是微课是针对特定的目标人 群、传递特定的知识容的,一个微课自身仍然需要系统性,一组微课所表达的知识仍然 需要全面性。   3 微课的特征有:   〔1〕主持人讲授性。主持人可以出镜,可以话外音。   〔2〕流媒体播放性。可以视频、动画等基于网络流媒体播放。   〔3〕教学时间较短。5-10分钟为宜,最少的1-2分钟,最长不宜超过20分钟。   〔4〕教学容较少。突出某个学科知识点或技能点。   〔5〕资源容量较小。适于基于移动设备的移动学习。   〔6〕精致教学设计。完全的、精心的信息化教学设计。   〔7〕经典示案例。真实的、具体的、典型案例化的教与学情景。   〔8〕自主学习为主。供学习者自主学习的课程,是一对一的学习。   〔9〕制作简便实用。多种途径和设备制作,以实用为宗旨。   〔10〕配套相关材料。微课需要配套相关的练习、资源与评价方法。   4 微课的表现形式   微课可以是一种策略课程,但是小策略,解决教学大问题;或是一种反思课程,通 过小的细节,引发对问题的深度思考;或是一个故事课程,小故事中启迪教育实践;或 是电影课程,从视听盛宴中了解世界;或是经典阅读,从经典故事中启迪大智慧;或是 学科课程,让课堂增加视听元素;或是学生课程,让学生参与经典享受;或是家长课程 ,让家长吸纳高端教育。   5 微课的分类   〔1〕按照课堂教学方法来分。微课划分为11类,分别为讲授类、问答类、启发类、 讨论类、演示类、练习类、实验类、表演类、自主学习类、合作学习类、探究学习类。   〔2〕按课堂教学主要环节分类。微课类型可分为课前复习类、新课导入类、知识理 解类、练习巩固类、小结拓展类。其它与教育教学相关的微课类型有:说课类、班会课 类、实践课类、活动类等。   6 微课制作标准   〔1〕微课功能理解透彻:解惑而非授业。   〔2〕时间不超过十分钟。   〔3〕受众定位明确:是针对什么年龄段。   〔4〕情景定位明确:一对一的教学而非一对多。   〔5〕知识准确无误。   〔6〕知识点〔考点〕、题目〔真题、模拟题〕讲解不照本宣科。   〔7〕语言通俗易懂。   〔8〕PPT有视觉美感。   〔9〕视频画质清晰。   〔10〕外部环境安静无噪音。   〔11〕形象良好。   〔12〕声音响亮,节奏感强。   7 提高微课视觉效果的途径   〔1〕动静结合:充分利用PTT的动作效果,可以给人动态感、空间感的美。   〔2〕图文并茂:图版率在50%- 90%;表现亲和力插图要比照片好,表现专业性照片要比插图好。   〔3〕图片适宜:表现力最强的图片:脸部图片,适合表现主题,不适合做背景。表 现力最弱的图片:云海,适合做背景,不适合做主题

69,382

社区成员

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

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