示例#1
0
void assemble_init(struct _asm_context *asm_context)
{
  tokens_reset(asm_context);
#ifndef NO_MSP430
  asm_context->parse_instruction = parse_instruction_msp430;
  asm_context->list_output = list_output_msp430;
  asm_context->cpu_list_index = -1;
#else
  configure_cpu(asm_context, 0);
#endif
  asm_context->address = 0;
  asm_context->instruction_count = 0;
  asm_context->code_count = 0;
  asm_context->data_count = 0;
  asm_context->ifdef_count = 0;
  asm_context->parsing_ifdef = 0;
  asm_context->bytes_per_address = 1;

  macros_free(&asm_context->macros);
  asm_context->def_param_stack_count = 0;
  if (asm_context->pass == 1)
  {
    // FIXME - probably need to allow 32 bit data
    //memory_init(&asm_context->memory, 1<<25, 1);
    memory_init(&asm_context->memory, ~((uint32_t)0), 1);
  }
}
示例#2
0
void assemble_init(struct _asm_context *asm_context)
{
  fseek(asm_context->in, 0, SEEK_SET);
  asm_context->parse_instruction = parse_instruction_msp430;
  asm_context->list_output = list_output_msp430;
  asm_context->address = 0;
  asm_context->line = 1;
  asm_context->instruction_count = 0;
  asm_context->code_count = 0;
  asm_context->data_count = 0;
  asm_context->ifdef_count = 0;
  asm_context->parsing_ifdef = 0;
  asm_context->pushback[0] = 0;
  asm_context->unget[0] = 0;
  asm_context->unget_ptr = 0;
  asm_context->unget_stack_ptr = 0;
  asm_context->unget_stack[0] = 0;
  asm_context->bytes_per_address = 1;
  asm_context->cpu_list_index = -1;

  macros_free(&asm_context->macros);
  asm_context->def_param_stack_count = 0;
  if (asm_context->pass == 1)
  {
    // FIXME - probably need to allow 32 bit data
    memory_init(&asm_context->memory, 1<<25, 1);
  }
}
示例#3
0
void assemble_free(struct _asm_context *asm_context)
{
  symbols_free(&asm_context->symbols);
  macros_free(&asm_context->macros);
  memory_free(&asm_context->memory);
}