Вопрос

Используя objdump для понимания двоичного файла, я понимаю, что недостаточно свободно разбираюсь в синтаксисе ASM.Что означает следующее понятие?

xor    %al,-0x1(%edx,%ecx,1)

И пока вы этим занимаетесь, что мне следует искать, чтобы найти документы о таких понятиях?

Это было полезно?

Решение

Круглые скобки представляют собой смещения памяти:

-0x1(%edx,%ecx,1) (синтаксис AT&T) равен [edx+ecx*1-1] (синтаксис Intel)

Краткое руководство по Синтаксис сборки AT&T (согласно вашему запросу).

Другие советы

Это эксклюзивный вариант или с содержимым младшего байта (%al) регистра «a» и содержимым памяти по адресу, которое представляет собой сумму 32-битных регистров «d» (%edx), «c». ' умноженный на 1 (%ecx,1) и -1.Результат записывается обратно в %al.В С

al ^= (char*)(edx+ecx*1 - 1);

Вы можете поискать подобные вещи на куча песка или в документации Intel/AMD.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top