src/cpu/cpu.cc
/*
 * Runs the Memory, Data, and PC action specified by the given operation.
 */
Runs the Memory, Data, and PC action specified by the given operation.
Runs the Memory Data and PC action specified by the given operation .
void Cpu::RunOperation(void) {
  current_operation_ = current_sequence_[inst_pointer_];
  inst_pointer_++;
  RunMemoryOperation(current_operation_);
  RunDataOperation(current_operation_);
  DoubleWord pc_update = GET_DOUBLE_WORD(regs_->pc_lo, regs_->pc_hi)
                       + GET_PC_INC(current_operation_);
  regs_->pc_lo = GET_WORD_LO(pc_update);
  regs_->pc_hi = GET_WORD_HI(pc_update);
  return;
}
void Cpu :: RunOperation ( void ) { current_operation_ = current_sequence_ [ inst_pointer_ ] ; inst_pointer_ ++ ; RunMemoryOperation ( current_operation_ ) ; RunDataOperation ( current_operation_ ) ; DoubleWord pc_update = GET_DOUBLE_WORD ( regs_ -> pc_lo , regs_ -> pc_hi ) + GET_PC_INC ( current_operation_ ) ; regs_ -> pc_lo = GET_WORD_LO ( pc_update ) ; regs_ -> pc_hi = GET_WORD_HI ( pc_update ) ; return ; }
Runs the Memory, Data, and PC action specified by the given operation.
Runs the Memory Data and PC action specified by the given operation .
// Pulls the next operation from the microcode sequence. // Performs the memory operation. // Performs the encoded data operation. // Increments the PC by the given value.