対象者

この記事は下記のような人を対象にしています。

  • 黒い文字だけの画面に文字を出したい人
  • (アセンブリ)プログラミング初心者()の人

結論

writeシステムコールで黒い画面に文字を出せます。 文章の最後に改行したくない場合はmov $14, %%rdx\n\tの数字を減らしましょう!

詳細

今回出てくる「asm」というのをざっくり説明すると、 コンピュータにできることなら何でも、もちろん黒い画面への出力も、 命令することができる構文です。 (※黒い画面というのは、コマンドプロンプトなどのことを指します。)

Clang?Windows?ARM?よくわかりません

ソースコード

Program.c

int main(void) {
    asm("mov $1, %%rax\n\t"
        "mov $1, %%rdi\n\t"
        "mov %0, %%rsi\n\t"
        "mov $14, %%rdx\n\t"
        "syscall\n\t"
        :
        : "r"("Hello, world!\n")
        : "rax","rdi","rsi","rdx"
        );
    return 0;
}

実行結果

Hello, world!

おわりに

今回は、コンソール画面に文字を出す方法についてまとめました。 よく使う()構文なので、覚えておきましょう。