タグ

*programmingと*nixに関するmutumin99のブックマーク (4)

  • Assembly Programming Linux - Linux でアセンブリプログラミング

    Linux でアセンブリプログラミング copyright (C) 2000,2001 Jun Mizutani (mizutani.jun@nifty.ne.jp)

    mutumin99
    mutumin99 2007/07/15
    Hello, World!ならなんとかハンドアセンブルできるようになったかも。ハンドリンク(とはいわないか)はどうやるんだろう?
  • BF2ELF - memologue

    先日書いた、適当にELFなバイナリを吐くプログラムに関して、ある人に「スタックを使うためにはプログラムヘッダに何か書かないといけないのか?と聞かれました」。えーっと、不要です*1。カーネルが勝手に確保してくれます。確保量というか最大サイズは、setrlimit(2)でというか、ulimitコマンドで調整してください。普段と同じです。ELFのエントリポイントに制御が移動した時点で%espが適切な値になってます。 ちゃんとスタックが使えることを示す例として、何かサンプルでもあったほうがよいと思いますので、適当ですがbrainfuckのコンパイラを置いときます。movl $1, (%esp); するだけの例じゃあんまりですので(そのほうがいい?)。bfの","命令と"."命令がx86のcall命令に置き換えられるんで、そこでスタック使います。なお、bfの実用的な(?)、ELFコンパイラはここ(.

    BF2ELF - memologue
    mutumin99
    mutumin99 2007/07/13
    brainfuckのコンパイラ。
  • GDB で Hello world! を書こう。 - 兼雑記

    しつこく Hello world! を作ります。 http://shinh.skr.jp/ttyplay/gdb_hello.html えーと上記はデモです。内容は、 main;だけのコードで gdb を起動して、対話環境チックに動作内容を確認しつつ main の中身を作って、うまくできたらそれを保存して実行ファイルにする、というような内容です。 デモの説明とかは今度気が向いた時に書きます。あと Hello world! の改行が出てなかったのはそもそも改行を忘れてたからでした… すぐに気が向きました。解説入ります。 一番近いのはあれです。BASIC。 ウソウソと言ってますが後述しているように、割と似てます。同じ行番号のコードを書いたら上書きできるとか、 LIST コマンドぽいのがあるとか。 ここで冒頭の main; だけのファイルを作ります。ここで重要なことは .data セクションに置

    GDB で Hello world! を書こう。 - 兼雑記
    mutumin99
    mutumin99 2007/07/13
    「GDB で Hello world! を書こう。」
  • WhirlwindTutorialOnCreatingReallyTeensyElfExecutablesForLinux -

    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

    mutumin99
    mutumin99 2007/07/13
    「 Linux で動く極小 ELF 実行ファイルをつくる怒涛のチュートリアル (あるいは "Size Is Everything")」
  • 1