Нужна расшифровка, плиз.

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
T@uRuS
Сообщения: 3
Зарегистрирован: 24 ноя 2007, 19:51

В программе Ассемблера нашел вот такие строки:

mov eax,12345678 ; вот эта строка яснее снега
х = dword ptr $-4 ; А вот что означает эта строка?

ptr $-4 ; А особенно вот эта запись.

Помогите мне, если есть такая возможность, буду признателен.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):х = dword ptr $-4
Если вы встретили такую строчку, значит это не ассемблер, или хреновый супермегамакроассемблер
Расшифровываю:

Код: Выделить всё

something dd 0
    @thiscode:
mov eax, [@thiscode - 4]
mov x, eax
запись $-4 означает ссылку к данным, смещение которых на 4 байта ниже чем там, где находится команда выполняющая запрос
на примере этого кода фактически в переменную Х попадет значение из переменной something. Поскольку команда mov не может пересылать напрямую из ячейки памяти в другую ячейку, то задействуется любой из регистров, т.е. команды mov mem32, mem32 не существует.
It's a long way to the top if you wanna rock'n'roll
Ответить