マジックナンバーとかよくわかっていない。とりあえず、http://www.osdev.org/wiki/Bare_bones の通りにやったらいけた。 なんというかまぁ、適当。注意は -fleading-underscore くらいのものか。 .global _loader .set ALIGN, 1<<0 .set MEMINFO, 1<<1 .set FLAGS, ALIGN | MEMINFO .set MAGIC, 0x1BADB002 .set CHECKSUM, -(MAGIC + FLAGS) .align 4 .long MAGIC .long FLAGS .long CHECKSUM .set STACKSIZE, 0x40000 .comm stack, STACKSIZE, 32 _loader: mov $(stack + STACKSIZE), %esp push