コード例 #1
0
ファイル: context.cpp プロジェクト: anat/medusa
MEDUSA_NAMESPACE_BEGIN

bool CpuContext::Translate(Address const& rLogicalAddress, u64& rLinearAddress) const
{
  auto itAddr = m_AddressMap.find(Address(rLogicalAddress.GetBase(), 0x0));
  if (itAddr != std::end(m_AddressMap))
  {
    rLinearAddress = itAddr->second + rLogicalAddress.GetOffset();
    return true;
  }

  rLinearAddress = rLogicalAddress.GetOffset();

  return true;
}
コード例 #2
0
ファイル: memory_area.hpp プロジェクト: GrimDerp/medusa
 bool IsCellPresent(Address const& rAddress) const
 {
   if (GetBaseAddress().GetBase() != rAddress.GetBase())
     return false;
   return IsCellPresent(rAddress.GetOffset());
 }
コード例 #3
0
ファイル: disassembly_view.cpp プロジェクト: GrimDerp/medusa
void FormatDisassembly::_FormatAddress(Address const& rAddress, u32 Flags)
{
  if (rAddress.GetBase() != 0x0 && rAddress.GetBaseSize() != 0x0)
    m_rPrintData.AppendImmediate(rAddress.GetBase(), rAddress.GetBaseSize()).AppendOperator(":");
  m_rPrintData.AppendImmediate(rAddress.GetOffset(), rAddress.GetOffsetSize()).AppendSpace(8);
}