亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2490 | 回復: 4
打印 上一主題 下一主題

[其他] 有關(guān)函數(shù)重定位問題請教 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-12-05 14:03 |只看該作者 |倒序瀏覽
在源代碼編譯的過程中,我知道編譯完成后一些函數(shù)調(diào)用(即跳轉(zhuǎn)指令)使用的是相對偏移地址(即要跳轉(zhuǎn)的函數(shù)偏移現(xiàn)執(zhí)行指令的位置),這樣子機器碼中就沒有了所謂的函數(shù)名,變量名也沒有。但是系統(tǒng)調(diào)用和動態(tài)庫調(diào)用,我不知道是編譯成機器碼是什么樣的格式的,這也是我想請教的問題之一。唯一可以確定的是調(diào)用與被調(diào)用之間有個明確的信息讓CPU找到跳轉(zhuǎn)的地址,比如說系統(tǒng)調(diào)用前會在C的堆棧里存?zhèn)系統(tǒng)調(diào)用號,然后CPU進入內(nèi)核模式,接著來C的堆棧里讀系統(tǒng)調(diào)號,然后根據(jù)系統(tǒng)調(diào)用號找到系統(tǒng)調(diào)用的函數(shù)地址開始執(zhí)行(這只是我對系統(tǒng)調(diào)用實現(xiàn)的一種猜測,不知道對不對)。還有動態(tài)庫的調(diào)用,首先動態(tài)庫要被加載進內(nèi)存,這個加載規(guī)則我就沒查到資料,是操作系統(tǒng)加載的還是主調(diào)函數(shù)加載的(個人猜測是第一種),然后加載的位置是如何確實的?據(jù)我猜測應該是動態(tài)庫在一個確定的物理內(nèi)存位置,但是每個不同的進程用了不同的虛擬地址映射到這個物理內(nèi)存地址。即然用了不同的虛擬內(nèi)存地址,那么每一個進程的跳轉(zhuǎn)指令中就可以寫出確定的地址,但是頁表把這個確定的虛擬地址映射到物理內(nèi)存地址。如果果真是這么實現(xiàn)的,我的疑問在于,動態(tài)庫加載的物理內(nèi)存地址是如何確定的。

還有我百度到    將邏輯地址空間重定位到物理地址空間的時機有三種:
  1、程序編譯連接時。
  2、程序裝入內(nèi)存時。
  3、程序執(zhí)行時。
無法理解,請各位大俠幫忙解釋……。感激不盡啊

論壇徽章:
95
程序設計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
2 [報告]
發(fā)表于 2012-12-05 14:20 |只看該作者
陳九CU 發(fā)表于 2012-12-05 14:03
這樣子機器碼中就沒有了所謂的函數(shù)名,變量名也沒有。


對于動態(tài)庫來說,符號表(符號表不是字符串表)總是要有的,而這個符號表給出的就是符號(函數(shù)名,全局變量名,等)和其地址的對應。

論壇徽章:
0
3 [報告]
發(fā)表于 2012-12-05 14:28 |只看該作者
http://www.docin.com/p-204038336.html
剛找到的,稍微比剛才多理解了一點重定位

論壇徽章:
0
4 [報告]
發(fā)表于 2012-12-05 14:30 |只看該作者
那對于調(diào)用動態(tài)庫函數(shù)的那句源代碼會被編譯成什么樣子啊?回復 2# MMMIX


   

論壇徽章:
95
程序設計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
5 [報告]
發(fā)表于 2012-12-06 10:19 |只看該作者
陳九CU 發(fā)表于 2012-12-05 14:30
那對于調(diào)用動態(tài)庫函數(shù)的那句源代碼會被編譯成什么樣子?回復 2# MMMIX


自己寫個小程序用 gcc 編譯一下看看不就清楚了?
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP