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

Ваш аккаунт

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

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

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

Ассемблерная вставка в С++

68K
06 марта 2011 года
Quble
1 / / 06.03.2011
Необходимо написать небольшую ассемблерную вставку в языке С++. Пишу в MS Visual Studio 2008. Получил дизассемблированый код, оформил, но выдает ошибку на даной строке:

mov DWORD PTR vec[EBP+ECX*4], EAX
error C2404: 'ECX' : illegal register in 'first operand'

Определил что в скобках можна передать лишь 1 регистр (тоесть со 2м будет ошибка каким бы он не был).
Посоветуйте как решить проблему, пожалуйста.
7
06 марта 2011 года
@pixo $oft
3.4K / / 20.09.2006
Сами-то как думаете?Очевидно,сложить значения нужного адреса в какой-то регистр(если вдруг он нужен,делать Push/Pop по краям)
А складывать можно только базовые регистры с индексными(EBP/EBX+EDI/ESI).Вроде что-то ещё,но не могу вспомнить,а книжку открывать лень (=

А вообще странно получается,знаете ли.Написал аналогичную строку,скомпилировал и всё без ошибок.Не знаю,в чём там дело
Кстати,DWord Ptr уберите,он ни к чему–EAX же двусловный,этим определяется размер 1го операнда.Ну и может статься,что у вас там ЕСХ написано,а не ECX:)
260
06 марта 2011 года
Ramon
1.1K / / 16.08.2003
Цитата: Quble
Посоветуйте как решить проблему, пожалуйста.



Не использовать ассемблер так как он вам не нужен.

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