Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2013, 16:26   #11
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

ну, да может не выполнять поэтому нужно выполнять CPUID.
f.hump вне форума Ответить с цитированием
Старый 14.07.2013, 18:00   #12
Dmitry_B
Пользователь
 
Регистрация: 29.03.2009
Сообщений: 83
По умолчанию

Цитата:
Сообщение от vadimych Посмотреть сообщение
Dmitry_B, Вы бы код свой показали на всякий случай.
Да не писал я пока никакого осмысленного кода. Просто попытался проверить, ассемблируются ли инструкции с 64-х и 128 - битными регистрами. Появилась куча вопросов, часть которых - наиболее важные - я задал. Ответа, к сожалению, нет. Очень этому удивлён. Получается: угадал, как записывается имя регистра - хорошо, а нет - угадывай дальше.
То же и с инструкциями процессора? Почему в этом примере MOVQ XMM0, XMM1 допустимо, а MOVDQA XMM0, XMM1 - нет? Ведь регистры XMM 128 - битные:
.686P
.XMM
.model flat, stdcall
option casemap :none ; case sensitive

.code
start:
MOVQ XMM0, XMM1
nop

end start
Dmitry_B вне форума Ответить с цитированием
Старый 14.07.2013, 20:05   #13
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
а директив ассемблера по сути, две: .586 и .686.
это директивы основных команд, не расширений.
расширения включаются отдельно.
что не ясно то?
Цитата:
О процессорах Intel (см. ссылку):
ТС, если вы лично не можете нагуглить какой проц называется 686(что расшифровывается как 6-ое поколение х86), то в этом виноват микрософт?
Цитата:
The P6 Family of Processors (1995-1999)
вот кстати и оно.
Цитата:
Получается: угадал, как записывается имя регистра - хорошо, а нет - угадывай дальше.
там вполне определенные имена, по вашей ссылке мне выдало лишь что страница недоступна.
в манах интела вижу что xmm, пишутся именно так, а mmx-регистры написаны именно как mm.
где гадания? помоему это вы именно занимаетесь гаданием на гуще, вместо того чтоб читать, маны интела всегда доступны, с полным описанием синтаксиса и описанием инструкций.
Цитата:
Почему в этом примере MOVQ XMM0, XMM1 допустимо, а MOVDQA XMM0, XMM1 - нет?
читаю маны, и вижу, что первая команда может применятся с любыми парами регистров, вторая лишь с определенными.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 14.07.2013 в 20:18.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.07.2013, 20:37   #14
Dmitry_B
Пользователь
 
Регистрация: 29.03.2009
Сообщений: 83
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
это директивы основных команд, не расширений.
расширения включаются отдельно.
что не ясно то?
Неясно где бы об этом почитать.

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ТС, если вы лично не можете нагуглить какой проц называется 686(что расшифровывается как 6-ое поколение х86), то в этом виноват микрософт?
вот кстати и они.
Догадаться можно. Найти бы документ Microsoft'а, где всё расписано. Я найти не смог.

Я сослался на документ:
Intel® 64 and IA-32 Architectures
Software Developer’s Manual
Combined Volumes:
1, 2A, 2B, 2C, 3A, 3B and 3C

Не могли бы дать ссылку на Ваш источник?

Последний раз редактировалось Dmitry_B; 14.07.2013 в 20:42.
Dmitry_B вне форума Ответить с цитированием
Старый 14.07.2013, 20:48   #15
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Цитата:
Почему в этом примере MOVQ XMM0, XMM1 допустимо, а MOVDQA XMM0, XMM1 - нет?
чего?
я бы еще поверил, что MOVQ на MASM глючит, но MOVDQA - не верю.

MOVDQA xmm0, xmm6
MOVDQA xmm12, xmm14

работает.
f.hump вне форума Ответить с цитированием
Старый 14.07.2013, 21:00   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Неясно где бы об этом почитать.
как бы на странице каждого расширения даже на википедии написано список их команд, соответственно и понятно что для доступа к mmx командам, надо включить эти команды в асме.
Цитата:
Догадаться можно. Найти бы документ Microsoft'а, где всё расписано. Я найти не смог.
как бы это вполне призванное сокращение, видимо один вы этого не знаете.
Микрософт по вашему должен вам лично расписать что именно идет под 686?
Цитата:
Я сослался на документ:
http://www.intel.com/content/www/us/...r-manuals.html
вот их маны, почему ваша ссылка не работает не знаю.
нас интересуют части 2А и 2B, где описаны инструкции.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.07.2013, 21:09   #17
Dmitry_B
Пользователь
 
Регистрация: 29.03.2009
Сообщений: 83
По умолчанию

Цитата:
Сообщение от f.hump Посмотреть сообщение
чего?
я бы еще поверил, что MOVQ на MASM глючит, но MOVDQA - не верю.

MOVDQA xmm0, xmm6
MOVDQA xmm12, xmm14

работает.
Спасибо.
Вставил MOVDQA xmm0, xmm6. Результат:
C:\masm32\Projects\proba.asm(12) : error A2008: syntax error : MOVDQA
Наверное, надо MASM переставить.
Dmitry_B вне форума Ответить с цитированием
Старый 14.07.2013, 21:13   #18
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Dmitry_B Посмотреть сообщение
Спасибо.
Вставил MOVDQA xmm0, xmm6. Результат:
C:\masm32\Projects\proba.asm(12) : error A2008: syntax error : MOVDQA
Наверное, надо MASM переставить.
масм у вас который? не отдельный надеюсь?
масм отдельно не распространяется больше, он с WinSDK поставляется или как часть студии.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.07.2013, 21:14   #19
Dmitry_B
Пользователь
 
Регистрация: 29.03.2009
Сообщений: 83
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
как бы на странице каждого расширения даже на википедии написано список их команд, соответственно и понятно что для доступа к mmx командам, надо включить эти команды в асме.
как бы это вполне призванное сокращение, видимо один вы этого не знаете.
А что надо включать, чтобы обращаться к YMM - регистрам?

MASM у меня отдельный: Professional Development System, Version 6.14.

Последний раз редактировалось Dmitry_B; 14.07.2013 в 21:18.
Dmitry_B вне форума Ответить с цитированием
Старый 14.07.2013, 21:20   #20
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

не уверен что надо включать, помоему .xmm достаточно.
но поддержка зависит от версии масма.
говорят масм от 2010 студии поддерживает их.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как установить шаблон версии 9.7 на движок версии 9.8? Vallerik WordPress и другие CMS 1 26.03.2013 12:34
Постоение отчета через COM. Как получить список выполненых Word'ом инструкций? Человек_Борща Microsoft Office Word 5 11.03.2013 07:52
Применение логических инструкций. Assembler Wasisualy Помощь студентам 0 11.01.2012 20:43
Перечень(список) номеров блоков fantaYKT Помощь студентам 0 19.05.2011 20:45