NASM
源代码分析
—
入口函数
main()(1)
之前我们简单讨论了与预处理有关的几个数据结构,下面我们根据NASM的入口开始讲解NASM的预处理机制。
入口函数nasm.c/main():
int
main(int argc, char **argv)
{
want_usage = terminate_after_phase = FALSE;
nasm_set_malloc_error (report_error);
(1)
offsets = raa_init();
(2) //
初始化
RAA
结构
forwrefs = saa_init ((long)sizeof(struct forwrefinfo));
(3) //
初始化
SAA
结构
preproc = &nasmpp;
(4)
operating_mode = op_normal;
(5)
error_file = stderr;
(6)
seg_init();
(7)
register_output_formats();
(8)
(1):
设置申请内存空间