Спаривание команды со смещением по адресу - Assembler

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Пытаюсь разобраться в механизме спаривания команд и хочу узнать, смогут ли спариться следующие команды:
lea RSI, [RCX + 256 * N] ; RSI = адрес конца массива D
xor RBX, RCX
С одной стороны команды удовлетворяют всем правилам спаривания и дожны спариться, но смущает вычисление адреса со смещением. Не помешает ли это? Спасибо!

Решение задачи: «Спаривание команды со смещением по адресу»

textual
Листинг программы
n=10
    lea rsi, [rcx+n*256]
00007FF612671010  lea         rsi,[rcx+0A00h]  
    xor rbx, rcx
00007FF612671017  xor         rbx,rcx

Объяснение кода листинга программы

  1. В начале кода задается значение переменной n равное 10.
  2. Затем происходит байтовое сложение регистра rsi и памяти по адресу rcx+n*256.
  3. Результат этого сложения сохраняется в регистре rsi.
  4. Затем происходит побитовое исключающее или (xor) между регистрами rbx и rcx.
  5. Результат этого побитового исключающего или сохраняется в регистре rbx.

Оцени полезность:

9   голосов , оценка 4.222 из 5