public void MemoryClear() { Instructions.Movi(_cpu, Register.A, 10); Instructions.Alloc(_cpu, Register.A, Register.B); Instructions.Movi(_cpu, Register.A, 0x12345678); Instructions.Pushr(_cpu, Register.B); Instructions.Movrm(_cpu, Register.B, Register.A); Instructions.Addi(_cpu, Register.B, 4); Instructions.Movrm(_cpu, Register.B, Register.A); Instructions.Addi(_cpu, Register.B, 4); Instructions.Movrm(_cpu, Register.B, Register.A); Instructions.Popr(_cpu, Register.B); var value = BitConverter.ToUInt64(_ram, _heapOffset); Assert.That(value, Is.EqualTo(0x1234567812345678)); Instructions.Pushr(_cpu, Register.B); Instructions.Addi(_cpu, Register.B, 1); Instructions.Movi(_cpu, Register.A, 4); Instructions.MemoryClear(_cpu, Register.B, Register.A); Instructions.Popr(_cpu, Register.B); value = BitConverter.ToUInt64(_ram, _heapOffset); Console.WriteLine(value.ToString("x8")); Assert.That(value, Is.EqualTo(0x1234560000000078)); Instructions.FreeMemory(_cpu, Register.B); }