![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Санчес_ |
|
|||
Unregistered |
Несколько вопросов для общего развития.
В Delphi нельзя поставить тип процессора - для какого процессора идёт компиляция, какой набор инструкций используется? Наверное, для первых пентиумов или "четвёрок", чтобы код работал на любой машине? А как в этом случае обстоит дело с поддержкой устаревших инструкций в новых процессорах - она остаётся на аппаратном уровне или заменяется микропрограммным кодом? Или в .ехе включаются все варианты, а тип процессора определяется программой при запуске? |
|||
|
||||
Pathfider |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.7.2004 Где: все там же Репутация: -1 Всего: 1 |
Это надо посмотреть в установках компилятора. Точнее не могу сказать - не сталкивался.
--------------------
Trust is a weakness |
|||
|
||||
Санчес_ |
|
|||
Unregistered |
Хех, я же сказал, что в Дельфи нельзя поставить тип процессора при компиляции. Нету такого в настройках
![]() |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Вот моё скромное ИМХО:
Компилятор использует систему команд i386, т.к. я не видал, чтобы он использовал хотя бы i486-команды, типа CMPXCHG или BSWAP... К тому же в FileHeader'е в экзешниках стоит 014Ch = Intel 386 процессор... Да и если подумать, все другие команды, которые не использует компилятор, особого бы выйгрыша не дали, т.к. их применение весьма специфично (например, работа с кэшом, MMX-команды, SSE и др.). Имхо, сложно сделать оптимизатор, который бы смог выявить места в программе, где можно применить SIMD-обработку данных (а кроме них вроде ничего нового в систему команд особо не вносили), поэтому этим должен заниматься сам программист... Добавлено @ 17:25 Устаревшие инструкции - это какие ?... И в чём отличие аппаратной поддержки от микропрограммного кода ?... -------------------- С уважением, г-н Посол. |
|||
|
||||
Санчес_ |
|
|||
Unregistered |
Про устаревшие инструкции я так, на всякий случай спросил - вдруг такие есть, убрали команду какую-нить :-)
Аппаратная поддержка и микропрограммный код - это я вот как понимаю: мы же можем на 8-битном процессоре сложить или сравнить два 32-битных числа. Но для этого придётся написать несколько инструкций процессора (микропрограмма, или, если угодно, программа в машинном коде). Она будет выполняться несколько тактов. В то время как на 32-битном процессоре хватит одной команды - все подразумевающиеся переносы из байта в байт процессор сделает сам, за один такт. Такое понимание терминов верно? Теперь такая просьба - дайте ссылки на документацию по процессорам Intel, наборы команд посмотреть хочу :-) И на формат экзешников :-) Если есть в FAQ, сильно не ругайтесь - ссылка на него битая, посмотреть не могу. |
|||
|
||||
p0s0l |
|
||||||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Под микропрограммой понимается набор _микрокоманд_ (микроопераций, µops). Команды (mov, loop и др) состоят из микроопераций. Микрокоманды - это как бы внутренние команды проца. Т.е. микропрограммы программно недоступны (криво говоря), типа это аппаратный уровень (их зашивают в процессорное ПЗУ - Microcode ROM)... Поэтому я и спросил, в чём отличие между аппаратной поддержкой и поддержкой на уровне микрокоманд...
Инструкции A-M: http://developer.intel.ru/design/pentium4/manuals/253666.htm Инструкции N-Z: http://developer.intel.ru/design/pentium4/manuals/253667.htm (там внизу линк для скачки). Я вообще заказал все 4 толмута по почте (бесплатно). Мне через полгода (когда я уже забыл, что заказал) почтальон на дом принёс целую коробку ![]() Щас заказать нельзя - говорят в феврале 2005 года может появится опять возможность...
-------------------- С уважением, г-н Посол. |
||||||||
|
|||||||||
Санчес_ |
|
|||
Unregistered |
Спасибо за объяснение! Про такие микропрограммы я ни сном ни духом
![]() Жаль, на форуме не могу зарегиться - ие6 не сохраняет куки. В настройках конфиденциальности движок стоит на "принимать все куки", ан нифига. ![]() |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Всегда пожалуйста.
Насчёт IE6 - юзай Оперу. {Примечание от Pegas-а: или Мозиллу} Или будь нашим постоянным гостем - мы тут всегда рады гостям ![]() -------------------- С уважением, г-н Посол. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |