oggplay 发表于 2014-7-2 09:50:28

本帖最后由 oggplay 于 2014-7-2 10:15 编辑

又回过头仔细看了一下。2张图表示32位系统函数调用的栈过程,其它细节隐去:

过程示例:




=====================================64位=============================
64位简介:



与32位不同:






64位浮点数运算依靠SSE2,不再依靠压栈(当然是浮点寄存器的栈)进行。

繁空.星雨 发表于 2014-7-24 11:35:35

楼主   坚持的精神感染了我也要坚持了继续学习。   

Angel丶L 发表于 2014-7-25 00:04:56

支持了 楼主

oggplay 发表于 2014-7-29 15:18:58

第4章、第5章目前来说对自己意义不大,先略过不看。
第6章存储器结构磕磕绊绊总算看完了,一道练习题结束第6章。




[\b]

mumudontcry 发表于 2014-7-29 22:15:26

感谢楼主分享~~

oggplay 发表于 2014-8-5 15:42:29

本帖最后由 oggplay 于 2014-8-6 10:14 编辑

好吧,第七章开始了,第七章 链接


静态链接的作用:符号解析和重定位
符号解析:将每个符号的引用和符号定义联系起来。
重定位:把每个符号和内存存储位置联系起来,然后修改所有对这些符号的引用,使得他们指向相应的存储位置。
==========================================================================================
例题:http://bbs.fishc.com/thread-50516-1-1.html

unix对多重定义的链接规则:
规则1:不允许有多个强符号。
规则2:如果有一个强符号和多个弱符号,那么选择强符号。
规则3:如果有多个弱符号,那么从这些弱符号中任意选择一个。

强符号:函数和已初始化全局的变量;弱符号:未初始化全局变量。

规则2、3会造成一些不易察觉的运行错误,有些链接器是不会主动发出定义多个符号的警告的。再看例子,IA32机器,double 8个字节,int4个字节,所以2.c中的-0.0会覆盖1.c中x、y的位置。结果是:x=0x0 y=0x80000000。

页: 1 2 [3]
查看完整版本: 每日一练!从零开始学习。。。。。。