Linux でアセンブリプログラミング copyright (C) 2000,2001 Jun Mizutani (mizutani.jun@nifty.ne.jp)
先日書いた、適当にELFなバイナリを吐くプログラムに関して、ある人に「スタックを使うためにはプログラムヘッダに何か書かないといけないのか?と聞かれました」。えーっと、不要です*1。カーネルが勝手に確保してくれます。確保量というか最大サイズは、setrlimit(2)でというか、ulimitコマンドで調整してください。普段と同じです。ELFのエントリポイントに制御が移動した時点で%espが適切な値になってます。 ちゃんとスタックが使えることを示す例として、何かサンプルでもあったほうがよいと思いますので、適当ですがbrainfuckのコンパイラを置いときます。movl $1, (%esp); するだけの例じゃあんまりですので(そのほうがいい?)。bfの","命令と"."命令がx86のcall命令に置き換えられるんで、そこでスタック使います。なお、bfの実用的な(?)、ELFコンパイラはここ(.
しつこく Hello world! を作ります。 http://shinh.skr.jp/ttyplay/gdb_hello.html えーと上記はデモです。内容は、 main;だけのコードで gdb を起動して、対話環境チックに動作内容を確認しつつ main の中身を作って、うまくできたらそれを保存して実行ファイルにする、というような内容です。 デモの説明とかは今度気が向いた時に書きます。あと Hello world! の改行が出てなかったのはそもそも改行を忘れてたからでした… すぐに気が向きました。解説入ります。 一番近いのはあれです。BASIC。 ウソウソと言ってますが後述しているように、割と似てます。同じ行番号のコードを書いたら上書きできるとか、 LIST コマンドぽいのがあるとか。 ここで冒頭の main; だけのファイルを作ります。ここで重要なことは .data セクションに置
WhirlwindTutorialOnCreatingReallyTeensyElfExecutablesForLinux - 目次 Linux で動く極小 ELF 実行ファイルをつくる怒涛のチュートリアル (あるいは "Size Is Everything") コメント 以下の文章の日本語訳です: http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html gcc の info の日本語は以下のページから拝借しました: http://www.asahi-net.or.jp/~wg5k-ickw/html/online/gcc-2.95.2/gcc_2.html#SEC13 Linux で動く極小 ELF 実行ファイルをつくる怒涛のチュートリアル (あるいは "Size Is Everything") She studied
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く