Я читал экзамен по практике для одного из моих классов. Архитектура для вопроса - x86. Вопрос:Возможная ошибка с этим примером сборки x86
Which of the following lines of pseudo C code performs the same operation as the
assembly statement
lea 0xffffffff(%esi), %eax ?
Варианты:
a) *(esi-1) = eax
b) esi = eax + 0xffffffff
c) eax = esi - 1
d) eax = *(esi -1)
Потому что это «Леа» операции, я чувствую, что ответ должен быть (с), но, видимо, ключевой ответ говорит (а). Это опечатка? Или у меня плохое понимание. Спасибо.
это не может быть сделано в C, так как инструкция 'lea' переносит результат в регистр, а не кусок памяти. – Hawken
Я понимаю, что это не физически возможно в C, но вопрос в основном запрашивает код sudo C. Я сделал разъяснение, приведенное выше. – de1337ed
Ах, извините, я довольно новичок в сборке, пытаясь сохранить свой ум острым :) – Hawken