public void Run(Steps_Table_Model steps, Stack_Table_Model stack, Machine reg) { Mem_Step s = steps.Get_Current_Step(); try { float r = (float) reg.Index_To_Memory(s.Get_Register1()).Get_Status(); stack.Push(r); } catch (Exception_Stack_Overflow e) { if (reg.Index_To_Memory(Constants.PERROR).Get_Value() == 0.0F) reg.Index_To_Memory(Constants.PERROR).Set_Value(5); // error code throw e; } finally { steps.Increment_Step(); } }
public boolean Check(Mem_Step s, Machine mem) { return (s.RIxx_1() || s.BIxx_1() || s.IIxx_1() || s.LIxx_1() || s.ROxx_1() || s.BOxx_1() || s.IOxx_1() || s.LOxx_1()) && s.Empty_2(); }
public void Update_Register_Use(Mem_Step s, Registers_Table_Model reg) { reg.Use_Register(Constants.PERROR); if (s.Register_1()) reg.Use_Register(s.Get_Register1()); if (s.Register_2()) reg.Use_Register(s.Get_Register2()); }
public boolean Check(Mem_Step s, Machine mem) { return s.Empty_1() && s.Empty_2(); }