タグ

GASに関する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のようなもの
  • gccのみでOS自作入門 - ブレ男のブログ

    2014年2月11日火曜日 gccのみでOS自作入門 時刻: 9:48 OSを作りたくて「OS自作入門」を以前試してたんだけど、WindowsじゃなくてMacでやろうとしたところ、3章のC言語を導入するところで躓いてしまい、放置していた。 これはMacで使われているgccでコンパイルしたオブジェクトファイルからバイナリを取り出す方法がわからなかったのが原因だった。 それならと、Linux系OS上のgccならばリンカスクリプトも受け付けて直のバイナリを取り出すことができるのでやってみた。アセンブラもgccのもの(gas)を使うようにした。 VirtualBoxでLinux系OSを動かす 普段Macを使っていて手元にLinux系のマシンを持ってないんだけど、OS開発にエミュレータを使うこともあり、ついでにとエミュレータ上でLinux系OSを走らせて、その上で自作OSの開発を行うことにし

  • 1