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();
 }