private void CheckRegister(EntryPoint entryPoint, Boolean success, String message) { try { m_entryPointTable.Register(entryPoint); Assert.IsTrue(success, message); } catch (Casl2SimulatorException) { Assert.IsFalse(success, message); } }
public void ResolveAddressFor() { Label definedLabel = new Label("DEF"); MemoryAddress definedLabelAddress = new MemoryAddress(0x1234); LabelDefinition labelDef = LabelDefinition.MakeForUnitTest(definedLabel, MemoryOffset.Zero, definedLabelAddress); m_labelTable.RegisterForUnitTest(labelDef); CheckResolveAddressFor( definedLabel, true, definedLabelAddress, "プログラム内で定義されたラベル => 成功、そのラベルのアドレスが返される"); EntryPoint entryPoint = EntryPointTest.Make("EXESTRT", "ENTRY", 0xfedc); m_entryPointTable.Register(entryPoint); CheckResolveAddressFor( entryPoint.EntryLabel, true, entryPoint.ExecStartAddress, "プログラムの入口名 => 成功、そのプログラムの実行開始アドレスが返される"); Label undefinedLabel = new Label("UNDEF"); MemoryAddress DontCare = MemoryAddress.Zero; CheckResolveAddressFor( undefinedLabel, false, DontCare, "未定義のラベル => 例外"); }