The values of the segment registers are kept as address ranges. More...
#include <segregs.hpp>
Inherits range_t.
Public Attributes | |
sel_t | val |
segment register value | |
uchar | tag |
Segment register range tags | |
![]() | |
ea_t | start_ea |
start_ea included | |
ea_t | end_ea |
end_ea excluded | |
Additional Inherited Members | |
![]() | |
range_t (void) | |
Constructor. | |
range_t (ea_t ea1, ea_t ea2) | |
Constructor. | |
int | compare (const range_t &r) const |
Compare two range_t instances, based on the start_ea. | |
bool | operator== (const range_t &r) const |
Compare two range_t's with '=='. | |
bool | operator!= (const range_t &r) const |
Compare two range_t's with '!='. | |
bool | operator> (const range_t &r) const |
Compare two range_t's with '<'. | |
bool | operator< (const range_t &r) const |
Compare two range_t's with '>'. | |
bool | contains (ea_t ea) const |
Is 'ea' in the address range? | |
bool | contains (const range_t &r) const |
Is every ea in 'r' also in this range_t? | |
bool | overlaps (const range_t &r) const |
Is there an ea in 'r' that is also in this range_t? | |
void | clear (void) |
Set start_ea, end_ea to 0. | |
bool | empty (void) const |
Is the size of the range_t <= 0? | |
asize_t | size (void) const |
Get end_ea - start_ea. | |
void | intersect (const range_t &r) |
Assign the range_t to the intersection between the range_t and 'r'. | |
void | extend (ea_t ea) |
Ensure that the range_t includes 'ea'. | |
size_t | print (char *buf, size_t bufsize) const |
Print the range_t. More... | |
Detailed Description
The values of the segment registers are kept as address ranges.
The segment register does not change its value within one address range. The processor module finds segment register change points and splits sreg_range_t ranges so that a new sreg_range_t range is started at each segment register change point. The kernel deletes sreg_range_t if an instruction is converted back to unexplored bytes.
So, we have information about a segment register by keeping information about the range of addresses where segment register does not change the value.
Note that each segment has information about the default values of the segment registers. This information is used if the value of a segment register could not be determined.
The documentation for this struct was generated from the following file:
Generated by