gcc インラインアセンブリについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
カレポテ

gcc インラインアセンブリについて

#1

投稿記事 by カレポテ » 15年前

#include <stdio.h>

int foo_global;

int main() {
asm ("movl foo_global,%eax");
return 0;
}
 
上記を、gcc -o test test.c
でコンパイルすると下記のエラーになってしまいます。
gcc でグローバル変数をインラインアセンブラで直接
つかうことは出来るのでしょうか?

undefined reference to 'foo_global'

OS:winXP

たかぎ

Re:gcc インラインアセンブリについて

#2

投稿記事 by たかぎ » 15年前

インラインアセンブラに引数を与えるのではなく、直接文字列として埋め込む場合の話でしょうか?
同じGCCでも、ターゲットやバージョンによって微妙に異なるのですが、アセンブリ言語にした場合には先頭に _ が付く場合があります。
あらかじめ、コンパイル結果を調べた上で記述する方が手っ取り早いと思います。

カレポテ

Re:gcc インラインアセンブリについて

#3

投稿記事 by カレポテ » 15年前

foo_global を変数として使いたいのですが
そのようなことができるのでしょうか?

C言語内の変数をインラインアセンブラで直接
扱うことができるのか?できるのであれば
その方法を教えていただければ幸いです。

以上です。よろしくお願いします。

たかぎ

Re:gcc インラインアセンブリについて

#4

投稿記事 by たかぎ » 15年前

正確なターゲット(MinGWなのか、Cygwinなのか、あるいはクロスコンパイラなのか)やGCCのバージョンがわかりませんので正確な回答もできません。
ただ、下記のURLが参考になるのではないでしょうか?
http://www.sra.co.jp/wingnut/gcc/gcc-j. ... nded%20Asm

カレポテ

Re:gcc インラインアセンブリについて

#5

投稿記事 by カレポテ » 15年前

ちなみに、バージョンはMinGW-5.1.6です。

もぐりん

Re:gcc インラインアセンブリについて

#6

投稿記事 by もぐりん » 15年前

同じ内容の質問が、以下の掲示板で出ています。
たぶん、マルチポストでしょうか?

http://www3.realint.com/cgi-bin/tarticl ... intc2+9815

閉鎖

“C言語何でも質問掲示板” へ戻る