Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Машинный язык 
V
    Опции темы
S.A.G.
Дата 26.7.2006, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



Читаем П.Абеля:

"...В дальнейшем архитектура процессоров 8086 расширялась и дополнялась, и на базе этой архитектуры создавались все новые и новые процессоры - 80286, 80386, 80486, Pentium, Pentium II и т.д. Каждое семейство процессоров имеет собственный уникальный набор инструкций, используемый для выполнения операций..."

1. Означает ли это что каждая серия (80286, 80386 и т.д. это серии?) имеет собственный уникальный набор инструкций? Или же речь идет вообще о микропроцессорах Intel (от поколения к поколению просто добавлялись новые инструкции)? Машинный язык каждого отдельно взятого процессора уникален или же у каждого производителя процессоров он свой?

2. Раз машинные языки различных процессоров могут отличаться то откуда знает компилятор (интерпретатор) на какой из языков ему переводить исходный код на том же c++? Ведь никогда никто не говорит о реализациях тех или иных компиляторов(интерпретаторов) под конкретный процессор (или я ошибаюсь?). Восновном речь идет об ос-ях, например под дос, винду, линух...
Может быть перед трансляцией транслирующая программа выясняет для себя набор машинных инструкций используемых процессором? Но если так то при том, что машинные языки разных процов могут быть различны, программа часто может не работать на других машинах. Но ведь все как правило работает?  

Это сообщение отредактировал(а) main - 26.7.2006, 07:54


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
Exekutor
Дата 26.7.2006, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 1.11.2005
Где: Казахстан. Костан ай

Репутация: нет
Всего: 4



Есть интелсовместимые процессоры, которые поддерживают стандартный набор инструкций это Athlon и пень 


--------------------
[color=blue][size=2]En taro addun, ma sol larinas[/size][/color]
PM MAIL   Вверх
Sardar
Дата 26.7.2006, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Цитата(main @  26.7.2006,  06:52 Найти цитируемый пост)
Означает ли это что каждая серия (80286, 80386 и т.д. это серии?) имеет собственный уникальный набор инструкций?

Каждый последующий проц х86 поддерживает команды предидущего + что нибудь новое. Иногда для этого нужно переходить в специальные режимы, т.к. разница между процами может быть огромна, например между 268 и 386 (страницы, вирутальная памят, поддержка (железная) многозадачности и т.д.). Также в вводом SSE инструкций (семейство SIMD) нельзя пользовать FPU одновременнно, ну и прочие заморочки.

У компилера есть множество back-end'дов транслирующих высокоуровневый промежуточный байткод в машинный конкретного проца. Чем новее проц, тем больше свободы (читай свободы для оптимизаций) для компилера, но на более младших процах такая прога может и не работать. В итоге прога скомпилированная под athlon-xp теоретически должна быть быстрее чем эта же прога под 80386.  


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
S.A.G.
Дата 27.7.2006, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



2Executor

Что такое стандартный набор инструкций и для кого он являеться стандартом? Значит прога скомпиленая на "интелосовместимой" машине может не работать на "интелонесовместимой"? 
К примеру, такие процессоры как Duron, Celeron, Semperon и т.д.? Или эти процессоры тоже являються "интелсовместимыми"?

2Sardar

Значит инструкции серии x86 дополнялись от поколения к поколению. А разве Pentium не являеться продолжением серии x86 или же он стоит особняком?

Цитата
У компилера есть множество back-end'дов транслирующих высокоуровневый промежуточный байткод в машинный конкретного проца.


А что такое back-end'ы? По смыслу - нечто вроде базы инструкций для различных процессоров?  

Это сообщение отредактировал(а) main - 27.7.2006, 01:23


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
Sardar
Дата 27.7.2006, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Цитата(main @  27.7.2006,  00:21 Найти цитируемый пост)
Что такое стандартный набор инструкций и для кого он являеться стандартом? 

Есть такой термин как архитектура процессора, говорим не о физическом устройстве, а о наборе инструкций и возможностей процессора. К примеру есть х86, также SPARC (Sun'овские машины), PowerPC (Mac'и) или z80 (SpectrumZX! smile шучу, индустриальные контроллеры, вебинтерфейсы к железу).

Каждая архитектура имеет свои особенности, собственный набор инструкций и возможностей. Различные производители могут выпускать разные процы под единой архитектурой, придумывая проц "с нуля". Т.е. этo общие международные стандарты "как должен вести себя проц".

Цитата(main @  27.7.2006,  00:21 Найти цитируемый пост)
А разве Pentium не являеться продолжением серии x86 или же он стоит особняком?

