We need a machine to run this simulator on. That is we have a memory, and we have a set of registers. We limit the amount of memory, but registers are unlimited.
These are zero initialized, and the amount is unlimited. In this way they are treated much like variables in any given programming language. If we ask for a not yet initialized register, this register is initialized with the value 0 which is returned.