コード例 #1
0
        public BranchDescriptor ResolveBranch(SpanLocation memory)
        {
            var branchOnTrue  = Bits.SevenSet(memory.Bytes[0]);
            var oneByteOffset = Bits.SixSet(memory.Bytes[0]);

            var offset = 0;

            if (oneByteOffset)
            {
                offset = Bits.BottomSix(memory.Bytes[0]);
            }
            else
            {
                offset = Bits.MakeSignedWordFromBottomFourteen(memory.Bytes);
            }

            return(new BranchDescriptor(branchOnTrue, offset, oneByteOffset ? 1 : 2));
        }