Ejemplo n.º 1
0
 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,
                "未定義のラベル => 例外");
        }