Struct yaxpeax_x86::MemoryAccessSize
source · pub struct MemoryAccessSize { /* private fields */ }
Implementations§
source§impl MemoryAccessSize
impl MemoryAccessSize
sourcepub fn bytes_size(&self) -> Option<u8>
pub fn bytes_size(&self) -> Option<u8>
return the number of bytes referenced by this memory access.
if the number of bytes cannot be confidently known by the instruction in isolation (as is
the case for xsave
/xrstor
-style “operate on all processor state” instructions), this
function will return None
.
sourcepub fn size_name(&self) -> &'static str
pub fn size_name(&self) -> &'static str
a human-friendly label for the number of bytes this memory access references.
there are some differences from size names that may be expected elsewhere; yaxpeax-x86
prefers to use consistent names for a width even if the way those bytes are used varies.
the sizes yaxpeax-x86
knows are as follows:
| size (bytes) | name |
|–––––––|————|
| 1 | byte
|
| 2 | word
|
| 4 | dword
|
| 6 | far
|
| 8 | qword
|
| 10 | mword
|
| 16 | xmmword
|
| 32 | ymmword
|
| 64 | zmmword
|
| variable | ptr
|
“mword” refers to an mmx-sized access - 80 bits, or 10 bytes. mword
is also used for
64-bit far calls, because they reference a contiguous ten bytes; two bytes of segment
selector and eight bytes of address.
“variable” accesses access a number of bytes dependent on the physical processor and its
operating mode. this is particularly relevant for xsave
/xrstor
-style instructions.