|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.07.2013, 22:34 | #1 |
Пользователь
Регистрация: 29.03.2009
Сообщений: 83
|
Перечень инструкций и имён регистров текущей версии MASM
Как можно узнать мнемоники команд и имена регистров, которые поддерживает текущая версия MASM? Например, как догадаться, что регистр MMX0 процессора обозначается в ассемблере MM0?
Как поставить соответствие между реальным типом процессора (например, Intel Core 2 Duo) и директивой ассемблера, например, .586P или .686P? Есть ли какое-нибудь руководство? |
12.07.2013, 22:43 | #2 | |||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
686 пенек это как бы вполне определенная серия процев.
Цитата:
в описании технологии есть такое: Цитата:
Цитата:
раздел Processor надо тискать кстати не соответствие между процами, а между технологиями. ибо в основном 686 хватит как основа, а далее расширения лишь. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|||
12.07.2013, 23:10 | #3 | |
Пользователь
Регистрация: 29.03.2009
Сообщений: 83
|
Цитата:
Далее текст из руководства Intel: The Intel Xeon processor 5200, 5400, and 7400 series, Intel Core 2 Quad processor Q9000 Series, Intel Core 2 Duo processor E8000 series support Intel 64 architecture; they are based on the Enhanced Intel® Core microarchitecture using 45 nm process technology. Лично мне от этого легче не стало. Терминология Intel и Microsoft не совпадают. Убедитесь в этом сами, почитав Вашу ссылку на директивы ассемблера в MSDN. |
|
12.07.2013, 23:27 | #4 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
что именно не совпадает?
Core2Duo уже куда старее чем 686, и он полностью поддерживает инструкции 686-го. из 32-битных инструкций, помоему ничего более не появлялось, лишь расширения. дальше идет 64-битный режим. регистры mmx официально mm0-mm7, что вам не нравится не знаю. Цитата:
пруф линк. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 12.07.2013 в 23:30. |
|
14.07.2013, 14:45 | #5 |
Пользователь
Регистрация: 29.03.2009
Сообщений: 83
|
Имена регистров и другую основополагающую информацию смотрел здесь:
http://www.intel.com/content/www/us/...al-325462.html О процессорах Intel (см. ссылку): 16-bit Processors and Segmentation (1978) The Intel® 286 Processor (1982) The Intel386™ Processor (1985) The Intel486™ Processor (1989) The Intel® Pentium® Processor (1993) The P6 Family of Processors (1995-1999) The Intel® Pentium® 4 Processor Family (2000-2006) The Intel® Xeon® Processor (2001- 2007) The Intel® Pentium® M Processor (2003-Current) The Intel® Pentium® Processor Extreme Edition (2005-2007) The Intel® Core™ Duo and Intel® Core™ Solo Processors (2006-2007) The Intel® Xeon® Processor 5100, 5300 Series and Intel® Core™2 Processor Family (2006-Current) The Intel® Xeon® Processor 5200, 5400, 7400 Series and Intel® Core™2 Processor Family (2007-Current) The Intel® Atom™ Processor Family (2008-Current) The Intel® Core™i7 Processor Family (2008-Current) The Intel® Xeon® Processor 7500 Series (2010) 2010 Intel® Core™ Processor Family (2010) The Intel® Xeon® Processor 5600 Series (2010) 2nd Generation Intel® Core™ Processor Family (2011) Не вижу в этом перечне ни «586», ни «686». Хотелось бы Microsoft – рекомендаций по установлению соответствия между типом процессора и соответствующей директивой ассемблера. Любопытно отметить наличие в ассемблере директив .MMX и .XMM. Это косвенно свидетельствует об отсутствии однозначного соответствия. Последний раз редактировалось Dmitry_B; 14.07.2013 в 14:51. |
14.07.2013, 15:05 | #6 | |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
Цитата:
.MMX - набор инструкций MMX (прошлый век), Интел рекомендует отказаться от его использования .XMM - набор SSE есть еще .YMM - набор AVX |
|
14.07.2013, 15:30 | #7 |
Пользователь
Регистрация: 29.03.2009
Сообщений: 83
|
Если ассемблер должен преобразовать текст программы в машинные коды, то ему необходимо учитывать, для какого именно процессора он должен это делать. Поэтому необходимо как-то указать ассемблеру тип используемого процессора. Но типов процессоров много (полный перечень я выше привёл), а директив ассемблера по сути, две: .586 и .686. Тогда должно быть руководство, какому процессору какая директива соответствует.
Наличие же директив .MMX и .XMM говорит о том, что директивы .686, например, недостаточно для того, чтобы указать ассемблеру, что эти наборы регистров в процессоре присутствуют. Где можно посмотреть, как правильно применять директивы MASM для описания архитектуры целевого процессора (если уж нельзя просто указать его тип)? |
14.07.2013, 15:46 | #8 | |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
ну, эти директивы указывают не на конкретные процессоры, а на наборы инструкций, которые хочется разрешить для использования в программе.
в принципе, эти директивы бесполезны, подтверждением этому является факт, что они больше не поддерживаюся компиляторами, которые идут в комплекте с Windows SDK/WDK. теперь с самого начала для использования разрешено все, что заложено в компилятор, и это приятно. Цитата:
Последний раз редактировалось f.hump; 14.07.2013 в 15:52. |
|
14.07.2013, 15:59 | #9 |
Пользователь
Регистрация: 29.03.2009
Сообщений: 83
|
Позавчера скачал и обновил MASM (всё по инструкциям Microsoft). Без без директивы .MMX ассемблер не распознаёт имена регистров в программе, сообщает об ошибке; без .XMM - соответственно то же самое с регистрами XMM.
Разрешать всё, что заложено в компилятор, думаю, нельзя: целевой процессор может быть не самым новым и может не выполнять какие-то команды. |
14.07.2013, 16:10 | #10 |
Форумчанин
Регистрация: 16.01.2011
Сообщений: 325
|
Dmitry_B, Вы бы код свой показали на всякий случай.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как установить шаблон версии 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 |