LINUX.ORG.RU

asm инструкция


0

0

x86_64. Допустим у меня в регистре rax число 8.

Конструкция lea 0xffffffffffffffff(%rax),%ecx

загрузит в ecx число 7. Видимо как 8 + 0xffffffffffffffff = 7... Т.е конструкция заставляет загрузить в ecx адрес для адреса "7" Тогда почему он загружает 7, а не адрес 7 ?

anonymous

> Т.е конструкция заставляет загрузить в ecx адрес для адреса "7" 
> Тогда почему он загружает 7, а не адрес 7 ?

lea = Load Effective Address
в данном случае эффективный адрес формируется как BASE + знаково дополненный до 64-х разрядов Disp32 (0xFFFFFFFF)
BASE = RAX
-1 это только Disp32

rei3er
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.