public void TestUnsignedValueTooLarge() { string code = "sll $t0,$t0,40"; var result = MipsAsm.Assemble(code, memoryMock.Object); var anyErrors = result.Messages.Any(x => x.IsError); Assert.IsTrue(anyErrors); }
public void TestLabelNotDefined() { string code = "b l"; var result = MipsAsm.Assemble(code, memoryMock.Object); var anyErrors = result.Messages.Any(x => x.IsError); Assert.IsTrue(anyErrors); }
public void TestLabelDefinedMoreThanOnce() { string code = "l: .space 1 l: b l"; var result = MipsAsm.Assemble(code, memoryMock.Object); var anyErrors = result.Messages.Any(x => x.IsError); Assert.IsTrue(anyErrors); }
public void TestBranchOffsetTooLarge() { string code = "l: .space 80000 b l"; var result = MipsAsm.Assemble(code, memoryMock.Object); var anyErrors = result.Messages.Any(x => x.IsError); Assert.IsTrue(anyErrors); }
public void AssembleByteInstructions(string code, byte[] expected) { var result = MipsAsm.Assemble(code, memoryMock.Object); var anyErrors = result.Messages.Any(x => x.IsError); uint i = 0; for (; i < expected.Length; i++) { memoryMock.VerifySet(x => x[i] = expected[i]); } Assert.IsFalse(anyErrors); }
static void Main(string[] args) { Cpu cpu = new(); string code = File.ReadAllText("NaivePrimalityTest.asm"); for (uint i = 0; i < 100; i++) { cpu.Reset(); MipsAsm.Assemble(code, cpu.Memory); cpu.Registers.A0 = i; cpu.CycleUntilTerminate(); } }
public void AssembleWordInstructions(string code, uint[] expected) { var result = MipsAsm.Assemble(code, memoryMock.Object); var anyErrors = result.Messages.Any(x => x.IsError); uint i = 0; for (; i < expected.Length; i++) { memoryMock.Verify(x => x.StoreWord(i * 4u, expected[i])); } memoryMock.Verify(x => x.StoreWord(i * 4u, Cpu.TerminateInstruction)); Assert.IsFalse(anyErrors); }
public void AssembleSingleInstruction(string code, uint?expected) { var result = MipsAsm.Assemble(code, memoryMock.Object); var anyErrors = result.Messages.Any(x => x.IsError); if (expected != null) { memoryMock.Verify(x => x.StoreWord(0u, (uint)expected)); memoryMock.Verify(x => x.StoreWord(4u, Cpu.TerminateInstruction)); Assert.IsFalse(anyErrors); } else { Assert.IsTrue(anyErrors); } }
public static void Assemble() => MipsAsm.Assemble(Code, Memory);
public static void Assemble() => AssemblerResult = MipsAsm.Assemble(Code, Memory);