public static RegisterFile Pop(RegisterFile registerFile, byte d, AvrSim.Stack stack) { registerFile = stack.Pop(registerFile, out var value); return(registerFile.WithRegister(d, value)); }
public static RegisterFile Ret(RegisterFile registerFile, AvrSim.Stack stack) { registerFile = stack.PopWide(registerFile, out var programCounter); return(registerFile.WithProgramCounter(programCounter)); }
public static RegisterFile Push(RegisterFile registerFile, byte d, AvrSim.Stack stack) { return(stack.Push(registerFile, registerFile[d])); }
public static RegisterFile Rcall(RegisterFile registerFile, ushort k, AvrSim.Stack stack) { return(stack.PushWide(registerFile, (ushort)registerFile.ProgramCounter).WithProgramCounter(p => p + k)); }