我眼中的数据对齐

                                                     我眼中的数据对齐

                                                                                                                        作者:溟初

       声明:这篇文章是用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
还有其他一些相关的网络资源,在此一一谢过。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值