Struct iced_x86::Instruction [−][src]
pub struct Instruction { /* fields omitted */ }
Expand description
A 16/32/64-bit x86 instruction. Created by Decoder
or by Instruction::with*()
methods.
Implementations
Creates an empty Instruction
(all fields are cleared). See also the with_*()
constructor methods.
Checks if two instructions are equal, comparing all bits, not ignoring anything. ==
ignores some fields.
Gets the 16-bit IP of the instruction, see also next_ip16()
Gets the 32-bit IP of the instruction, see also next_ip32()
Gets the code size when the instruction was decoded. This value is informational and can be used by a formatter.
Sets the code size when the instruction was decoded. This value is informational and can be used by a formatter.
Arguments
new_value
: new value
Checks if it’s an invalid instruction (code()
== Code::INVALID
)
Gets the instruction code, see also mnemonic()
Gets the operand count. An instruction can have 0-5 operands.
Examples
use iced_x86::*; // add [rax],ebx let bytes = b"\x01\x18"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); let instr = decoder.decode(); assert_eq!(instr.op_count(), 2);
Gets the length of the instruction, 0-15 bytes. This is just informational. If you modify the instruction or create a new one, this method could return the wrong value.
Sets the length of the instruction, 0-15 bytes. This is just informational. If you modify the instruction or create a new one, this method could return the wrong value.
Arguments
new_value
: new value
true
if the instruction has the XACQUIRE
prefix (F2
)
true
if the instruction has the XRELEASE
prefix (F3
)
true
if the instruction has the REPE
or REP
prefix (F3
)
true
if the instruction has the REPE
or REP
prefix (F3
)
true
if the instruction has the REPNE
prefix (F2
)
true
if the instruction has the LOCK
prefix (F0
)
Gets operand #0’s kind if the operand exists (see op_count()
and try_op_kind()
)
Sets operand #0’s kind if the operand exists (see op_count()
and try_set_op_kind()
)
Arguments
new_value
: new value
Gets operand #1’s kind if the operand exists (see op_count()
and try_op_kind()
)
Sets operand #1’s kind if the operand exists (see op_count()
and try_set_op_kind()
)
Arguments
new_value
: new value
Gets operand #2’s kind if the operand exists (see op_count()
and try_op_kind()
)
Sets operand #2’s kind if the operand exists (see op_count()
and try_set_op_kind()
)
Arguments
new_value
: new value
Gets operand #3’s kind if the operand exists (see op_count()
and try_op_kind()
)
Sets operand #3’s kind if the operand exists (see op_count()
and try_set_op_kind()
)
Arguments
new_value
: new value
Gets operand #4’s kind if the operand exists (see op_count()
and try_op_kind()
)
👎 Deprecated since 1.10.0: This method can panic, use try_set_op4_kind() instead
This method can panic, use try_set_op4_kind() instead
Sets operand #4’s kind if the operand exists (see op_count()
and try_set_op_kind()
)
Panics
Panics if new_value
is invalid.
Arguments
new_value
: new value
Sets operand #4’s kind if the operand exists (see op_count()
and try_set_op_kind()
)
Errors
Fails if new_value
is invalid.
Arguments
new_value
: new value
Gets all op kinds (op_count()
values)
Examples
use iced_x86::*; // add [rax],ebx let bytes = b"\x01\x18"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); let instr = decoder.decode(); for (i, op_kind) in instr.op_kinds().enumerate() { println!("op kind #{} = {:?}", i, op_kind); }
👎 Deprecated since 1.10.0: This method can panic, use try_op_kind() instead
This method can panic, use try_op_kind() instead
Gets an operand’s kind if it exists (see op_count()
)
Panics
Panics if operand
is invalid
Arguments
operand
: Operand number, 0-4
Examples
use iced_x86::*; // add [rax],ebx let bytes = b"\x01\x18"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); let instr = decoder.decode(); assert_eq!(instr.op_count(), 2); assert_eq!(instr.op_kind(0), OpKind::Memory); assert_eq!(instr.memory_base(), Register::RAX); assert_eq!(instr.memory_index(), Register::None); assert_eq!(instr.op_kind(1), OpKind::Register); assert_eq!(instr.op_register(1), Register::EBX);
Gets an operand’s kind if it exists (see op_count()
)
Errors
Fails if operand
is invalid
Arguments
operand
: Operand number, 0-4
Examples
use iced_x86::*; // add [rax],ebx let bytes = b"\x01\x18"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); let instr = decoder.decode(); assert_eq!(instr.op_count(), 2); assert_eq!(instr.try_op_kind(0).unwrap(), OpKind::Memory); assert_eq!(instr.memory_base(), Register::RAX); assert_eq!(instr.memory_index(), Register::None); assert_eq!(instr.try_op_kind(1).unwrap(), OpKind::Register); assert_eq!(instr.op_register(1), Register::EBX);
👎 Deprecated since 1.10.0: This method can panic, use try_set_op_kind() instead
This method can panic, use try_set_op_kind() instead
Checks if the instruction has a segment override prefix, see segment_prefix()
Gets the segment override prefix or Register::None
if none. See also memory_segment()
.
Use this method if the operand has kind OpKind::Memory
,
OpKind::MemorySegSI
, OpKind::MemorySegESI
, OpKind::MemorySegRSI
Sets the segment override prefix or Register::None
if none. See also memory_segment()
.
Use this method if the operand has kind OpKind::Memory
,
OpKind::MemorySegSI
, OpKind::MemorySegESI
, OpKind::MemorySegRSI
Arguments
new_value
: Segment register prefix
Gets the effective segment register used to reference the memory location.
Use this method if the operand has kind OpKind::Memory
,
OpKind::MemorySegSI
, OpKind::MemorySegESI
, OpKind::MemorySegRSI
Gets the size of the memory displacement in bytes. Valid values are 0
, 1
(16/32/64-bit), 2
(16-bit), 4
(32-bit), 8
(64-bit).
Note that the return value can be 1 and memory_displacement64()
may still not fit in
a signed byte if it’s an EVEX encoded instruction.
Use this method if the operand has kind OpKind::Memory
Sets the size of the memory displacement in bytes. Valid values are 0
, 1
(16/32/64-bit), 2
(16-bit), 4
(32-bit), 8
(64-bit).
Note that the return value can be 1 and memory_displacement64()
may still not fit in
a signed byte if it’s an EVEX encoded instruction.
Use this method if the operand has kind OpKind::Memory
Arguments
new_value
: Displacement size
true
if the data is broadcasted (EVEX instructions only)
Gets the size of the memory location that is referenced by the operand. See also is_broadcast()
.
Use this method if the operand has kind OpKind::Memory
,
OpKind::MemorySegSI
, OpKind::MemorySegESI
, OpKind::MemorySegRSI
,
OpKind::MemoryESDI
, OpKind::MemoryESEDI
, OpKind::MemoryESRDI
Gets the index register scale value, valid values are *1
, *2
, *4
, *8
. Use this method if the operand has kind OpKind::Memory
Sets the index register scale value, valid values are *1
, *2
, *4
, *8
. Use this method if the operand has kind OpKind::Memory
Arguments
new_value
: New value (1, 2, 4 or 8)
👎 Deprecated since 1.11.0: Use memory_displacement32() or memory_displacement64() instead
Use memory_displacement32() or memory_displacement64() instead
Gets the memory operand’s displacement or the 32-bit absolute address if it’s
an EIP
or RIP
relative memory operand.
Use this method if the operand has kind OpKind::Memory
👎 Deprecated since 1.11.0: Use set_memory_displacement32() or set_memory_displacement64() instead
Use set_memory_displacement32() or set_memory_displacement64() instead
Gets the memory operand’s displacement or the 32-bit absolute address if it’s
an EIP
or RIP
relative memory operand.
Use this method if the operand has kind OpKind::Memory
Arguments
new_value
: New value
Gets the memory operand’s displacement or the 32-bit absolute address if it’s
an EIP
or RIP
relative memory operand.
Use this method if the operand has kind OpKind::Memory
Gets the memory operand’s displacement or the 32-bit absolute address if it’s
an EIP
or RIP
relative memory operand.
Use this method if the operand has kind OpKind::Memory
Arguments
new_value
: New value
Gets the memory operand’s displacement or the 64-bit absolute address if it’s
an EIP
or RIP
relative memory operand.
Use this method if the operand has kind OpKind::Memory
Gets the memory operand’s displacement or the 64-bit absolute address if it’s
an EIP
or RIP
relative memory operand.
Use this method if the operand has kind OpKind::Memory
Arguments
new_value
: New value
👎 Deprecated since 1.11.0: This method can panic, use try_immediate() instead
This method can panic, use try_immediate() instead
👎 Deprecated since 1.10.0: This method can panic, use try_set_immediate_i32() instead
This method can panic, use try_set_immediate_i32() instead
👎 Deprecated since 1.10.0: This method can panic, use try_set_immediate_u32() instead
This method can panic, use try_set_immediate_u32() instead
👎 Deprecated since 1.10.0: This method can panic, use try_set_immediate_i64() instead
This method can panic, use try_set_immediate_i64() instead
👎 Deprecated since 1.10.0: This method can panic, use try_set_immediate_u64() instead
This method can panic, use try_set_immediate_u64() instead
Gets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate8
Sets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate8
Arguments
new_value
: New value
Gets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate8_2nd
Sets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate8_2nd
Arguments
new_value
: New value
Gets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate16
Sets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate16
Arguments
new_value
: New value
Gets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate32
Sets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate32
Arguments
new_value
: New value
Gets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate64
Sets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate64
Arguments
new_value
: New value
Gets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate8to16
Sets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate8to16
Arguments
new_value
: New value
Gets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate8to32
Sets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate8to32
Arguments
new_value
: New value
Gets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate8to64
Sets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate8to64
Arguments
new_value
: New value
Gets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate32to64
Sets the operand’s immediate value. Use this method if the operand has kind OpKind::Immediate32to64
Arguments
new_value
: New value
👎 Deprecated since 1.11.0: OpKind::Memory64 is deprecated, this method does nothing now. Use memory_displacement64() instead.
OpKind::Memory64 is deprecated, this method does nothing now. Use memory_displacement64() instead.
OpKind::Memory64
is deprecated, this method does nothing now.
👎 Deprecated since 1.11.0: OpKind::Memory64 is deprecated, this method does nothing now. Use set_memory_displacement64() instead.
OpKind::Memory64 is deprecated, this method does nothing now. Use set_memory_displacement64() instead.
Gets the operand’s branch target. Use this method if the operand has kind OpKind::NearBranch16
Sets the operand’s branch target. Use this method if the operand has kind OpKind::NearBranch16
Arguments
new_value
: New value
Gets the operand’s branch target. Use this method if the operand has kind OpKind::NearBranch32
Sets the operand’s branch target. Use this method if the operand has kind OpKind::NearBranch32
Arguments
new_value
: New value
Gets the operand’s branch target. Use this method if the operand has kind OpKind::NearBranch64
Sets the operand’s branch target. Use this method if the operand has kind OpKind::NearBranch64
Arguments
new_value
: New value
Gets the near branch target if it’s a CALL
/JMP
/Jcc
near branch instruction
(i.e., if op0_kind()
is OpKind::NearBranch16
, OpKind::NearBranch32
or OpKind::NearBranch64
)
Gets the operand’s branch target. Use this method if the operand has kind OpKind::FarBranch16
Sets the operand’s branch target. Use this method if the operand has kind OpKind::FarBranch16
Arguments
new_value
: New value
Gets the operand’s branch target. Use this method if the operand has kind OpKind::FarBranch32
Sets the operand’s branch target. Use this method if the operand has kind OpKind::FarBranch32
Arguments
new_value
: New value
Gets the operand’s branch target selector. Use this method if the operand has kind OpKind::FarBranch16
or OpKind::FarBranch32
Sets the operand’s branch target selector. Use this method if the operand has kind OpKind::FarBranch16
or OpKind::FarBranch32
Arguments
new_value
: New value
Gets the memory operand’s base register or Register::None
if none. Use this method if the operand has kind OpKind::Memory
Sets the memory operand’s base register or Register::None
if none. Use this method if the operand has kind OpKind::Memory
Arguments
new_value
: New value
Gets the memory operand’s index register or Register::None
if none. Use this method if the operand has kind OpKind::Memory
Sets the memory operand’s index register or Register::None
if none. Use this method if the operand has kind OpKind::Memory
Arguments
new_value
: New value
Gets operand #0’s register value. Use this method if operand #0 (op0_kind()
) has kind OpKind::Register
, see op_count()
and try_op_register()
Sets operand #0’s register value. Use this method if operand #0 (op0_kind()
) has kind OpKind::Register
, see op_count()
and try_op_register()
Arguments
new_value
: New value
Gets operand #1’s register value. Use this method if operand #1 (op0_kind()
) has kind OpKind::Register
, see op_count()
and try_op_register()
Sets operand #1’s register value. Use this method if operand #1 (op0_kind()
) has kind OpKind::Register
, see op_count()
and try_op_register()
Arguments
new_value
: New value
Gets operand #2’s register value. Use this method if operand #2 (op0_kind()
) has kind OpKind::Register
, see op_count()
and try_op_register()
Sets operand #2’s register value. Use this method if operand #2 (op0_kind()
) has kind OpKind::Register
, see op_count()
and try_op_register()
Arguments
new_value
: New value
Gets operand #3’s register value. Use this method if operand #3 (op0_kind()
) has kind OpKind::Register
, see op_count()
and try_op_register()
Sets operand #3’s register value. Use this method if operand #3 (op0_kind()
) has kind OpKind::Register
, see op_count()
and try_op_register()
Arguments
new_value
: New value
Gets operand #4’s register value. Use this method if operand #4 (op0_kind()
) has kind OpKind::Register
, see op_count()
and try_op_register()
👎 Deprecated since 1.10.0: This method can panic, use try_set_op4_register() instead
This method can panic, use try_set_op4_register() instead
Sets operand #4’s register value. Use this method if operand #4 (op0_kind()
) has kind OpKind::Register
, see op_count()
and try_op_register()
Panics
Panics if new_value
is invalid
Arguments
new_value
: New value
Sets operand #4’s register value. Use this method if operand #4 (op0_kind()
) has kind OpKind::Register
, see op_count()
and try_op_register()
Errors
Fails if new_value
is invalid
Arguments
new_value
: New value
👎 Deprecated since 1.10.0: This method can panic, use try_op_register() instead
This method can panic, use try_op_register() instead
Gets the operand’s register value. Use this method if the operand has kind OpKind::Register
Panics
Panics if operand
is invalid
Arguments
operand
: Operand number, 0-4
Examples
use iced_x86::*; // add [rax],ebx let bytes = b"\x01\x18"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); let instr = decoder.decode(); assert_eq!(instr.op_count(), 2); assert_eq!(instr.op_kind(0), OpKind::Memory); assert_eq!(instr.op_kind(1), OpKind::Register); assert_eq!(instr.op_register(1), Register::EBX);
Gets the operand’s register value. Use this method if the operand has kind OpKind::Register
Errors
Fails if operand
is invalid
Arguments
operand
: Operand number, 0-4
Examples
use iced_x86::*; // add [rax],ebx let bytes = b"\x01\x18"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); let instr = decoder.decode(); assert_eq!(instr.op_count(), 2); assert_eq!(instr.op_kind(0), OpKind::Memory); assert_eq!(instr.op_kind(1), OpKind::Register); assert_eq!(instr.try_op_register(1).unwrap(), Register::EBX);
👎 Deprecated since 1.10.0: This method can panic, use try_set_op_register() instead
This method can panic, use try_set_op_register() instead
Sets the operand’s register value. Use this method if the operand has kind OpKind::Register
Panics
- Panics if
operand
is invalid - Panics if
new_value
is invalid
Arguments
operand
: Operand number, 0-4new_value
: New value
Sets the operand’s register value. Use this method if the operand has kind OpKind::Register
Errors
- Fails if
operand
is invalid - Fails if
new_value
is invalid
Arguments
operand
: Operand number, 0-4new_value
: New value
Gets the opmask register (Register::K1
- Register::K7
) or Register::None
if none
Sets the opmask register (Register::K1
- Register::K7
) or Register::None
if none
Arguments
new_value
: New value
Checks if there’s an opmask register (op_mask()
)
true
if zeroing-masking, false
if merging-masking.
Only used by most EVEX encoded instructions that use opmask registers.
true
if zeroing-masking, false
if merging-masking.
Only used by most EVEX encoded instructions that use opmask registers.
Arguments
new_value
: New value
true
if merging-masking, false
if zeroing-masking.
Only used by most EVEX encoded instructions that use opmask registers.
true
if merging-masking, false
if zeroing-masking.
Only used by most EVEX encoded instructions that use opmask registers.
Arguments
new_value
: New value
Gets the rounding control (SAE is implied but suppress_all_exceptions()
still returns false
)
or RoundingControl::None
if the instruction doesn’t use it.
Sets the rounding control (SAE is implied but suppress_all_exceptions()
still returns false
)
or RoundingControl::None
if the instruction doesn’t use it.
Arguments
new_value
: New value
Gets the number of elements in a db
/dw
/dd
/dq
directive.
Can only be called if code()
is Code::DeclareByte
, Code::DeclareWord
, Code::DeclareDword
, Code::DeclareQword
Sets the number of elements in a db
/dw
/dd
/dq
directive.
Can only be called if code()
is Code::DeclareByte
, Code::DeclareWord
, Code::DeclareDword
, Code::DeclareQword
Arguments
new_value
: New value:db
: 1-16;dw
: 1-8;dd
: 1-4;dq
: 1-2
👎 Deprecated since 1.10.0: This method can panic, use try_set_declare_byte_value_i8() instead
This method can panic, use try_set_declare_byte_value_i8() instead
Sets a new db
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareByte
Panics
- Panics if
index
is invalid
Arguments
index
: Index (0-15)new_value
: New value
Sets a new db
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareByte
Errors
- Fails if
index
is invalid
Arguments
index
: Index (0-15)new_value
: New value
👎 Deprecated since 1.10.0: This method can panic, use try_set_declare_byte_value() instead
This method can panic, use try_set_declare_byte_value() instead
Sets a new db
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareByte
Panics
- Panics if
index
is invalid
Arguments
index
: Index (0-15)new_value
: New value
Sets a new db
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareByte
Errors
- Fails if
index
is invalid
Arguments
index
: Index (0-15)new_value
: New value
👎 Deprecated since 1.10.0: This method can panic, use try_get_declare_byte_value() instead
This method can panic, use try_get_declare_byte_value() instead
Gets a db
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareByte
Panics
Panics if index
is invalid
Arguments
index
: Index (0-15)
Gets a db
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareByte
Errors
Fails if index
is invalid
Arguments
index
: Index (0-15)
👎 Deprecated since 1.10.0: This method can panic, use try_set_declare_word_value_i16() instead
This method can panic, use try_set_declare_word_value_i16() instead
Sets a new dw
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareWord
Panics
- Panics if
index
is invalid
Arguments
index
: Index (0-7)new_value
: New value
Sets a new dw
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareWord
Errors
- Fails if
index
is invalid
Arguments
index
: Index (0-7)new_value
: New value
👎 Deprecated since 1.10.0: This method can panic, use try_set_declare_word_value() instead
This method can panic, use try_set_declare_word_value() instead
Sets a new dw
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareWord
Panics
- Panics if
index
is invalid
Arguments
index
: Index (0-7)new_value
: New value
Sets a new dw
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareWord
Errors
- Fails if
index
is invalid
Arguments
index
: Index (0-7)new_value
: New value
👎 Deprecated since 1.10.0: This method can panic, use try_get_declare_word_value() instead
This method can panic, use try_get_declare_word_value() instead
Gets a dw
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareWord
Panics
Panics if index
is invalid
Arguments
index
: Index (0-7)
Gets a dw
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareWord
Errors
Fails if index
is invalid
Arguments
index
: Index (0-7)
👎 Deprecated since 1.10.0: This method can panic, use try_set_declare_dword_value_i32() instead
This method can panic, use try_set_declare_dword_value_i32() instead
Sets a new dd
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareDword
Panics
- Panics if
index
is invalid
Arguments
index
: Index (0-3)new_value
: New value
Sets a new dd
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareDword
Errors
- Fails if
index
is invalid
Arguments
index
: Index (0-3)new_value
: New value
👎 Deprecated since 1.10.0: This method can panic, use try_set_declare_dword_value() instead
This method can panic, use try_set_declare_dword_value() instead
Sets a new dd
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareDword
Panics
- Panics if
index
is invalid
Arguments
index
: Index (0-3)new_value
: New value
Sets a new dd
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareDword
Errors
- Fails if
index
is invalid
Arguments
index
: Index (0-3)new_value
: New value
👎 Deprecated since 1.10.0: This method can panic, use try_get_declare_dword_value() instead
This method can panic, use try_get_declare_dword_value() instead
Gets a dd
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareDword
Panics
Panics if index
is invalid
Arguments
index
: Index (0-3)
Gets a dd
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareDword
Errors
Fails if index
is invalid
Arguments
index
: Index (0-3)
👎 Deprecated since 1.10.0: This method can panic, use try_set_declare_qword_value_i64() instead
This method can panic, use try_set_declare_qword_value_i64() instead
Sets a new dq
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareQword
Panics
- Panics if
index
is invalid
Arguments
index
: Index (0-1)new_value
: New value
Sets a new dq
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareQword
Errors
- Fails if
index
is invalid
Arguments
index
: Index (0-1)new_value
: New value
👎 Deprecated since 1.10.0: This method can panic, use try_set_declare_qword_value() instead
This method can panic, use try_set_declare_qword_value() instead
Sets a new dq
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareQword
Panics
- Panics if
index
is invalid
Arguments
index
: Index (0-1)new_value
: New value
Sets a new dq
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareQword
Errors
- Fails if
index
is invalid
Arguments
index
: Index (0-1)new_value
: New value
👎 Deprecated since 1.10.0: This method can panic, use try_get_declare_qword_value() instead
This method can panic, use try_get_declare_qword_value() instead
Gets a dq
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareQword
Panics
Panics if index
is invalid
Arguments
index
: Index (0-1)
Gets a dq
value, see also declare_data_len()
.
Can only be called if code()
is Code::DeclareQword
Errors
Fails if index
is invalid
Arguments
index
: Index (0-1)
Checks if this is a VSIB instruction, see also is_vsib32()
, is_vsib64()
VSIB instructions only (is_vsib()
): true
if it’s using 32-bit indexes, false
if it’s using 64-bit indexes
VSIB instructions only (is_vsib()
): true
if it’s using 64-bit indexes, false
if it’s using 32-bit indexes
Checks if it’s a vsib instruction.
Returns
Some(true)
if it’s a VSIB instruction with 64-bit indexesSome(false)
if it’s a VSIB instruction with 32-bit indexesNone
if it’s not a VSIB instruction.
Gets the suppress all exceptions flag (EVEX encoded instructions). Note that if rounding_control()
is
not RoundingControl::None
, SAE is implied but this method will still return false
.
Sets the suppress all exceptions flag (EVEX encoded instructions). Note that if rounding_control()
is
not RoundingControl::None
, SAE is implied but this method will still return false
.
Arguments
new_value
: New value
Checks if the memory operand is RIP
/EIP
relative
Gets the RIP
/EIP
releative address (memory_displacement32()
or memory_displacement64()
).
This method is only valid if there’s a memory operand with RIP
/EIP
relative addressing, see is_ip_rel_memory_operand()
Gets the virtual address of a memory operand
Arguments
operand
: Operand number, 0-4, must be a memory operandelement_index
: Only used if it’s a vsib memory operand. This is the element index of the vector index register.get_register_value
: Function that returns the value of a register or the base address of a segment register, orNone
for unsupported registers.
Call-back function args
- Arg 1:
register
: Register (GPR8, GPR16, GPR32, GPR64, XMM, YMM, ZMM, seg). If it’s a segment register, the call-back function should return the segment’s base address, not the segment’s register value. - Arg 2:
element_index
: Only used if it’s a vsib memory operand. This is the element index of the vector index register. - Arg 3:
element_size
: Only used if it’s a vsib memory operand. Size in bytes of elements in vector index register (4 or 8).
Examples
use iced_x86::*; // add [rdi+r12*8-5AA5EDCCh],esi let bytes = b"\x42\x01\xB4\xE7\x34\x12\x5A\xA5"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); let instr = decoder.decode(); let va = instr.try_virtual_address(0, 0, |register, element_index, element_size| { match register { // The base address of ES, CS, SS and DS is always 0 in 64-bit mode Register::DS => Some(0x0000_0000_0000_0000), Register::RDI => Some(0x0000_0000_1000_0000), Register::R12 => Some(0x0000_0004_0000_0000), _ => None, } }); assert_eq!(va, Some(0x0000_001F_B55A_1234));
pub fn virtual_address<F>(
&self,
operand: u32,
element_index: usize,
get_register_value: F
) -> u64 where
F: FnMut(Register, usize, usize) -> u64,
👎 Deprecated since 1.11.0: This method can panic, use try_virtual_address() instead
pub fn virtual_address<F>(
&self,
operand: u32,
element_index: usize,
get_register_value: F
) -> u64 where
F: FnMut(Register, usize, usize) -> u64,
This method can panic, use try_virtual_address() instead
Gets the virtual address of a memory operand. See also try_virtual_address()
Panics
Panics if operand
is invalid
Arguments
operand
: Operand number, 0-4, must be a memory operandelement_index
: Only used if it’s a vsib memory operand. This is the element index of the vector index register.get_register_value
: Function that returns the value of a register or the base address of a segment register.
Call-back function args
- Arg 1:
register
: Register (GPR8, GPR16, GPR32, GPR64, XMM, YMM, ZMM, seg). If it’s a segment register, the call-back function should return the segment’s base address, not the segment’s register value. - Arg 2:
element_index
: Only used if it’s a vsib memory operand. This is the element index of the vector index register. - Arg 3:
element_size
: Only used if it’s a vsib memory operand. Size in bytes of elements in vector index register (4 or 8).
Examples
use iced_x86::*; // add [rdi+r12*8-5AA5EDCCh],esi let bytes = b"\x42\x01\xB4\xE7\x34\x12\x5A\xA5"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); let instr = decoder.decode(); let va = instr.virtual_address(0, 0, |register, element_index, element_size| { match register { // The base address of ES, CS, SS and DS is always 0 in 64-bit mode Register::DS => 0x0000_0000_0000_0000, Register::RDI => 0x0000_0000_1000_0000, Register::R12 => 0x0000_0004_0000_0000, _ => unimplemented!(), } }); assert_eq!(va, 0x0000_001F_B55A_1234);
Gets the number of bytes added to SP
/ESP
/RSP
or 0 if it’s not an instruction that pushes or pops data. This method assumes
the instruction doesn’t change the privilege level (eg. IRET/D/Q
). If it’s the LEAVE
instruction, this method returns 0.
Examples
use iced_x86::*; // pushfq let bytes = b"\x9C"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); let instr = decoder.decode(); assert!(instr.is_stack_instruction()); assert_eq!(instr.stack_pointer_increment(), -8);
Gets the FPU status word’s TOP
increment and whether it’s a conditional or unconditional push/pop
and whether TOP
is written.
Examples
use iced_x86::*; // ficomp dword ptr [rax] let bytes = b"\xDA\x18"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); let instr = decoder.decode(); let info = instr.fpu_stack_increment_info(); // It pops the stack once assert_eq!(info.increment(), 1); assert!(!info.conditional()); assert!(info.writes_top());
Instruction encoding, eg. Legacy, 3DNow!, VEX, EVEX, XOP
Examples
use iced_x86::*; // vmovaps xmm1,xmm5 let bytes = b"\xC5\xF8\x28\xCD"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); let instr = decoder.decode(); assert_eq!(instr.encoding(), EncodingKind::VEX);
Gets the CPU or CPUID feature flags
Examples
use iced_x86::*; // vmovaps xmm1,xmm5 // vmovaps xmm10{k3}{z},xmm19 let bytes = b"\xC5\xF8\x28\xCD\x62\x31\x7C\x8B\x28\xD3"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); // vmovaps xmm1,xmm5 let instr = decoder.decode(); let cpuid = instr.cpuid_features(); assert_eq!(cpuid.len(), 1); assert_eq!(cpuid[0], CpuidFeature::AVX); // vmovaps xmm10{k3}{z},xmm19 let instr = decoder.decode(); let cpuid = instr.cpuid_features(); assert_eq!(cpuid.len(), 2); assert_eq!(cpuid[0], CpuidFeature::AVX512VL); assert_eq!(cpuid[1], CpuidFeature::AVX512F);
Control flow info
Examples
use iced_x86::*; // or ecx,esi // ud0 rcx,rsi // call rcx let bytes = b"\x0B\xCE\x48\x0F\xFF\xCE\xFF\xD1"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); // or ecx,esi let instr = decoder.decode(); assert_eq!(instr.flow_control(), FlowControl::Next); // ud0 rcx,rsi let instr = decoder.decode(); assert_eq!(instr.flow_control(), FlowControl::Exception); // call rcx let instr = decoder.decode(); assert_eq!(instr.flow_control(), FlowControl::IndirectCall);
true
if it’s a privileged instruction (all CPL=0 instructions (except VMCALL
) and IOPL instructions IN
, INS
, OUT
, OUTS
, CLI
, STI
)
true
if this is an instruction that implicitly uses the stack pointer (SP
/ESP
/RSP
), eg. CALL
, PUSH
, POP
, RET
, etc.
See also stack_pointer_increment()
Examples
use iced_x86::*; // or ecx,esi // push rax let bytes = b"\x0B\xCE\x50"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); // or ecx,esi let instr = decoder.decode(); assert!(!instr.is_stack_instruction()); // push rax let instr = decoder.decode(); assert!(instr.is_stack_instruction()); assert_eq!(instr.stack_pointer_increment(), -8);
true
if it’s an instruction that saves or restores too many registers (eg. FXRSTOR
, XSAVE
, etc).
All flags that are read by the CPU when executing the instruction.
This method returns a RflagsBits
value. See also rflags_modified()
.
Examples
use iced_x86::*; // adc rsi,rcx // xor rdi,5Ah let bytes = b"\x48\x11\xCE\x48\x83\xF7\x5A"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); // adc rsi,rcx let instr = decoder.decode(); assert_eq!(instr.rflags_read(), RflagsBits::CF); assert_eq!(instr.rflags_written(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF); assert_eq!(instr.rflags_cleared(), RflagsBits::NONE); assert_eq!(instr.rflags_set(), RflagsBits::NONE); assert_eq!(instr.rflags_undefined(), RflagsBits::NONE); assert_eq!(instr.rflags_modified(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF); // xor rdi,5Ah let instr = decoder.decode(); assert_eq!(instr.rflags_read(), RflagsBits::NONE); assert_eq!(instr.rflags_written(), RflagsBits::SF | RflagsBits::ZF | RflagsBits::PF); assert_eq!(instr.rflags_cleared(), RflagsBits::OF | RflagsBits::CF); assert_eq!(instr.rflags_set(), RflagsBits::NONE); assert_eq!(instr.rflags_undefined(), RflagsBits::AF); assert_eq!(instr.rflags_modified(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF);
All flags that are written by the CPU, except those flags that are known to be undefined, always set or always cleared.
This method returns a RflagsBits
value. See also rflags_modified()
.
Examples
use iced_x86::*; // adc rsi,rcx // xor rdi,5Ah let bytes = b"\x48\x11\xCE\x48\x83\xF7\x5A"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); // adc rsi,rcx let instr = decoder.decode(); assert_eq!(instr.rflags_read(), RflagsBits::CF); assert_eq!(instr.rflags_written(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF); assert_eq!(instr.rflags_cleared(), RflagsBits::NONE); assert_eq!(instr.rflags_set(), RflagsBits::NONE); assert_eq!(instr.rflags_undefined(), RflagsBits::NONE); assert_eq!(instr.rflags_modified(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF); // xor rdi,5Ah let instr = decoder.decode(); assert_eq!(instr.rflags_read(), RflagsBits::NONE); assert_eq!(instr.rflags_written(), RflagsBits::SF | RflagsBits::ZF | RflagsBits::PF); assert_eq!(instr.rflags_cleared(), RflagsBits::OF | RflagsBits::CF); assert_eq!(instr.rflags_set(), RflagsBits::NONE); assert_eq!(instr.rflags_undefined(), RflagsBits::AF); assert_eq!(instr.rflags_modified(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF);
All flags that are always cleared by the CPU.
This method returns a RflagsBits
value. See also rflags_modified()
.
Examples
use iced_x86::*; // adc rsi,rcx // xor rdi,5Ah let bytes = b"\x48\x11\xCE\x48\x83\xF7\x5A"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); // adc rsi,rcx let instr = decoder.decode(); assert_eq!(instr.rflags_read(), RflagsBits::CF); assert_eq!(instr.rflags_written(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF); assert_eq!(instr.rflags_cleared(), RflagsBits::NONE); assert_eq!(instr.rflags_set(), RflagsBits::NONE); assert_eq!(instr.rflags_undefined(), RflagsBits::NONE); assert_eq!(instr.rflags_modified(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF); // xor rdi,5Ah let instr = decoder.decode(); assert_eq!(instr.rflags_read(), RflagsBits::NONE); assert_eq!(instr.rflags_written(), RflagsBits::SF | RflagsBits::ZF | RflagsBits::PF); assert_eq!(instr.rflags_cleared(), RflagsBits::OF | RflagsBits::CF); assert_eq!(instr.rflags_set(), RflagsBits::NONE); assert_eq!(instr.rflags_undefined(), RflagsBits::AF); assert_eq!(instr.rflags_modified(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF);
All flags that are always set by the CPU.
This method returns a RflagsBits
value. See also rflags_modified()
.
Examples
use iced_x86::*; // adc rsi,rcx // xor rdi,5Ah let bytes = b"\x48\x11\xCE\x48\x83\xF7\x5A"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); // adc rsi,rcx let instr = decoder.decode(); assert_eq!(instr.rflags_read(), RflagsBits::CF); assert_eq!(instr.rflags_written(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF); assert_eq!(instr.rflags_cleared(), RflagsBits::NONE); assert_eq!(instr.rflags_set(), RflagsBits::NONE); assert_eq!(instr.rflags_undefined(), RflagsBits::NONE); assert_eq!(instr.rflags_modified(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF); // xor rdi,5Ah let instr = decoder.decode(); assert_eq!(instr.rflags_read(), RflagsBits::NONE); assert_eq!(instr.rflags_written(), RflagsBits::SF | RflagsBits::ZF | RflagsBits::PF); assert_eq!(instr.rflags_cleared(), RflagsBits::OF | RflagsBits::CF); assert_eq!(instr.rflags_set(), RflagsBits::NONE); assert_eq!(instr.rflags_undefined(), RflagsBits::AF); assert_eq!(instr.rflags_modified(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF);
All flags that are undefined after executing the instruction.
This method returns a RflagsBits
value. See also rflags_modified()
.
Examples
use iced_x86::*; // adc rsi,rcx // xor rdi,5Ah let bytes = b"\x48\x11\xCE\x48\x83\xF7\x5A"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); // adc rsi,rcx let instr = decoder.decode(); assert_eq!(instr.rflags_read(), RflagsBits::CF); assert_eq!(instr.rflags_written(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF); assert_eq!(instr.rflags_cleared(), RflagsBits::NONE); assert_eq!(instr.rflags_set(), RflagsBits::NONE); assert_eq!(instr.rflags_undefined(), RflagsBits::NONE); assert_eq!(instr.rflags_modified(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF); // xor rdi,5Ah let instr = decoder.decode(); assert_eq!(instr.rflags_read(), RflagsBits::NONE); assert_eq!(instr.rflags_written(), RflagsBits::SF | RflagsBits::ZF | RflagsBits::PF); assert_eq!(instr.rflags_cleared(), RflagsBits::OF | RflagsBits::CF); assert_eq!(instr.rflags_set(), RflagsBits::NONE); assert_eq!(instr.rflags_undefined(), RflagsBits::AF); assert_eq!(instr.rflags_modified(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF);
All flags that are modified by the CPU. This is rflags_written() + rflags_cleared() + rflags_set() + rflags_undefined()
. This method returns a RflagsBits
value.
Examples
use iced_x86::*; // adc rsi,rcx // xor rdi,5Ah let bytes = b"\x48\x11\xCE\x48\x83\xF7\x5A"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); // adc rsi,rcx let instr = decoder.decode(); assert_eq!(instr.rflags_read(), RflagsBits::CF); assert_eq!(instr.rflags_written(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF); assert_eq!(instr.rflags_cleared(), RflagsBits::NONE); assert_eq!(instr.rflags_set(), RflagsBits::NONE); assert_eq!(instr.rflags_undefined(), RflagsBits::NONE); assert_eq!(instr.rflags_modified(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF); // xor rdi,5Ah let instr = decoder.decode(); assert_eq!(instr.rflags_read(), RflagsBits::NONE); assert_eq!(instr.rflags_written(), RflagsBits::SF | RflagsBits::ZF | RflagsBits::PF); assert_eq!(instr.rflags_cleared(), RflagsBits::OF | RflagsBits::CF); assert_eq!(instr.rflags_set(), RflagsBits::NONE); assert_eq!(instr.rflags_undefined(), RflagsBits::AF); assert_eq!(instr.rflags_modified(), RflagsBits::OF | RflagsBits::SF | RflagsBits::ZF | RflagsBits::AF | RflagsBits::CF | RflagsBits::PF);
Checks if it’s a Jcc SHORT
or Jcc NEAR
instruction
Checks if it’s a Jcc NEAR
instruction
Checks if it’s a Jcc SHORT
instruction
Checks if it’s a JMP SHORT
instruction
Checks if it’s a JMP NEAR
instruction
Checks if it’s a JMP SHORT
or a JMP NEAR
instruction
Checks if it’s a JMP FAR
instruction
Checks if it’s a CALL NEAR
instruction
Checks if it’s a CALL FAR
instruction
Checks if it’s a JMP NEAR reg/[mem]
instruction
Checks if it’s a JMP FAR [mem]
instruction
Checks if it’s a CALL NEAR reg/[mem]
instruction
Checks if it’s a CALL FAR [mem]
instruction
Negates the condition code, eg. JE
-> JNE
. Can be used if it’s Jcc
, SETcc
, CMOVcc
, LOOPcc
and does nothing if the instruction doesn’t have a condition code.
Examples
use iced_x86::*; // setbe al let bytes = b"\x0F\x96\xC0"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); let mut instr = decoder.decode(); assert_eq!(instr.code(), Code::Setbe_rm8); assert_eq!(instr.condition_code(), ConditionCode::be); instr.negate_condition_code(); assert_eq!(instr.code(), Code::Seta_rm8); assert_eq!(instr.condition_code(), ConditionCode::a);
Converts Jcc/JMP NEAR
to Jcc/JMP SHORT
and does nothing if it’s not a Jcc/JMP NEAR
instruction
Examples
use iced_x86::*; // jbe near ptr label let bytes = b"\x0F\x86\x5A\xA5\x12\x34"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); let mut instr = decoder.decode(); assert_eq!(instr.code(), Code::Jbe_rel32_64); instr.as_short_branch(); assert_eq!(instr.code(), Code::Jbe_rel8_64); instr.as_short_branch(); assert_eq!(instr.code(), Code::Jbe_rel8_64);
Converts Jcc/JMP SHORT
to Jcc/JMP NEAR
and does nothing if it’s not a Jcc/JMP SHORT
instruction
Examples
use iced_x86::*; // jbe short label let bytes = b"\x76\x5A"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); let mut instr = decoder.decode(); assert_eq!(instr.code(), Code::Jbe_rel8_64); instr.as_near_branch(); assert_eq!(instr.code(), Code::Jbe_rel32_64); instr.as_near_branch(); assert_eq!(instr.code(), Code::Jbe_rel32_64);
Gets the condition code if it’s Jcc
, SETcc
, CMOVcc
, LOOPcc
else ConditionCode::None
is returned
Examples
use iced_x86::*; // setbe al // jl short label // cmovne ecx,esi // nop let bytes = b"\x0F\x96\xC0\x7C\x5A\x0F\x45\xCE\x90"; let mut decoder = Decoder::new(64, bytes, DecoderOptions::NONE); // setbe al let instr = decoder.decode(); assert_eq!(instr.condition_code(), ConditionCode::be); // jl short label let instr = decoder.decode(); assert_eq!(instr.condition_code(), ConditionCode::l); // cmovne ecx,esi let instr = decoder.decode(); assert_eq!(instr.condition_code(), ConditionCode::ne); // nop let instr = decoder.decode(); assert_eq!(instr.condition_code(), ConditionCode::None);
Gets the OpCodeInfo
👎 Deprecated since 1.10.0: This method can panic, use try_with_i32() instead
This method can panic, use try_with_i32() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_u32() instead
This method can panic, use try_with_u32() instead
Creates an instruction with 2 operands
Arguments
code
: Code valueregister1
: op0: Registerregister2
: op1: Register
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_i32() instead
This method can panic, use try_with_reg_i32() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_u32() instead
This method can panic, use try_with_reg_u32() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_i64() instead
This method can panic, use try_with_reg_i64() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_u64() instead
This method can panic, use try_with_reg_u64() instead
Creates an instruction with 2 operands
Arguments
code
: Code valueregister
: op0: Registermemory
: op1: Memory operand
👎 Deprecated since 1.10.0: This method can panic, use try_with_i32_reg() instead
This method can panic, use try_with_i32_reg() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_u32_reg() instead
This method can panic, use try_with_u32_reg() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_i32_i32() instead
This method can panic, use try_with_i32_i32() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_u32_u32() instead
This method can panic, use try_with_u32_u32() instead
Creates an instruction with 2 operands
Arguments
code
: Code valuememory
: op0: Memory operandregister
: op1: Register
pub fn try_with_mem_i32(
code: Code,
memory: MemoryOperand,
immediate: i32
) -> Result<Self, IcedError>
pub fn try_with_mem_i32(
code: Code,
memory: MemoryOperand,
immediate: i32
) -> Result<Self, IcedError>
👎 Deprecated since 1.10.0: This method can panic, use try_with_mem_i32() instead
This method can panic, use try_with_mem_i32() instead
pub fn try_with_mem_u32(
code: Code,
memory: MemoryOperand,
immediate: u32
) -> Result<Self, IcedError>
pub fn try_with_mem_u32(
code: Code,
memory: MemoryOperand,
immediate: u32
) -> Result<Self, IcedError>
👎 Deprecated since 1.10.0: This method can panic, use try_with_mem_u32() instead
This method can panic, use try_with_mem_u32() instead
Creates an instruction with 3 operands
Arguments
code
: Code valueregister1
: op0: Registerregister2
: op1: Registerregister3
: op2: Register
pub fn with_reg_reg_i32(
code: Code,
register1: Register,
register2: Register,
immediate: i32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_reg_i32() instead
pub fn with_reg_reg_i32(
code: Code,
register1: Register,
register2: Register,
immediate: i32
) -> Self
This method can panic, use try_with_reg_reg_i32() instead
pub fn with_reg_reg_u32(
code: Code,
register1: Register,
register2: Register,
immediate: u32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_reg_u32() instead
pub fn with_reg_reg_u32(
code: Code,
register1: Register,
register2: Register,
immediate: u32
) -> Self
This method can panic, use try_with_reg_reg_u32() instead
pub fn with_reg_reg_mem(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand
) -> Self
pub fn with_reg_reg_mem(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand
) -> Self
Creates an instruction with 3 operands
Arguments
code
: Code valueregister1
: op0: Registerregister2
: op1: Registermemory
: op2: Memory operand
pub fn with_reg_i32_i32(
code: Code,
register: Register,
immediate1: i32,
immediate2: i32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_i32_i32() instead
pub fn with_reg_i32_i32(
code: Code,
register: Register,
immediate1: i32,
immediate2: i32
) -> Self
This method can panic, use try_with_reg_i32_i32() instead
pub fn with_reg_u32_u32(
code: Code,
register: Register,
immediate1: u32,
immediate2: u32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_u32_u32() instead
pub fn with_reg_u32_u32(
code: Code,
register: Register,
immediate1: u32,
immediate2: u32
) -> Self
This method can panic, use try_with_reg_u32_u32() instead
pub fn with_reg_mem_reg(
code: Code,
register1: Register,
memory: MemoryOperand,
register2: Register
) -> Self
pub fn with_reg_mem_reg(
code: Code,
register1: Register,
memory: MemoryOperand,
register2: Register
) -> Self
Creates an instruction with 3 operands
Arguments
code
: Code valueregister1
: op0: Registermemory
: op1: Memory operandregister2
: op2: Register
pub fn try_with_reg_mem_i32(
code: Code,
register: Register,
memory: MemoryOperand,
immediate: i32
) -> Result<Self, IcedError>
pub fn try_with_reg_mem_i32(
code: Code,
register: Register,
memory: MemoryOperand,
immediate: i32
) -> Result<Self, IcedError>
pub fn with_reg_mem_i32(
code: Code,
register: Register,
memory: MemoryOperand,
immediate: i32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_mem_i32() instead
pub fn with_reg_mem_i32(
code: Code,
register: Register,
memory: MemoryOperand,
immediate: i32
) -> Self
This method can panic, use try_with_reg_mem_i32() instead
pub fn try_with_reg_mem_u32(
code: Code,
register: Register,
memory: MemoryOperand,
immediate: u32
) -> Result<Self, IcedError>
pub fn try_with_reg_mem_u32(
code: Code,
register: Register,
memory: MemoryOperand,
immediate: u32
) -> Result<Self, IcedError>
pub fn with_reg_mem_u32(
code: Code,
register: Register,
memory: MemoryOperand,
immediate: u32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_mem_u32() instead
pub fn with_reg_mem_u32(
code: Code,
register: Register,
memory: MemoryOperand,
immediate: u32
) -> Self
This method can panic, use try_with_reg_mem_u32() instead
pub fn with_mem_reg_reg(
code: Code,
memory: MemoryOperand,
register1: Register,
register2: Register
) -> Self
pub fn with_mem_reg_reg(
code: Code,
memory: MemoryOperand,
register1: Register,
register2: Register
) -> Self
Creates an instruction with 3 operands
Arguments
code
: Code valuememory
: op0: Memory operandregister1
: op1: Registerregister2
: op2: Register
pub fn try_with_mem_reg_i32(
code: Code,
memory: MemoryOperand,
register: Register,
immediate: i32
) -> Result<Self, IcedError>
pub fn try_with_mem_reg_i32(
code: Code,
memory: MemoryOperand,
register: Register,
immediate: i32
) -> Result<Self, IcedError>
pub fn with_mem_reg_i32(
code: Code,
memory: MemoryOperand,
register: Register,
immediate: i32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_mem_reg_i32() instead
pub fn with_mem_reg_i32(
code: Code,
memory: MemoryOperand,
register: Register,
immediate: i32
) -> Self
This method can panic, use try_with_mem_reg_i32() instead
pub fn try_with_mem_reg_u32(
code: Code,
memory: MemoryOperand,
register: Register,
immediate: u32
) -> Result<Self, IcedError>
pub fn try_with_mem_reg_u32(
code: Code,
memory: MemoryOperand,
register: Register,
immediate: u32
) -> Result<Self, IcedError>
pub fn with_mem_reg_u32(
code: Code,
memory: MemoryOperand,
register: Register,
immediate: u32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_mem_reg_u32() instead
pub fn with_mem_reg_u32(
code: Code,
memory: MemoryOperand,
register: Register,
immediate: u32
) -> Self
This method can panic, use try_with_mem_reg_u32() instead
Creates an instruction with 4 operands
Arguments
code
: Code valueregister1
: op0: Registerregister2
: op1: Registerregister3
: op2: Registerregister4
: op3: Register
pub fn with_reg_reg_reg_i32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
immediate: i32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_reg_reg_i32() instead
pub fn with_reg_reg_reg_i32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
immediate: i32
) -> Self
This method can panic, use try_with_reg_reg_reg_i32() instead
pub fn with_reg_reg_reg_u32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
immediate: u32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_reg_reg_u32() instead
pub fn with_reg_reg_reg_u32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
immediate: u32
) -> Self
This method can panic, use try_with_reg_reg_reg_u32() instead
pub fn with_reg_reg_reg_mem(
code: Code,
register1: Register,
register2: Register,
register3: Register,
memory: MemoryOperand
) -> Self
pub fn with_reg_reg_reg_mem(
code: Code,
register1: Register,
register2: Register,
register3: Register,
memory: MemoryOperand
) -> Self
Creates an instruction with 4 operands
Arguments
code
: Code valueregister1
: op0: Registerregister2
: op1: Registerregister3
: op2: Registermemory
: op3: Memory operand
pub fn with_reg_reg_i32_i32(
code: Code,
register1: Register,
register2: Register,
immediate1: i32,
immediate2: i32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_reg_i32_i32() instead
pub fn with_reg_reg_i32_i32(
code: Code,
register1: Register,
register2: Register,
immediate1: i32,
immediate2: i32
) -> Self
This method can panic, use try_with_reg_reg_i32_i32() instead
pub fn with_reg_reg_u32_u32(
code: Code,
register1: Register,
register2: Register,
immediate1: u32,
immediate2: u32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_reg_u32_u32() instead
pub fn with_reg_reg_u32_u32(
code: Code,
register1: Register,
register2: Register,
immediate1: u32,
immediate2: u32
) -> Self
This method can panic, use try_with_reg_reg_u32_u32() instead
pub fn with_reg_reg_mem_reg(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
register3: Register
) -> Self
pub fn with_reg_reg_mem_reg(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
register3: Register
) -> Self
Creates an instruction with 4 operands
Arguments
code
: Code valueregister1
: op0: Registerregister2
: op1: Registermemory
: op2: Memory operandregister3
: op3: Register
pub fn try_with_reg_reg_mem_i32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
immediate: i32
) -> Result<Self, IcedError>
pub fn try_with_reg_reg_mem_i32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
immediate: i32
) -> Result<Self, IcedError>
pub fn with_reg_reg_mem_i32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
immediate: i32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_reg_mem_i32() instead
pub fn with_reg_reg_mem_i32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
immediate: i32
) -> Self
This method can panic, use try_with_reg_reg_mem_i32() instead
pub fn try_with_reg_reg_mem_u32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
immediate: u32
) -> Result<Self, IcedError>
pub fn try_with_reg_reg_mem_u32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
immediate: u32
) -> Result<Self, IcedError>
pub fn with_reg_reg_mem_u32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
immediate: u32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_reg_mem_u32() instead
pub fn with_reg_reg_mem_u32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
immediate: u32
) -> Self
This method can panic, use try_with_reg_reg_mem_u32() instead
pub fn with_reg_reg_reg_reg_i32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
register4: Register,
immediate: i32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_reg_reg_reg_i32() instead
pub fn with_reg_reg_reg_reg_i32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
register4: Register,
immediate: i32
) -> Self
This method can panic, use try_with_reg_reg_reg_reg_i32() instead
pub fn with_reg_reg_reg_reg_u32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
register4: Register,
immediate: u32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_reg_reg_reg_u32() instead
pub fn with_reg_reg_reg_reg_u32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
register4: Register,
immediate: u32
) -> Self
This method can panic, use try_with_reg_reg_reg_reg_u32() instead
pub fn try_with_reg_reg_reg_mem_i32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
memory: MemoryOperand,
immediate: i32
) -> Result<Self, IcedError>
pub fn try_with_reg_reg_reg_mem_i32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
memory: MemoryOperand,
immediate: i32
) -> Result<Self, IcedError>
pub fn with_reg_reg_reg_mem_i32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
memory: MemoryOperand,
immediate: i32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_reg_reg_mem_i32() instead
pub fn with_reg_reg_reg_mem_i32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
memory: MemoryOperand,
immediate: i32
) -> Self
This method can panic, use try_with_reg_reg_reg_mem_i32() instead
pub fn try_with_reg_reg_reg_mem_u32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
memory: MemoryOperand,
immediate: u32
) -> Result<Self, IcedError>
pub fn try_with_reg_reg_reg_mem_u32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
memory: MemoryOperand,
immediate: u32
) -> Result<Self, IcedError>
pub fn with_reg_reg_reg_mem_u32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
memory: MemoryOperand,
immediate: u32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_reg_reg_mem_u32() instead
pub fn with_reg_reg_reg_mem_u32(
code: Code,
register1: Register,
register2: Register,
register3: Register,
memory: MemoryOperand,
immediate: u32
) -> Self
This method can panic, use try_with_reg_reg_reg_mem_u32() instead
pub fn try_with_reg_reg_mem_reg_i32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
register3: Register,
immediate: i32
) -> Result<Self, IcedError>
pub fn try_with_reg_reg_mem_reg_i32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
register3: Register,
immediate: i32
) -> Result<Self, IcedError>
pub fn with_reg_reg_mem_reg_i32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
register3: Register,
immediate: i32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_reg_mem_reg_i32() instead
pub fn with_reg_reg_mem_reg_i32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
register3: Register,
immediate: i32
) -> Self
This method can panic, use try_with_reg_reg_mem_reg_i32() instead
pub fn try_with_reg_reg_mem_reg_u32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
register3: Register,
immediate: u32
) -> Result<Self, IcedError>
pub fn try_with_reg_reg_mem_reg_u32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
register3: Register,
immediate: u32
) -> Result<Self, IcedError>
pub fn with_reg_reg_mem_reg_u32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
register3: Register,
immediate: u32
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_reg_reg_mem_reg_u32() instead
pub fn with_reg_reg_mem_reg_u32(
code: Code,
register1: Register,
register2: Register,
memory: MemoryOperand,
register3: Register,
immediate: u32
) -> Self
This method can panic, use try_with_reg_reg_mem_reg_u32() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_branch() instead
This method can panic, use try_with_branch() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_far_branch() instead
This method can panic, use try_with_far_branch() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_xbegin() instead
This method can panic, use try_with_xbegin() instead
pub fn with_reg_mem64(
code: Code,
register: Register,
address: u64,
segment_prefix: Register
) -> Self
👎 Deprecated since 1.11.0: Use with_reg_mem() with a MemoryOperand arg instead
pub fn with_reg_mem64(
code: Code,
register: Register,
address: u64,
segment_prefix: Register
) -> Self
Use with_reg_mem() with a MemoryOperand arg instead
Creates an instruction with a 64-bit memory offset as the second operand, eg. mov al,[123456789ABCDEF0]
Arguments
code
: Code valueregister
: Register (AL
,AX
,EAX
,RAX
)address
: 64-bit addresssegment_prefix
: Segment override orRegister::None
pub fn with_mem64_reg(
code: Code,
address: u64,
register: Register,
segment_prefix: Register
) -> Self
👎 Deprecated since 1.11.0: Use with_mem_reg() with a MemoryOperand arg instead
pub fn with_mem64_reg(
code: Code,
address: u64,
register: Register,
segment_prefix: Register
) -> Self
Use with_mem_reg() with a MemoryOperand arg instead
Creates an instruction with a 64-bit memory offset as the first operand, eg. mov [123456789ABCDEF0],al
Arguments
code
: Code valueaddress
: 64-bit addressregister
: Register (AL
,AX
,EAX
,RAX
)segment_prefix
: Segment override orRegister::None
pub fn try_with_outsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_outsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a OUTSB
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
pub fn with_outsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_outsb() instead
pub fn with_outsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
This method can panic, use try_with_outsb() instead
Creates a OUTSB
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_outsb() instead
This method can panic, use try_with_rep_outsb() instead
pub fn try_with_outsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_outsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a OUTSW
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
pub fn with_outsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_outsw() instead
pub fn with_outsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
This method can panic, use try_with_outsw() instead
Creates a OUTSW
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_outsw() instead
This method can panic, use try_with_rep_outsw() instead
pub fn try_with_outsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_outsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a OUTSD
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
pub fn with_outsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_outsd() instead
pub fn with_outsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
This method can panic, use try_with_outsd() instead
Creates a OUTSD
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_outsd() instead
This method can panic, use try_with_rep_outsd() instead
pub fn try_with_lodsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_lodsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a LODSB
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
pub fn with_lodsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_lodsb() instead
pub fn with_lodsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
This method can panic, use try_with_lodsb() instead
Creates a LODSB
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_lodsb() instead
This method can panic, use try_with_rep_lodsb() instead
pub fn try_with_lodsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_lodsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a LODSW
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
pub fn with_lodsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_lodsw() instead
pub fn with_lodsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
This method can panic, use try_with_lodsw() instead
Creates a LODSW
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_lodsw() instead
This method can panic, use try_with_rep_lodsw() instead
pub fn try_with_lodsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_lodsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a LODSD
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
pub fn with_lodsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_lodsd() instead
pub fn with_lodsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
This method can panic, use try_with_lodsd() instead
Creates a LODSD
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_lodsd() instead
This method can panic, use try_with_rep_lodsd() instead
pub fn try_with_lodsq(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_lodsq(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a LODSQ
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
pub fn with_lodsq(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_lodsq() instead
pub fn with_lodsq(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
This method can panic, use try_with_lodsq() instead
Creates a LODSQ
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_lodsq() instead
This method can panic, use try_with_rep_lodsq() instead
pub fn try_with_scasb(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_scasb(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a SCASB
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_scasb() instead
This method can panic, use try_with_scasb() instead
Creates a SCASB
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_repe_scasb() instead
This method can panic, use try_with_repe_scasb() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_repne_scasb() instead
This method can panic, use try_with_repne_scasb() instead
pub fn try_with_scasw(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_scasw(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a SCASW
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_scasw() instead
This method can panic, use try_with_scasw() instead
Creates a SCASW
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_repe_scasw() instead
This method can panic, use try_with_repe_scasw() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_repne_scasw() instead
This method can panic, use try_with_repne_scasw() instead
pub fn try_with_scasd(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_scasd(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a SCASD
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_scasd() instead
This method can panic, use try_with_scasd() instead
Creates a SCASD
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_repe_scasd() instead
This method can panic, use try_with_repe_scasd() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_repne_scasd() instead
This method can panic, use try_with_repne_scasd() instead
pub fn try_with_scasq(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_scasq(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a SCASQ
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_scasq() instead
This method can panic, use try_with_scasq() instead
Creates a SCASQ
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_repe_scasq() instead
This method can panic, use try_with_repe_scasq() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_repne_scasq() instead
This method can panic, use try_with_repne_scasq() instead
Creates a INSB
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_insb() instead
This method can panic, use try_with_insb() instead
Creates a INSB
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_insb() instead
This method can panic, use try_with_rep_insb() instead
Creates a INSW
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_insw() instead
This method can panic, use try_with_insw() instead
Creates a INSW
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_insw() instead
This method can panic, use try_with_rep_insw() instead
Creates a INSD
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_insd() instead
This method can panic, use try_with_insd() instead
Creates a INSD
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_insd() instead
This method can panic, use try_with_rep_insd() instead
pub fn try_with_stosb(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_stosb(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a STOSB
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_stosb() instead
This method can panic, use try_with_stosb() instead
Creates a STOSB
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_stosb() instead
This method can panic, use try_with_rep_stosb() instead
pub fn try_with_stosw(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_stosw(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a STOSW
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_stosw() instead
This method can panic, use try_with_stosw() instead
Creates a STOSW
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_stosw() instead
This method can panic, use try_with_rep_stosw() instead
pub fn try_with_stosd(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_stosd(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a STOSD
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_stosd() instead
This method can panic, use try_with_stosd() instead
Creates a STOSD
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_stosd() instead
This method can panic, use try_with_rep_stosd() instead
pub fn try_with_stosq(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_stosq(
address_size: u32,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a STOSQ
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_stosq() instead
This method can panic, use try_with_stosq() instead
Creates a STOSQ
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_stosq() instead
This method can panic, use try_with_rep_stosq() instead
pub fn try_with_cmpsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_cmpsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a CMPSB
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
pub fn with_cmpsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_cmpsb() instead
pub fn with_cmpsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
This method can panic, use try_with_cmpsb() instead
Creates a CMPSB
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_repe_cmpsb() instead
This method can panic, use try_with_repe_cmpsb() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_repne_cmpsb() instead
This method can panic, use try_with_repne_cmpsb() instead
pub fn try_with_cmpsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_cmpsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a CMPSW
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
pub fn with_cmpsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_cmpsw() instead
pub fn with_cmpsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
This method can panic, use try_with_cmpsw() instead
Creates a CMPSW
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_repe_cmpsw() instead
This method can panic, use try_with_repe_cmpsw() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_repne_cmpsw() instead
This method can panic, use try_with_repne_cmpsw() instead
pub fn try_with_cmpsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_cmpsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a CMPSD
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
pub fn with_cmpsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_cmpsd() instead
pub fn with_cmpsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
This method can panic, use try_with_cmpsd() instead
Creates a CMPSD
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_repe_cmpsd() instead
This method can panic, use try_with_repe_cmpsd() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_repne_cmpsd() instead
This method can panic, use try_with_repne_cmpsd() instead
pub fn try_with_cmpsq(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_cmpsq(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a CMPSQ
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
pub fn with_cmpsq(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_cmpsq() instead
pub fn with_cmpsq(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
This method can panic, use try_with_cmpsq() instead
Creates a CMPSQ
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_repe_cmpsq() instead
This method can panic, use try_with_repe_cmpsq() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_repne_cmpsq() instead
This method can panic, use try_with_repne_cmpsq() instead
pub fn try_with_movsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_movsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a MOVSB
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
pub fn with_movsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_movsb() instead
pub fn with_movsb(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
This method can panic, use try_with_movsb() instead
Creates a MOVSB
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_movsb() instead
This method can panic, use try_with_rep_movsb() instead
pub fn try_with_movsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_movsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a MOVSW
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
pub fn with_movsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_movsw() instead
pub fn with_movsw(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
This method can panic, use try_with_movsw() instead
Creates a MOVSW
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_movsw() instead
This method can panic, use try_with_rep_movsw() instead
pub fn try_with_movsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_movsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a MOVSD
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
pub fn with_movsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_movsd() instead
pub fn with_movsd(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
This method can panic, use try_with_movsd() instead
Creates a MOVSD
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_movsd() instead
This method can panic, use try_with_rep_movsd() instead
pub fn try_with_movsq(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
pub fn try_with_movsq(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Result<Self, IcedError>
Creates a MOVSQ
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
pub fn with_movsq(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_movsq() instead
pub fn with_movsq(
address_size: u32,
segment_prefix: Register,
rep_prefix: RepPrefixKind
) -> Self
This method can panic, use try_with_movsq() instead
Creates a MOVSQ
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64segment_prefix
: Segment override orRegister::None
rep_prefix
: Rep prefix orRepPrefixKind::None
👎 Deprecated since 1.10.0: This method can panic, use try_with_rep_movsq() instead
This method can panic, use try_with_rep_movsq() instead
Creates a MASKMOVQ
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64register1
: Registerregister2
: Registersegment_prefix
: Segment override orRegister::None
pub fn with_maskmovq(
address_size: u32,
register1: Register,
register2: Register,
segment_prefix: Register
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_maskmovq() instead
pub fn with_maskmovq(
address_size: u32,
register1: Register,
register2: Register,
segment_prefix: Register
) -> Self
This method can panic, use try_with_maskmovq() instead
Creates a MASKMOVQ
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64register1
: Registerregister2
: Registersegment_prefix
: Segment override orRegister::None
Creates a MASKMOVDQU
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64register1
: Registerregister2
: Registersegment_prefix
: Segment override orRegister::None
pub fn with_maskmovdqu(
address_size: u32,
register1: Register,
register2: Register,
segment_prefix: Register
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_maskmovdqu() instead
pub fn with_maskmovdqu(
address_size: u32,
register1: Register,
register2: Register,
segment_prefix: Register
) -> Self
This method can panic, use try_with_maskmovdqu() instead
Creates a MASKMOVDQU
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64register1
: Registerregister2
: Registersegment_prefix
: Segment override orRegister::None
Creates a VMASKMOVDQU
instruction
Errors
Fails if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64register1
: Registerregister2
: Registersegment_prefix
: Segment override orRegister::None
pub fn with_vmaskmovdqu(
address_size: u32,
register1: Register,
register2: Register,
segment_prefix: Register
) -> Self
👎 Deprecated since 1.10.0: This method can panic, use try_with_vmaskmovdqu() instead
pub fn with_vmaskmovdqu(
address_size: u32,
register1: Register,
register2: Register,
segment_prefix: Register
) -> Self
This method can panic, use try_with_vmaskmovdqu() instead
Creates a VMASKMOVDQU
instruction
Panics
Panics if address_size
is not one of 16, 32, 64.
Arguments
address_size
: 16, 32, or 64register1
: Registerregister2
: Registersegment_prefix
: Segment override orRegister::None
Creates a db
/.byte
asm directive
Arguments
b0
: Byte 0b1
: Byte 1b2
: Byte 2b3
: Byte 3b4
: Byte 4b5
: Byte 5
Creates a db
/.byte
asm directive
Arguments
b0
: Byte 0b1
: Byte 1b2
: Byte 2b3
: Byte 3b4
: Byte 4b5
: Byte 5b6
: Byte 6
Creates a db
/.byte
asm directive
Arguments
b0
: Byte 0b1
: Byte 1b2
: Byte 2b3
: Byte 3b4
: Byte 4b5
: Byte 5b6
: Byte 6b7
: Byte 7
Creates a db
/.byte
asm directive
Arguments
b0
: Byte 0b1
: Byte 1b2
: Byte 2b3
: Byte 3b4
: Byte 4b5
: Byte 5b6
: Byte 6b7
: Byte 7b8
: Byte 8
Creates a db
/.byte
asm directive
Arguments
b0
: Byte 0b1
: Byte 1b2
: Byte 2b3
: Byte 3b4
: Byte 4b5
: Byte 5b6
: Byte 6b7
: Byte 7b8
: Byte 8b9
: Byte 9
Creates a db
/.byte
asm directive
Arguments
b0
: Byte 0b1
: Byte 1b2
: Byte 2b3
: Byte 3b4
: Byte 4b5
: Byte 5b6
: Byte 6b7
: Byte 7b8
: Byte 8b9
: Byte 9b10
: Byte 10
Creates a db
/.byte
asm directive
Arguments
b0
: Byte 0b1
: Byte 1b2
: Byte 2b3
: Byte 3b4
: Byte 4b5
: Byte 5b6
: Byte 6b7
: Byte 7b8
: Byte 8b9
: Byte 9b10
: Byte 10b11
: Byte 11
Creates a db
/.byte
asm directive
Arguments
b0
: Byte 0b1
: Byte 1b2
: Byte 2b3
: Byte 3b4
: Byte 4b5
: Byte 5b6
: Byte 6b7
: Byte 7b8
: Byte 8b9
: Byte 9b10
: Byte 10b11
: Byte 11b12
: Byte 12
Creates a db
/.byte
asm directive
Arguments
b0
: Byte 0b1
: Byte 1b2
: Byte 2b3
: Byte 3b4
: Byte 4b5
: Byte 5b6
: Byte 6b7
: Byte 7b8
: Byte 8b9
: Byte 9b10
: Byte 10b11
: Byte 11b12
: Byte 12b13
: Byte 13
Creates a db
/.byte
asm directive
Arguments
b0
: Byte 0b1
: Byte 1b2
: Byte 2b3
: Byte 3b4
: Byte 4b5
: Byte 5b6
: Byte 6b7
: Byte 7b8
: Byte 8b9
: Byte 9b10
: Byte 10b11
: Byte 11b12
: Byte 12b13
: Byte 13b14
: Byte 14
Creates a db
/.byte
asm directive
Arguments
b0
: Byte 0b1
: Byte 1b2
: Byte 2b3
: Byte 3b4
: Byte 4b5
: Byte 5b6
: Byte 6b7
: Byte 7b8
: Byte 8b9
: Byte 9b10
: Byte 10b11
: Byte 11b12
: Byte 12b13
: Byte 13b14
: Byte 14b15
: Byte 15
👎 Deprecated since 1.10.0: This method can panic, use try_with_declare_byte() instead
This method can panic, use try_with_declare_byte() instead
Creates a dw
/.word
asm directive
Arguments
w0
: Word 0w1
: Word 1w2
: Word 2w3
: Word 3w4
: Word 4w5
: Word 5
Creates a dw
/.word
asm directive
Arguments
w0
: Word 0w1
: Word 1w2
: Word 2w3
: Word 3w4
: Word 4w5
: Word 5w6
: Word 6
Creates a dw
/.word
asm directive
Arguments
w0
: Word 0w1
: Word 1w2
: Word 2w3
: Word 3w4
: Word 4w5
: Word 5w6
: Word 6w7
: Word 7
👎 Deprecated since 1.10.0: This method can panic, use try_with_declare_word_slice_u8() instead
This method can panic, use try_with_declare_word_slice_u8() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_declare_word() instead
This method can panic, use try_with_declare_word() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_declare_dword_slice_u8() instead
This method can panic, use try_with_declare_dword_slice_u8() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_declare_dword() instead
This method can panic, use try_with_declare_dword() instead
👎 Deprecated since 1.10.0: This method can panic, use try_with_declare_qword_slice_u8() instead
This method can panic, use try_with_declare_qword_slice_u8() instead
Trait Implementations
Returns the “default value” for a type. Read more
Auto Trait Implementations
impl RefUnwindSafe for Instruction
impl Send for Instruction
impl Sync for Instruction
impl Unpin for Instruction
impl UnwindSafe for Instruction
Blanket Implementations
Mutably borrows from an owned value. Read more