您的位置:首页 > 理论基础 > 计算机网络

我眼中的数据对齐

2005-06-16 16:57 211 查看
                                                     我眼中的数据对齐
                                                                                                                        作者:溟初
       声明:这篇文章是用word写成的,里面含有一些表格、流程图什么的,不易贴出,在此仅列一下目录,感兴趣者可以下载察看!请到这里下载:http://bbs.pediy.com/showthread.php?s=&postid=95452#post95452
    在看雪论坛关于memcpy的帖子 (<memcpy应该怎样写,同时庆祝新版开张>http://bbs.pediy.com/showthread.php?threadid=14128) 中谈及了数据对齐的话题,重新唤起了我对它的思考(以前一直都似懂非懂,逐渐淡忘了^_^),纯属个人见解,请批评指正!
一、什么是数据对齐?请看官方的解释:
二、数据对齐随处理器和编译器的不同而不同,处理好数据对齐可以提高程序的时空效率(节省空间,提高效率),特别是在汇编程序中。
1、在处理器方面:
2、在编译器方面(以微软的ml、link为例):
(1)、全局变量:
(2)、函数参数和局部变量:
(3)、结构体字段对齐(在移植程序时需要特别考虑,写网络程序好像也很重要):
(4)、指令对齐:
(5)、段的对齐类型:
(6)、PE文件中的SectionAlignment、FileAlignment:
三、尝试分析/VC98/CRT/SRC/PLATFORM /memcpy.asm(VC6.0安装盘上,vc7.0在安装盘crt/src/intel/下,你也可以从网上找到)
1、覆盖的情况:dst>src && dst < src + len时,如下图:
2、memcpy.asm代码分析。
四、结束语:
这篇心得终于完成了,感觉自己的表达能力还是很有限,请批评指正,我的e_mail:hejiwen2001@sohu.com,如果它能给你带来帮助,我将很欣慰!,至少没有白忙活J
Reference:
1、《The art of assemle language》    来自 http://asm.yeah.net/
2、《windows核心编程》                来自 http://www.infoxa.com/
3、《INTEL 80386 PROGRAMMER'S REFERENCE MANUAL 1986 》    来自 http://purec.binghua.com/
4、http://blog.dreambrook.com/soloist/archive/2004/12/12/388.aspx
5、http://wncj.vicp.net/course/hep/huibianyuyan/04-3.htm
6、http://msdn.microsoft.com/library
还有其他一些相关的网络资源,在此一一谢过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息