예제 #1
0
        protected internal override void InternalWriteTo(BinaryWriter writer, IAssemblingContext context)
        {
            Int32 value = m_displacement;

            if (m_element != null)
            {
                value += (Int32)context.GetAbsoluteMemoryAddress(m_element);
            }

            writer.Write(value);
        }
 internal override void WriteTo(BinaryWriter writer, IAssemblingContext context)
 {
     if (m_target != null)
     {
         context.GetPointerSize().WriteTo(writer, context.GetAbsoluteMemoryAddress(m_target));
     }
     else
     {
         context.GetPointerSize().WriteTo(writer, 0);
     }
 }
예제 #3
0
        protected internal override void InternalWriteTo(BinaryWriter writer, IAssemblingContext context)
        {
            UInt32 value = m_immediate;

            if (m_reference != null)
            {
                value += (UInt32)context.GetAbsoluteMemoryAddress(m_reference);
            }

            writer.Write(value);
        }
 internal override void WriteTo(BinaryWriter writer, IAssemblingContext context)
 {
     if (m_target != null)
     {
         writer.Write((UInt32)context.GetAbsoluteMemoryAddress(m_target));
     }
     else
     {
         writer.Write((UInt32)0);
     }
 }
예제 #5
0
        private int GetDisplacementValue(IAssemblingContext context)
        {
            if (m_address.OffsetElement == null)
            {
                return(m_address.OffsetValue);
            }
            else
            {
                int reference = (int)context.GetAbsoluteMemoryAddress(m_address.OffsetElement);

                return(reference + m_address.OffsetValue);
            }
        }