cmp %eax,0x80498d4(,%ebx,4)
Я понимаю, что регистр eax сравнивается с чем-то, но я не знаю, с чем сравнивается eax.Что происходит в этой инструкции x86?
Другими словами, что делает
x80498d4 (,%ebx,4)
означает?
cmp %eax,0x80498d4(,%ebx,4)
Я понимаю, что регистр eax сравнивается с чем-то, но я не знаю, с чем сравнивается eax.Что происходит в этой инструкции x86?
Другими словами, что делает
x80498d4 (,%ebx,4)
означает?
Он сравнивает EAX с содержанием адреса [0x80498d4 + (4 * EBX)]
Источник: http://cs.nyu.edu/courses/spring12/CSCI-GA.1144-001/addressing_modes.pdf
Он принимает значение EBX, множественная на 4, добавить постоянную 0x80498d4 к нему. Это значение будет интерпретироваться как адрес, а содержимое этого значения будет сравниваться со значением регистра eax. И, наконец, инструкция cmp установит регистр EEFLAG.
Я считаю, что это будет 'cmp [ebx * 4 + 80498d4h], eax' в синтаксисе Intel. IOW, он сравнивает то, что находится по адресу в скобках, с тем, что находится в 'eax'. –