編譯器如何配置記憶體 - Linux

By Madame
at 2008-08-25T12:36
at 2008-08-25T12:36
Table of Contents
gcc -S filename.c # 先把程式原始碼轉成組合語言
vi filename.s # 找出其中宣告 array 變數的 pseudo op
她的語法應該像以下這行
.comm SYMBOL,LENGTH,ALIGNMENT
把最後一欄 ALIGNMENT 改成你要的數值 ( 必需是 2 的N次方 )
gcc filename.s # 出來就是你要的
這個方法可以使用在 x86 平台, 至於其他的 CPU 我沒有試過.
※ 引述《jeremy007 (linux藍海帝國)》之銘言:
: 大家好,
: 小弟有一個 C 語言的全域變數 char array[4096];
: 現在想由 compiler 將 array 的記憶體位置 "強迫配置" 在 1024-byte 的整數倍
: 也就是當我用 printf("%x\n", (unsigned) array);
: 我可以確認 array 的起始位置要能夠被 1024 所整除.
: 請問應如何下 compiler 的參數呢 ?
: 編譯環境為 gcc version 4.1.2 (Gentoo 4.1.2 p1.0.2)
--
How shall my heart be unsealed unless it is broken?
By Kahlil Gibran
--
vi filename.s # 找出其中宣告 array 變數的 pseudo op
她的語法應該像以下這行
.comm SYMBOL,LENGTH,ALIGNMENT
把最後一欄 ALIGNMENT 改成你要的數值 ( 必需是 2 的N次方 )
gcc filename.s # 出來就是你要的
這個方法可以使用在 x86 平台, 至於其他的 CPU 我沒有試過.
※ 引述《jeremy007 (linux藍海帝國)》之銘言:
: 大家好,
: 小弟有一個 C 語言的全域變數 char array[4096];
: 現在想由 compiler 將 array 的記憶體位置 "強迫配置" 在 1024-byte 的整數倍
: 也就是當我用 printf("%x\n", (unsigned) array);
: 我可以確認 array 的起始位置要能夠被 1024 所整除.
: 請問應如何下 compiler 的參數呢 ?
: 編譯環境為 gcc version 4.1.2 (Gentoo 4.1.2 p1.0.2)
--
How shall my heart be unsealed unless it is broken?
By Kahlil Gibran
--
Tags:
Linux
All Comments
Related Posts
能否固定程式視窗起始的位置?

By Joe
at 2008-08-25T12:13
at 2008-08-25T12:13
在 Debian 中如何收集多個 packages 打包成另一個 package ?

By James
at 2008-08-25T11:42
at 2008-08-25T11:42
Program Fire技術論壇--筆記分享喲~

By Tom
at 2008-08-25T11:31
at 2008-08-25T11:31
求救!安裝xp and suse碰到瓶頸

By Anthony
at 2008-08-25T10:49
at 2008-08-25T10:49
能有Linux英文介面,但能輸入中文嗎?

By Jacob
at 2008-08-25T08:45
at 2008-08-25T08:45