ブートストラッピングでコンパイラを作ろう
■ このスレッドは過去ログ倉庫に格納されています
00291
2010/01/14(木) 02:26:34export main;
STDOUT_FD : 1;
SYS_EXIT : 1;
SYS_WRITE : 4;
main: () {
syscall(SYS_WRITE, STDOUT_FD, "Hello World\n", 12);
syscall(SYS_EXIT, 0);
};
現状だと文字列リテラルはtextエリアのど真ん中に確保して、
jmpで飛び越すというコードにコンパイルされます(笑)
後で直します。
movl STDOUT_FD,%eax
pushl %eax
jmp _lbl0
.section .rodata
_lbl1: .string "Hello World\n"
.text
_lbl0:
movl $_lbl1,%eax
pushl %eax
■ このスレッドは過去ログ倉庫に格納されています