我一直在用匯編語言撰寫 Forth,現在想為用戶提供加載模塊的選項,而不是將整個事情作為一個單一的代碼塊。
似乎有幾種選擇,但我正在考慮將模塊作為共享庫,因此它們需要初始化代碼來將它們的 Forth 單詞插入字典。
我正在使用 GNU 工具 - 但如何__attributes((constructor))在匯編中撰寫函式?據我了解,這個構造(即__attributes((constructor)))不是函式的名稱,而是賦予函式在初始化時被呼叫的屬性的東西(例如https://gcc.gnu.org/onlinedocs/gcc-4.7.0/ gcc/Function-Attributes.html)。
但是我找不到任何資源來說明函式本身被稱為什么/它是如何命名的,更不用說如何在匯編中使用這個構造:它可以完成嗎?
uj5u.com熱心網友回復:
您需要創建一個SHT_INIT_ARRAY包含要運行的函式指標陣列的部分。(我假設這是針對當前的 ELF 目標。)這在 ELF 規范中有所描述:
- 初始化和終止函式
作為起點,您可以檢查gcc -S輸出。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/468268.html
下一篇:關于NASM串列檔案中的括號
