All you're doing is tracking the values of a hypothetical CPU, "registers". They're values, nothing more.
Your input is going to be a list of "instruction" values in "memory", which you have to pull apart and evaluate, and are going to tell you how to manipulate the values in your "registers."
The "memory" you're using is just an array of values. So, when your CPU starts, it gets the first "memory" location, array index 0, and you start deconstructing that value into the various parts you need as spelled out in the assignment.
That's it.
There's no such thing as global variables in any .NET language as the .NET CLR does not support it. So, you have to start with a class to hold the values. Your application is going to start with a class, as with any other app.
public class MarieCPU