我眼中的數據對齊

                                                     我眼中的數據對齊

                                                                                                                        作者:溟初

       聲明:這篇文章是用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:[email protected],如果它能給你帶來幫助,我將很欣慰!,至少沒有白忙活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
還有其他一些相關的網絡資源,在此一一謝過。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章