タグ

Cとinlineに関するyukimori_726のブックマーク (3)

  • __asm__ を試してみた - memologue

    g++でインラインアセンブラを使ってみることにした。g++ -S でアセンブリリストを見ることは多々あったが、思えば__asm__を自分で書いたことはなかったのでした。引数の "=r(ほげほげ..)" の意味など把握しなければならないことがたくさん。 書いてみた とりあえず書いてみました。以下自分用の備忘録です。 dWの記事や"GCCでインラインアセンブリを使用する方法と留意点等 for x86"などを参考にさせていただいた。あとGCCのマニュアル中の、"C の式をオペランドとするアセンブラ命令"(原文)も。 最初は出力パラメータの"=r"と"=m"の違いがよくわからなかったんだけど、gcc -S をしてみて納得。 int foo; __asm__("movl $1, %0;" : "=r"(foo)); の場合は、 #APP movl $1, %eax; #NO_APP movl %ea

    __asm__ を試してみた - memologue
  • GCCのインラインアセンブラの書き方 for x86 - OSのようなもの

    試行錯誤してインラインアセンブラのチュートリアルが完成した。 やったぞ,なんだか分からないけど俺はやったんだ! GAS構文の概要 まず,GAS のシンタックスについて見ていく。GAS は標準で AT&T 記法を使用しているが,.intel_syntax ディレクティブにより intel 記法を使うこともできる。忌々しい AT&T 記法とはおさらばだ! intel 記法を使うには,アセンブラファイルの先頭に次の行を置く。 .intel_syntax noprefix また,C ファイルから作成される GAS を intel 記法で出力させる(又は,インラインアセンブラで intel 記法を使う場合)には GCC にこんなオプションを加えてやる: gcc -masm=intel ... intel 記法が手に入りテンションが上がってきたところで,さっそく構文の説明を始めることにしよう。一応注意

    GCCのインラインアセンブラの書き方 for x86 - OSのようなもの
  • Programming Language [No.002] : Inline function in C - Qiita

  • 1