Struct CilOpCode
- Namespace
- AsmResolver.PE.DotNet.Cil
- Assembly
- AsmResolver.PE.dll
Describes the operation that a single CIL instruction performs.
public readonly struct CilOpCode
- Inherited Members
Properties
Byte1
Gets the first byte that appears in the instruction stream encoding this operation.
public byte Byte1 { get; }
Property Value
Byte2
Gets the second byte that appears in the instruction stream encoding this operation.
public byte Byte2 { get; }
Property Value
Remarks
This property only has meaning if IsLarge is true.
Code
Gets the value of the operation code.
public CilCode Code { get; }
Property Value
FlowControl
Gets a value indicating the flow control behaviour of the operation.
public CilFlowControl FlowControl { get; }
Property Value
IsLarge
Gets a value indicating whether the operation code is large or not. If this value is true, the code
needs two bytes to be encoded, otherwise it only needs one.
public bool IsLarge { get; }
Property Value
IsValid
Gets a value indicating whether the opcode is valid and interpreted by the runtime.
public bool IsValid { get; }
Property Value
Mnemonic
Gets the mnemonic of the operation code.
public string Mnemonic { get; }
Property Value
OpCodeType
Gets a value indicating the category of the operation code.
public CilOpCodeType OpCodeType { get; }
Property Value
OperandType
Gets a value indicating the category of the operand.
public CilOperandType OperandType { get; }
Property Value
Size
Gets the size in bytes of the operation code.
public int Size { get; }
Property Value
Remarks
This does not include the operand of the instruction.
StackBehaviourPop
Gets a value indicating the stack pop behaviour of the instruction.
public CilStackBehaviour StackBehaviourPop { get; }
Property Value
StackBehaviourPush
Gets a value indicating the stack push behaviour of the instruction.
public CilStackBehaviour StackBehaviourPush { get; }
Property Value
Methods
Equals(CilOpCode)
Determines whether the provided operation code is encoding the same operation.
public bool Equals(CilOpCode other)
Parameters
otherCilOpCodeThe other operation code.
Returns
- bool
trueif the same operation code is encoded,falseotherwise.
Equals(object?)
Indicates whether this instance and a specified object are equal.
public override bool Equals(object? obj)
Parameters
objobjectThe object to compare with the current instance.
Returns
- bool
true if
objand this instance are the same type and represent the same value; otherwise, false.
GetHashCode()
Returns the hash code for this instance.
public override int GetHashCode()
Returns
- int
A 32-bit signed integer that is the hash code for this instance.
ToString()
Returns the fully qualified type name of this instance.
public override string ToString()
Returns
- string
The fully qualified type name.
Operators
operator ==(CilOpCode, CilOpCode)
Determines whether two operation codes encode the same operation.
public static bool operator ==(CilOpCode a, CilOpCode b)
Parameters
Returns
- bool
trueif the same operation code is encoded,falseotherwise.
operator !=(CilOpCode, CilOpCode)
Determines whether two operation codes do not encode the same operation.
public static bool operator !=(CilOpCode a, CilOpCode b)
Parameters
Returns
- bool
trueif a different operation code is encoded,falseotherwise.