예제 #1
0
        public void TryUi16Test1()
        {
            ushort    test   = 0x1234;
            MemoryObj memory = new MemoryObj(8);

            // 例外が起きず失敗できるか
            Assert.IsFalse(memory.TrySetUi16(10, 0), "設定できないのに,設定できてます");
            Assert.IsFalse(memory.TryGetUi16(10, out ushort _), "取得できないのに,取得できてます");

            // 成功するか
            Assert.IsTrue(memory.TrySetUi16(0, 0), "設定できるのに,設定できてません");
            Assert.IsTrue(memory.TryGetUi16(0, out ushort _), "取得できるのに,取得できてません");

            // 設定,取得できるか
            memory = new MemoryObj(8);
            ushort result;

            if (!memory.TrySetUi16(0, test))
            {
                Assert.Fail("設定に失敗しました");
            }
            if (!memory.TryGetUi16(0, out result))
            {
                Assert.Fail("取得に失敗しました");
            }
            Assert.AreEqual(
                test,
                result,
                "取得はできたが,取得内容に差異があります");
        }
예제 #2
0
파일: Vm.cs 프로젝트: MuranagaTamura/LessVm
        public bool OpLoadW(BytecodeStream code)
        {
            int regId  = code.ReadByte();
            int memPtr = code.ReadChar();

            if (_memory.TryGetUi16(memPtr, out ushort val16))
            {
                return(TrySetRegUi16(regId, val16));
            }
            return(PushError($"メモリ範囲外を指定しました => ptr: {memPtr}"));
        }