| Date | Fri, 21 Apr 2017 16:55:33 +0200 | From | Borislav Petkov <> | Subject | Re: [v6 PATCH 11/21] insn/eval: Incorporate segment base in address computation |
| |
On Tue, Mar 07, 2017 at 04:32:44PM -0800, Ricardo Neri wrote: > insn_get_addr_ref returns the effective address as defined by the
Please end function names with parentheses.
> section 3.7.5.1 Vol 1 of the Intel 64 and IA-32 Architectures Software > Developer's Manual. In order to compute the linear address, we must add > to the effective address the segment base address as set in the segment > descriptor. Furthermore, the segment descriptor to use depends on the > register that is used as the base of the effective address. The effective > base address varies depending on whether the operand is a register or a > memory address and on whether a SiB byte is used. > > In most cases, the segment base address will be 0 if the USER_DS/USER32_DS > segment is used or if segmentation is not used. However, the base address > is not necessarily zero if a user programs defines its own segments. This > is possible by using a local descriptor table. > > Since the effective address is a signed quantity, the unsigned segment > base address saved in a separate variable and added to the final effective
".. is saved..."
> address. >
-- Regards/Gruss, Boris.
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) --
|