Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

«Invalid instruction operands» при использовании ассемблера из VS2010

7
07 марта 2011 года
@pixo $oft
3.4K / / 20.09.2006
Компилирую код,содержащий следующие строки
 
Код:
dwBytes DD 0
cString DB "………"
cbString Equ $-cString

XOr EBX,EBX ;если что

Invoke WriteFile,hStdOut,Addr cString,cbString,Addr dwBytes,EBX
sm]Invoke WriteFile,hStdOut,Addr cString,DWord Ptr cbString,Addr dwBytes,EBX[/Code=Asm]и всё без толку

Что самое интересное,ML из пакета VS6 всё нормально компилирует.В чём дело,как справиться с проблемой?(использовать старый ML не предлагать)

[COLOR="#c0c0c0"](думал разместить в общих вопросах,ну да ладно,пусть будет тут.Если нет,то перенесите)[/COLOR]
260
07 марта 2011 года
Ramon
1.1K / / 16.08.2003
DWORD PTR как бы не катит ибо WriteFile. Оно небось его еще не вычислило. В Масме есть вещи аля @SizeStr и иже с ним.

PS: Просветите меня безграмотного нахр*на писать такой код на ассемблере?
7
07 марта 2011 года
@pixo $oft
3.4K / / 20.09.2006
Цитата: Ramon
DWORD PTR как бы не катит ибо WriteFile

Ну я видел описание функции.Что не так-то?Ptr убрать?
Напоминаю,что в ML версии 6(или 5,не помню уж) всё работало безо всяких извращений

Цитата: Ramon
Оно небось его еще не вычислило

Кто «оно»?Кого не вычислило?Прототип описан в инклуде,следовательно,данные должны приводиться к этому типу

Цитата: Ramon
В Масме есть вещи аля @SizeStr и иже с ним

Что это?Не припомню такого…

Цитата: Ramon
PS: Просветите меня безграмотного нахр*на писать такой код на ассемблере?

Тихо-тихо,не нервничай:) А какой код надо на нём писать?

260
07 марта 2011 года
Ramon
1.1K / / 16.08.2003
DWORD nNumberOfBytesToWrite как бэ не указатель.
Ассемблер значение выражения "cbString Equ $-cString" по идее должен получить при первом проходе, а там кто его знает.
@SizeStr

Никакой код на нем писать не нужно. 98% всего, что надо покрывается C/C++ выше крыши. Вы же не мультимедиа кодек пишите или мощную считалку, да и там писанина на ассемблере особенно не поможет, сначала профайлер будет гонятся и только потом, в случае крайней необходимости, будут применены ассемблерные вставки или вызов аццких ассемблерных процедур.
7
07 марта 2011 года
@pixo $oft
3.4K / / 20.09.2006
Цитата: Ramon
DWORD nNumberOfBytesToWrite как бэ не указатель

Писал просто DWord.Та же фигня+ещё одна ошибка.А за @SizeStr спасибо.Может,и знал,но из виду упустил

Цитата: Ramon
Никакой код на нем писать не нужно. 98% всего, что надо покрывается C/C++ выше крыши

Дык это если знать эти самые C/C++…

Цитата: Ramon
Вы же не мультимедиа кодек пишите или мощную считалку

А ты почём знаешь?;)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог