IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Интересно как компиляторы могут компилировать..., ...exe для разных процессоров
Dr.Bugy
сообщение 23.03.2006 22:49
Сообщение #1


Лихорадка неясного генеза.
**

Группа: Пользователи
Сообщений: 81
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Интересно как компиляторы могут компилировать exe для разных процессоров. Скажем для Pentium и Athlon. Ведь у них одинаковые в лудшем случае команды времён когда АМД делали клоны интеловских процов. Или существуют какието стандарты,хотя стоп, а какже новые технологии АМД и Интел,всякие там навороченные фишки, значит и стандартов быть не может !?
Так чтоже получается?!! Что, чтобы ехе работал на разных процах то они(компиляторы) используют старые,базовые команды, не прикасаясь к современным фмшка про которых так расхваливаются разработчики процессоров в своих рекламах???

Разъясните пожалуйста кто знает!


--------------------
Мир промышленного программирования полон избыточной сложности. В результате такие критерии, как простота, надежность, компактность программ и эффективность исполняемого кода, теперь заменяются на один главный критерий — скорость реализации идей. Приоритет времени разработки понятен: человеческие ресурсы нынче стоят значительно выше, чем аппаратные. Но не теряем ли мы по дороге то ценное, что вернуть потом будет крайне тяжело?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 24.03.2006 8:09
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Открой, например, FPC и зайди в Options - Compiler - Code generation.
Ты увидишь установки на определенный тип проца. Это довольно грубая настройка. Но если ты хочешь, чтобы твоя прога заведомо выполнялась на большинстве машин, ты занизишь уровень - может, до 386 (вряд ли стоит сейчас). Серьезное приложение (коммерческое), конечно, компилится более сложным образом и содержит вставки кода для разных процов (если нужно). Некоторые модули оно может настраивать в процессе инсталляции, некоторые так и содержат лишний код, который не используют - воплощение зависит от программеров. Главное же то, что серьезные приложения пишутся и компилятся серьезно smile.gif. Оптимизация под определенный тип проца (или под несколько типов) - это отдельная (и немалая) работа..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Dr.Bugy
сообщение 24.03.2006 14:58
Сообщение #3


Лихорадка неясного генеза.
**

Группа: Пользователи
Сообщений: 81
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Я так понимаю Делфи использует довольно низкий уровень(во всяком случае по умолчанию) ведь экзешники одинаково идут и на пнях и АМДшниках.


--------------------
Мир промышленного программирования полон избыточной сложности. В результате такие критерии, как простота, надежность, компактность программ и эффективность исполняемого кода, теперь заменяются на один главный критерий — скорость реализации идей. Приоритет времени разработки понятен: человеческие ресурсы нынче стоят значительно выше, чем аппаратные. Но не теряем ли мы по дороге то ценное, что вернуть потом будет крайне тяжело?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Dr.Bugy
сообщение 24.03.2006 19:53
Сообщение #4


Лихорадка неясного генеза.
**

Группа: Пользователи
Сообщений: 81
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Возник сопутствующий вопрос:
А какие параметры в настройках компиллятора нужно поставить чтобы бинарник получался "наилудшим"или как там, для работы на Интел Рентиум (1,2,3) и АМД Атхлонах?


--------------------
Мир промышленного программирования полон избыточной сложности. В результате такие критерии, как простота, надежность, компактность программ и эффективность исполняемого кода, теперь заменяются на один главный критерий — скорость реализации идей. Приоритет времени разработки понятен: человеческие ресурсы нынче стоят значительно выше, чем аппаратные. Но не теряем ли мы по дороге то ценное, что вернуть потом будет крайне тяжело?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
xds
сообщение 25.03.2006 5:20
Сообщение #5


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Все перечисленные микропроцессоры в первую очередь - представители семейства* x86, а уже во вторую - самостоятельные торговые марки. Различия в системах команд в большей степени касаются арифметики. Компилятор генерирует код x86 и, на своё усмотрение, может использовать оптимизации на основе тех или иных расширений (e. g. MMX, 3D Now, etc...). Компилятор также может генерировать код, который в зависимости от конфигурации оборудования, на котором он выполняется, будет использовать те или иные расширения базовой системы команд. Такой подход используется уже давно - например, BP можно сконфигурировать (опциями {$E+N+}), на автоматическую настройку сгенерированного кода на отсутствие или наличие 80x87. К слову, последний в мадших членах семейства x86 представлял собой расширение, выполненное в виде отдельной микросхемы.

* - в данном случае термин "семейство" корректен отчасти, т. к. процессоры Intel и AMD не образуют единого модельного ряда. Правильнее так - семейство микропроцессоров с системой команд, совместимой с x86.


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 14:56
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"