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

Ваш аккаунт

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

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

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

Как скомпилить ассемблерную-прогу с инструкциями SETcc?

388
25 ноября 2004 года
warezhka
129 / / 11.10.2004
Народ есть проблема! Мне хочется использовать в программе на ассемблере команды SETcc - установка байта по условию (она вроде бы только для процессоров 386 и i486). При компиляции (юзаю TASM 5.0) моей проги пишется:
 
Код:
**Error** i.ASM(19) Illegal instruction for currently selected processor(s)

Как можно избавиться от этой хрени и сделать экзешник?

Кстати, может кто подскажет, какой самый простой способ выполнить операции аналогичные командам SETcc?
Например, какой код лучше всего написать, чтобы записать в регистр AX (или AL, AH)
- 1, если BX равен 5
- 0, если BX не равен 5
260
25 ноября 2004 года
Ramon
1.1K / / 16.08.2003
Цитата:
Originally posted by warezhka
Народ есть проблема! Мне хочется использовать в программе на ассемблере команды SETcc - установка байта по условию (она вроде бы только для процессоров 386 и i486). При компиляции (юзаю TASM 5.0) моей проги пишется:
 
Код:
**Error** i.ASM(19) Illegal instruction for currently selected processor(s)

Как можно избавиться от этой хрени и сделать экзешник?

Кстати, может кто подскажет, какой самый простой способ выполнить операции аналогичные командам SETcc?
Например, какой код лучше всего написать, чтобы записать в регистр AX (или AL, AH)
- 1, если BX равен 5
- 0, если BX не равен 5



Это не команда, а команды, где cc - суфикс, описывающий условие (z, nz, e, ne и тд)
Команды SETcc доступны с i386, напиши участок кода как ты ее используешь и директиву определения типа процессора поставил?(.386, .486 и тд)

И чем тебе не нравиться конструкция типа:

xor ax,ax
cmp bx,5
jne @next
inc ax
@next:

Ps: Это так на вскидку, долго не думая

388
25 ноября 2004 года
warezhka
129 / / 11.10.2004
Цитата:
Originally posted by Ramon


Это не команда, а команды, где cc - суфикс, описывающий условие (z, nz, e, ne и тд)
Команды SETcc доступны с i386, напиши участок кода как ты ее используешь и директиву определения типа процессора поставил?(.386, .486 и тд)

И чем тебе не нравиться конструкция типа:

xor ax,ax
cmp bx,5
jne @next
inc ax
@next:

Ps: Это так на вскидку, долго не думая



То что SETcc - это командЫ - это я и так знаю...
Приведенная конструкция не нравиться тем, что больно громоздкая, а я ваще пишу не прогу на ассемблере а компилятор Pascal->Assembler...
А вот директиву .386 - забыл ваще :P

Спасибо большое )))

260
26 ноября 2004 года
Ramon
1.1K / / 16.08.2003
Цитата:
Originally posted by warezhka


То что SETcc - это командЫ - это я и так знаю...
Приведенная конструкция не нравиться тем, что больно громоздкая, а я ваще пишу не прогу на ассемблере а компилятор Pascal->Assembler...
А вот директиву .386 - забыл ваще :P

Спасибо большое )))


Поправка это не компилятор, а транслятор.
И "больно громоздкая", ну ну на 2 байта, зато работает с 16 битами, а не с 8 как SETcc.

1.7K
29 ноября 2004 года
Envel
206 / / 29.11.2004
Цитата:
Originally posted by warezhka
Народ есть проблема! Мне хочется использовать в программе на ассемблере команды SETcc - установка байта по условию (она вроде бы только для процессоров 386 и i486). При компиляции (юзаю TASM 5.0) моей проги пишется:
 
Код:
**Error** i.ASM(19) Illegal instruction for currently selected processor(s)

Как можно избавиться от этой хрени и сделать экзешник?

Кстати, может кто подскажет, какой самый простой способ выполнить операции аналогичные командам SETcc?
Например, какой код лучше всего написать, чтобы записать в регистр AX (или AL, AH)
- 1, если BX равен 5
- 0, если BX не равен 5



Используй FASM или NASM, TASM уже устарел. Первые два бесплатные, да и поддерживают кучу всего, подойдут для написания от ОС до проги под linux/windows и др. ОС. Брать тут:
http://sourceforge.net

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