masm, lgdt и error A2024.
От: IRabinovich  
Дата: 09.11.14 20:10
Оценка:
Всем доброго времени суток!

Со странным поведением masm (VS 2010) столкнулся я только что. Проинтегрировал .asm в проект VS 2010 и пишу тестовый файл с функцией:


.DATA
 tmp db 1024 dup(0)

.CODE

test_func PROC

lgdt buffer

ret

test_func ENDP

END


Пор всем мануалам по ассемблеру такое должно транслироваться в бинарный код на раз. Однако masm выдаёт мне ошибку A2024:invalid operand size for instruction. Используется 64-разрядная сборка проекта, запуск трансляции идёт через ml64.exe, я проверял. Прогнал инструкцию lgdt через встроенный ассемблер на 32 разрядной сборке- всё путём. Попробовал использовать что-то типа "lgdt qword ptr buffer"- также не помогло. Может, кто знает, в чём тут дело и чего от меня хочет ml64?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.