На языке masm DWORD PTR - это переопределение указателя, то есть то, что вы обычно называете приведением.По сути, это означает, что «считать адрес XXXXXXXX указателем DWORD».
masm фактически печатает свои элементы данных.Таким образом, если XXXXXXXX был ранее определен как
XXXXXXXX DWORD SomeAddress ; Presumably a function entry point.
, то достаточно
CALL XXXXXXXX
, и он сгенерирует тот же код, что и
CALL DWORD PTR XXXXXXXX
OTOH, если для некоторыхпричина, XXXXXXXX вместо этого были определены как
XXXXXXXX WORD ?
WORD ?
, тогда единственный способ заставить MASM собрать вызов XXXXXXXX без генерирования ошибки mams был бы
CALL DWORD PTR XXXXXXXX
Квадратные скобки []в этом случае ничего не приносите на тарелку, кстати.Для некоторых других ассемблеров они указывают на косвенность.В приведенных выше примерах masm не требует их.В других контекстах (выражения base + index) они используются для заключения в регистры индекса и / или значений.
Oh, а между прочим:
CALL DWORD [XXXXXXXX]
- сегодня необычный синтаксис masm (per masm 6 книг документации и их примеры) и, возможно, допуск на совместимость, соответствующий некоторому старому синтаксису masm.