Это торговая марка, просто название. Все они пентиумы, но у каждой серии своё ядро, разные кеши, разные добавленные фишки. Но! все старшие модели совместимы с младшими, именно потому они "тормозят". Сейчас наследие х86 настолько "опостылело", что придумываються новые архитектуры как AMD64, которые не совместимы со старыми х86 процами. Хотя IA64 поддерживает i386 (IA32), но через переход в специальный режим, т.е. специально для извращенцев (надавили менеджеры на разработчиков smile).

Техничеки это верно, сегодняшние процы на самом деле интерпретаторы х86, т.е. высокоуровневые инструкции разбираються на более простые опы и исполняються процессором. Проблема подхода:
  • мало регистров, новые вносить проблемaтично, их просто нет в "оригинальном" х86. Сам проц может использовать и переключать "банки" регистров, но это не видно программисту. SPARC по моему имеет более сотни регистров, могу ошибаться...
  • у х86 нет предпосылок к параллелизации исполнения
  • поддержка новых фич зачастую конфликтует со старыми инструкциями, приходиться вводит "режимы", например режим исполнения комманд SSE не может комбинироваться (эффективно в смысле) с режимом пользования FPU.
  • поддержка старых и не нужных фичь усложняет проц и повышает энергопотребление.
Это первое что на ум пришло smile

Цитата(main @  27.7.2006,  00:21 Найти цитируемый пост)
А что такое back-end'ы

Модули компилятора генерирующие код из промежуточного высокоуровнего кода. Front-end это парсер конкретного языка. Так например GCC имеет front-end'ы под массу популярных языков (то что оффициально поддерживаеться есть очень малая часть всего smile ) и back-end'ы под туеву хучу разного железа.


main, ответы на большинство твоих вопросов можешь найти на http://wikipedia.org   


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
S.A.G.
Дата 27.7.2006, 03:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



2Sardar

Спасибо! Ощущаеться опыт и глубочайшие познания в области. smile

С пониманием реплики на первую цитату не возникло никаких проблем. Но все же она не содержит ответа на поставленный вопрос (или я что-то по незнанию пропустил?). Там рассказано о том что такое архитектура и какие они бывают. Это все понятно даже такому нубу в асме как мне. smile Насколько я понял стандарта нет? Значит по стечению обстоятельств некоторые производители снабдили свои детища одними и теми же инструкциями что и образовало стандартный набор?

С пентиумом тоже все ясно. А вот с бек- и фронт- ендами не совсем. Можешь немного разьяснить? Боюсь ставить неправильно сформулированные вопросы. Вопервых что такое парсер в этом контексте?
"Модули компилятора генерирующие код из промежуточного высокоуровнего кода." - а разве это не основная функция компилера? Какая специфика этих модулей? Разьясни плз.

P.S. Спасибо за ссылки  

Это сообщение отредактировал(а) main - 27.7.2006, 03:08


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
Sardar
Дата 27.7.2006, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Цитата(main @  27.7.2006,  02:07 Найти цитируемый пост)
Насколько я понял стандарта нет?

Есть, большой, им убить можно smile  Называеться "интелловская 32 битная архитектура" (IA-32), все её чтят но могут добавлять новые фишки. Не знаю есть ли ISO стандарт, должен быть...

Цитата(main @  27.7.2006,  02:07 Найти цитируемый пост)
Вопервых что такое парсер в этом контексте?

Parser - синтаксический анализатор, зачитывает твой текст (либо граф. диаграму, хотя их парсерами не называют) на конкретном языке и транслирует его в промежуточную форму, их много (AST с аттрубутами до RTL и подобного), на каждой стадии свои оптимизации. Для справки читать как устроен GCC, он не есть истина в последней инстанции, но его устройство логично и красиво.

Цитата(main @  27.7.2006,  02:07 Найти цитируемый пост)
а разве это не основная функция компилера? Какая специфика этих модулей?

Генерация кода есть лишь часть основного кода компилера. Выбирая конкретный back-end можно на уровне инструкций скомпилировать прогу под требуемую платформу, а внутри платформы под конкретный проц (пользуя его расширения и "навороты") если требуеться.

На пальцах разжевать довольно сложно, лучше сам прочти: http://en.wikibooks.org/wiki/GNU_C_Compiler_Internals
И вообще помни что на 90% твоих любых вопросов википедия знает ответ smile 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
S.A.G.
Дата 28.7.2006, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



Спасибо за помощь, тему можно закрыть. smile 


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1718 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.