Спаривание команды со смещением по адресу - 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
Объяснение кода листинга программы
- В начале кода задается значение переменной
n
равное 10. - Затем происходит байтовое сложение регистра rsi и памяти по адресу rcx+n*256.
- Результат этого сложения сохраняется в регистре rsi.
- Затем происходит побитовое исключающее или (xor) между регистрами rbx и rcx.
- Результат этого побитового исключающего или сохраняется в регистре rbx.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д