---
documentID: "0450de3562891c41ae9e6729cf3225141d77dd1e4530db18b0411f4e5e5b48da"
docname: "extended/disassembler/cpp/arch/x86"
title: "X86/x86-64 - C++ Disassembler - LIEF Documentation"
description: "X86/x86-64 C++ Disassembler. See LIEF::assembly::x86::OPCODE in include/asm/x86/opcodes.hpp"
canonical: "https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html"
markdownURL: "https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.md"
documentationVersion: "2.0.0"
documentationChannel: "latest"
language: "en"
contentHash: "10d987bf8cb4e8e3ae5ad2b97421c95dec068a83af03f425a1c4d15b1af89f06"
---

# [X86/x86-64](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#x86-x86-64>)

## [Instruction](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#instruction>)

### [` Instruction `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x8611InstructionE>)

class Instruction : public LIEF::assembly::[Instruction](<https://lief.re/doc/latest/extended/disassembler/cpp/index.html#_CPPv4N4LIEF8assembly11InstructionE> "LIEF::assembly::Instruction")

This class represents a x86/x86-64 instruction.

Public Types

#### [` operands_it `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x8611Instruction11operands_itE>)

using operands\_it = [iterator\_range](<https://lief.re/doc/latest/api/cpp/index.html#_CPPv4I0EN4LIEF14iterator_rangeE> "LIEF::iterator_range")&lt;[Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand")::[Iterator](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorE> "LIEF::assembly::x86::Operand::Iterator")&gt;

Public Functions

#### [` opcode `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x8611Instruction6opcodeEv>)

OPCODE opcode() const

The instruction opcode as defined in LLVM.

#### [` operands `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x8611Instruction8operandsEv>)

[operands\_it](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x8611Instruction11operands_itE> "LIEF::assembly::x86::Instruction::operands_it") operands() const

[Iterator](<https://lief.re/doc/latest/extended/disassembler/cpp/index.html#classLIEF_1_1assembly_1_1Instruction_1_1Iterator>) over the operands of the current instruction.

#### [` has_lock_prefix `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x8611Instruction15has_lock_prefixEv>)

bool has\_lock\_prefix() const

True if this instruction has a `LOCK` prefix.

#### [` is_lockable `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x8611Instruction11is_lockableEv>)

bool is\_lockable() const

True if the `LOCK` prefix is architecturally valid on this instruction.

#### [` is_atomic `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x8611Instruction9is_atomicEv>)

bool is\_atomic() const

True if this instruction executes as an atomic read-modify-write.

#### [` lock `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x8611Instruction4lockEv>)

std::unique\_ptr&lt;[Instruction](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x8611InstructionE> "LIEF::assembly::x86::Instruction")&gt; lock() const

Re-encoded copy of this instruction with a `LOCK` prefix added.

If the instruction already has a `LOCK` prefix, it returns a plain copy.

#### [` unlock `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x8611Instruction6unlockEv>)

std::unique\_ptr&lt;[Instruction](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x8611InstructionE> "LIEF::assembly::x86::Instruction")&gt; unlock() const

Re-encoded copy of this instruction with the `LOCK` prefix removed.

If the instruction does not have a `LOCK` prefix, it returns a plain copy or a nullptr if the `LOCK` semantic can’t be removed.

#### [` ~Instruction `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x8611InstructionD0Ev>)

virtual ~Instruction() override = default

Public Static Functions

#### [` classof `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x8611Instruction7classofEPKN8assembly11InstructionE>)

static bool classof(const assembly::[Instruction](<https://lief.re/doc/latest/extended/disassembler/cpp/index.html#_CPPv4N4LIEF8assembly11InstructionE> "LIEF::assembly::Instruction") \*inst)

True if `inst` is an **effective** instance of [x86::Instruction](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#classLIEF_1_1assembly_1_1x86_1_1Instruction>).

## [Opcodes](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#opcodes>)

See `LIEF::assembly::x86::OPCODE` in `include/asm/x86/opcodes.hpp`

## [Operands](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#operands>)

### [` Operand `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE>)

class Operand

This class represents an operand for an x86/x86-64 instruction.

Subclassed by [LIEF::assembly::x86::operands::Immediate](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#classLIEF_1_1assembly_1_1x86_1_1operands_1_1Immediate>), [LIEF::assembly::x86::operands::Memory](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#classLIEF_1_1assembly_1_1x86_1_1operands_1_1Memory>), [LIEF::assembly::x86::operands::PCRelative](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#classLIEF_1_1assembly_1_1x86_1_1operands_1_1PCRelative>), [LIEF::assembly::x86::operands::Register](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#classLIEF_1_1assembly_1_1x86_1_1operands_1_1Register>)

Public Functions

#### [` to_string `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x867Operand9to_stringEv>)

std::string to\_string() const

Pretty representation of the operand.

#### [` Tas `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4I0ENK4LIEF8assembly3x867Operand2asEPK1Tv>)

template&lt;class T&gt;  
inline const [T](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4I0ENK4LIEF8assembly3x867Operand2asEPK1Tv> "LIEF::assembly::x86::Operand::as::T") \*as() const

This function can be used to **down cast** an [Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#classLIEF_1_1assembly_1_1x86_1_1Operand>) instance:

```cpp
std::unique_ptr<assembly::x86::Operand> op = ...;
if (const auto* memory = inst->as<assembly::x86::operands::Memory>()) {
  const assembly::x86::REG base = memory->base();
}
```

#### [` ~Operand `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandD0Ev>)

virtual ~Operand()

Friends

#### [` operator<< `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandlsERNSt7ostreamERK7Operand>)

inline friend std::ostream &amp;operator&lt;&lt;(std::ostream &amp;os, const [Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand") &amp;op)

#### [` Iterator `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorE>)

class Iterator : public LIEF::iterator\_facade\_base&lt;[Iterator](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorE> "LIEF::assembly::x86::Operand::Iterator"), std::forward\_iterator\_tag, [Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand"), std::ptrdiff\_t, const [Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand")\*, const [Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand")&amp;&gt;

**Forward** iterator that lazily disassembles x86 [Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#classLIEF_1_1assembly_1_1x86_1_1Operand>).

Public Types

##### [` implementation `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8Iterator14implementationE>)

using implementation = details::OperandIt

Public Functions

##### [` Iterator `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8Iterator8IteratorEv>)

Iterator()

##### [` Iterator `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8Iterator8IteratorENSt10unique_ptrIN7details9OperandItEEE>)

Iterator(std::unique\_ptr&lt;details::OperandIt&gt; impl)

##### [` Iterator `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8Iterator8IteratorERK8Iterator>)

Iterator(const [Iterator](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8Iterator8IteratorERK8Iterator> "LIEF::assembly::x86::Operand::Iterator::Iterator")&amp;)

##### [` operator= `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratoraSERK8Iterator>)

[Iterator](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorE> "LIEF::assembly::x86::Operand::Iterator") &amp;operator=(const [Iterator](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorE> "LIEF::assembly::x86::Operand::Iterator")&amp;)

##### [` Iterator `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8Iterator8IteratorERR8Iterator>)

Iterator([Iterator](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8Iterator8IteratorERR8Iterator> "LIEF::assembly::x86::Operand::Iterator::Iterator")&amp;&amp;) noexcept

##### [` operator= `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratoraSERR8Iterator>)

[Iterator](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorE> "LIEF::assembly::x86::Operand::Iterator") &amp;operator=([Iterator](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorE> "LIEF::assembly::x86::Operand::Iterator")&amp;&amp;) noexcept

##### [` ~Iterator `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorD0Ev>)

~Iterator()

##### [` operator++ `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorppEv>)

[Iterator](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorE> "LIEF::assembly::x86::Operand::Iterator") &amp;operator++()

##### [` operator* `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x867Operand8IteratormlEv>)

const [Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand") &amp;operator\*() const

##### [` operator-> `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x867Operand8IteratorptEv>)

const [Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand") \*operator-&gt;() const

##### [` yield `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8Iterator5yieldEv>)

std::unique\_ptr&lt;[Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand")&gt; yield()

Transfer ownership of the operand at the current position to the caller. Returns `nullptr` if the iterator is past-the-end.

##### [` operator++ `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorppEi>)

inline DerivedT operator++(int)

Friends

##### [` operator== `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratoreqERK8IteratorRK8Iterator>)

friend bool operator==(const [Iterator](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorE> "LIEF::assembly::x86::Operand::Iterator") &amp;LHS, const [Iterator](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorE> "LIEF::assembly::x86::Operand::Iterator") &amp;RHS)

##### [` operator!= `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorneERK8IteratorRK8Iterator>)

inline friend bool operator!=(const [Iterator](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorE> "LIEF::assembly::x86::Operand::Iterator") &amp;LHS, const [Iterator](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867Operand8IteratorE> "LIEF::assembly::x86::Operand::Iterator") &amp;RHS)

### [Immediate](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#immediate>)

#### [` Immediate `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x868operands9ImmediateE>)

class Immediate : public LIEF::assembly::x86::[Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand")

This class represents an immediate operand (i.e. a constant).

For instance:

```text
mov edi, 1;
         |
         +---> Immediate(1)
```

Public Functions

##### [` value `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x868operands9Immediate5valueEv>)

int64\_t value() const

The constant value wrapped by this operand.

##### [` ~Immediate `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x868operands9ImmediateD0Ev>)

~Immediate() override = default

Public Static Functions

##### [` classof `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x868operands9Immediate7classofEPK7Operand>)

static bool classof(const [Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand") \*op)

### [Register](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#register>)

#### [` Register `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x868operands8RegisterE>)

class Register : public LIEF::assembly::x86::[Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand")

This class represents a register operand.

For instance:

```text
mov r15d, edi
     |     |
     |     +---------> Register(EDI)
     |
     +---------------> Register(R15D)
```

Public Functions

##### [` value `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x868operands8Register5valueEv>)

REG value() const

The effective REG wrapped by this operand.

##### [` ~Register `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x868operands8RegisterD0Ev>)

~Register() override = default

Public Static Functions

##### [` classof `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x868operands8Register7classofEPK7Operand>)

static bool classof(const [Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand") \*op)

### [Memory](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#memory>)

#### [` Memory `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x868operands6MemoryE>)

class Memory : public LIEF::assembly::x86::[Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand")

This class represents a memory operand.

For instance:

```text
movq xmm3, qword ptr [rip + 823864];

                     |
                     |
                   Memory
                     |
         +-----------+-----------+
         |           |           |
     Base: rip    Scale: 1    Displacement: 823864
```

Public Functions

##### [` base `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x868operands6Memory4baseEv>)

REG base() const

The base register.

For `lea rdx, [rip + 244634]` it would return `rip`

##### [` scaled_register `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x868operands6Memory15scaled_registerEv>)

REG scaled\_register() const

The scaled register.

For `mov rdi, qword ptr [r13 + 8*r14]` it would return `r14`

##### [` segment_register `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x868operands6Memory16segment_registerEv>)

REG segment\_register() const

The segment register associated with the memory operation.

For `mov eax, dword ptr gs:[0]` is would return `gs`

##### [` scale `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x868operands6Memory5scaleEv>)

uint64\_t scale() const

The scale value associated with the [scaled\_register()](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#classLIEF_1_1assembly_1_1x86_1_1operands_1_1Memory_1a2ca1ae289fb9ae213348b59c921bbfaa>):

For `mov rdi, qword ptr [r13 + 8*r14]` it would return `8`

##### [` displacement `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x868operands6Memory12displacementEv>)

int64\_t displacement() const

The displacement value.

For `call qword ptr [rip + 248779]` it would return `248779`

##### [` ~Memory `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x868operands6MemoryD0Ev>)

~Memory() override = default

Public Static Functions

##### [` classof `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x868operands6Memory7classofEPK7Operand>)

static bool classof(const [Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand") \*op)

### [PCRelative](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#pcrelative>)

#### [` PCRelative `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x868operands10PCRelativeE>)

class PCRelative : public LIEF::assembly::x86::[Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand")

This class represents a RIP/EIP-relative operand.

For instance:

```text
jmp 67633;
    |
    +----------> PCRelative(67633)
```

Public Functions

##### [` value `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4NK4LIEF8assembly3x868operands10PCRelative5valueEv>)

int64\_t value() const

The effective value that is relative to the current `rip/eip` register.

##### [` ~PCRelative `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x868operands10PCRelativeD0Ev>)

~PCRelative() override = default

Public Static Functions

##### [` classof `](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x868operands10PCRelative7classofEPK7Operand>)

static bool classof(const [Operand](<https://lief.re/doc/latest/extended/disassembler/cpp/arch/x86.html#_CPPv4N4LIEF8assembly3x867OperandE> "LIEF::assembly::x86::Operand") \*op)
