У меня есть адрес моего массива (переданный как указатель на функцию) в регистре esi. Как я могу получить доступ к определенной ячейке массива? то есть:Доступ к массиву в MASM
my_array[a + b * c]
, где c
постоянна.
У меня есть адрес моего массива (переданный как указатель на функцию) в регистре esi. Как я могу получить доступ к определенной ячейке массива? то есть:Доступ к массиву в MASM
my_array[a + b * c]
, где c
постоянна.
Вы можете сразу переместить его следующим образом также:
MOV EDX, [ESI + 4*EBX]
Для статического массива, вы можете на самом деле используют сразу два регистра для индексации, но используя базовый адрес массива как 32-битное смещение в the addressing mode. Это работает только для независимого от кода кода.
MOV EDX, my_array[ECX + 4*EBX]
Вместо того чтобы использовать два различных регистров, вы можете использовать один и тот же регистр дважды, чтобы имитировать масштабный коэффициент 3 (ebx + ebx*2
), 5 или 9.
ссылка мертва. – ApproachingDarknessFish
Исправлена ссылка. –