1.
From the same article, below your quoted sentence.
The LEA instruction uses hardwired address generation tables that makes multiplying by a select set of numbers very fast (for example, multiplying by 3, 5, and 9). Twisted, but true.That means
LEA
instruction is faster than
MUL
only for a small set of multipliers's value.
2.
George_George wrote:
The TEB's linear address can be found at offset 0x18 in the TEB." -- what means linear address? Something like array, which elements are put next to each other?
I think it means direct address, i.e.
mov eax,dword ptr fs:[00000018h]
load
eax
with the address of
TEB
, hence the following instruction
mov eax,dword ptr [eax+24h]
loads
eax
with value found at offset 0x24 int the
TEB
(the Thread
ID
).
George_George wrote:
What means non-linear address?
I suppose it is indirect addressing (via
FS
register in this context).
:)