Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Invalid combination of opcode and operands 
:(
    Опции темы
Bogdan1024
  Дата 19.4.2007, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: нет
Всего: 13



Пишу это в паскале
Код

var b:array[0..3] of byte;
var a:byte;
begin
  b[0] := 1;
  b[1] := 2;
  asm
    mov al, b[0]
    add al, b[1]
    mov a, al
  end;
  writeln(a);
end.

Не компилируется, пишет сабж. Почему? Ведь и там и там байт!


--------------------
user posted image
PM MAIL   Вверх
cardinal
Дата 19.4.2007, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 1
Всего: 99



А так проходит
Код

mov al, b

Точно не помню но может быть ошибка в квадратных скобках, для ассемблера можеть быть другой синтаксис...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Bogdan1024
Дата 19.4.2007, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: нет
Всего: 13



Не, так тоже не проходит. В дэлфи, кстати, говорит, что у операндов разный размер (operand size doesn't match). Я ax подставлял, тоже не подходит.


--------------------
user posted image
PM MAIL   Вверх
anwe
Дата 19.4.2007, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 8
Всего: 23



Bogdan1024, пиши
Код

mov al, byte ptr b[0]

Надо явно указывать, ведь по сути b - это массив из 4-х байт то есть двойное слово. Это можно проверить так:
Код

mov eax, b

Ошибку не выдает. smile 
PM MAIL   Вверх
cardinal
Дата 19.4.2007, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 1
Всего: 99



Цитата(cardinal @  19.4.2007,  19:37 Найти цитируемый пост)
для ассемблера можеть быть другой синтаксис...

Код

mov al, byte ptr b[0]

Ну в прицнипе это я и имел в виду. Открой любую книгу, там будет пример с обращением к массиву...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Bogdan1024
Дата 20.4.2007, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: нет
Всего: 13



Спасибо! А можно ещё оказывается так:
Код

mov si, offset k
mov ax, [si+что-то там]



--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0887 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.