情弱ログ

参考にならないので当てにしないでください

Hello, World!するアセンブリ

x86_64向けに動作するHello, World!を書いた.長いので続きからにする.

gist.github.com

実際に実行してみると

$ as dump.s -o dump.elf
$ ld -o dump --oformat binary dump.elf
$ ./dump
Hello, World!

となり,正常にHello, Worldできる.ただしx86_64なLinux限定.

アセンブラ(今回はGAS)は.byteディレクティブやdbディレクティブを使えばバイナリを直接吐き出せるので,画像だろうが音声だろうがアセンブラで生成することが出来る(って30日OS本に書いてあった(はず)).

ちなみに今回元にしたバイナリはなるべく小さいサイズでHello, World!をしたかったので,直にsyscallでシステムコールを叩いている.strip後のサイズは512byteだった.
使ったコードは以下にまとめてある.これで画像でもelfファイルにできるね(はぁと)って思ったけど,最初からobjcopyで良かったのでは…?

github.com