Для каждого процессора не пишут отдельный ассемблер. Его пишут под определенную очень длинную линию процессоров.
Ассемблер для процессора 8086 1978 года выпуска будет работать и на последних моделях процессоров Intel и AMD. Другое дело, что для современных моделей ассемблеры, как и ядра Windows, дорабатывают. Поэтому 64-битная Windows не будет работать с 32-битными процессорами, а 32-битная - с 16 битными, но наоборот - сколько угодно.
Другие языки программирования и технологии
Если для каждого процессора пишут отдельный ассемблер, то как windows может работать со всеми процессорами?
сам хоть понял что спросил? :)
Сергей Аксенов
Да. И даже код представил :)
Слой абстрагирования HAL. Позволяет абстрагироваться от конкретной аппаратуры. Предоставляя единообразный интерфейс.
И ассемблер не для каждого процессора пишут. Его пишут для целого семейства процессоров такие как i386, i686 и т. д.
И ассемблер не для каждого процессора пишут. Его пишут для целого семейства процессоров такие как i386, i686 и т. д.
1. Неверно, что для каждого процессора - отдельный ассемблер. Конечно же, ограничения существуют.. . Иной код на асме под одни процессоры работает, под другие - нет.. . Но не настолько велика разница. Отдельный ассемблер пишут под целый ряд процессоров (и386, и686 и т. д.) , а не под каждый процессор. Конечно, для современных процессоров ассемблеры, как и Виндовс, совершенствуются.. . Именно поэтому 64-разрядный Виндовс не будет корректно работать с 32-разрядным процессором (это я сама испытала, кстати ;) но наоборот - вполне.. .
2. И вообще.. . Вот, например, бывают кроссплатформенные языки программирования, которые работают сразу под несколько разных ОС, например, под Виндовс и Линукс. Как это, по-Вашему, сделано? Правильно: часть процедур изначально выполняется на обоих ОС, а часть - заменяется другими самой программой, когда она узнаёт, что ОС на компьютере - не Виндовс, а Линукс, или наоборот.
Вот и с асмом аналогично. И есть технологии абстрагирования ХАЛ...
2. И вообще.. . Вот, например, бывают кроссплатформенные языки программирования, которые работают сразу под несколько разных ОС, например, под Виндовс и Линукс. Как это, по-Вашему, сделано? Правильно: часть процедур изначально выполняется на обоих ОС, а часть - заменяется другими самой программой, когда она узнаёт, что ОС на компьютере - не Виндовс, а Линукс, или наоборот.
Вот и с асмом аналогично. И есть технологии абстрагирования ХАЛ...
Айсулу Джайлибаева
Ну это вы лихо завернули. Кроссплатформенные приложения нужно отдельно компилировать под винду и под линукс. То, о чем вы говорите, это совместимость на уровне исполняемых файлов, такого между линуксом и виндой нет.
Похожие вопросы
- помогите объяснить значение каждой строчки программы на ассемблере!?
- Объясните что пишут на Ассемблере? какие проги? под что?
- Есть кто пишет на ассемблере? что за проект или задача, приведите пример
- Как работает процессор? Писать программу на разных языках почему приходится?
- как работает процессор?
- Общая загруженность процессора при запущенном процессе с один потоком, выполняющим "while(true){}", не превышает 33%.
- Напишите мне список книг по Ассемблер под Windows !
- что дает разгон процессора? В чем преимущества разогнутого процессора? Что-то будет быстрей работать ?
- В чем прикол в нанопроцессах 7 нм тех процесс в процессорах
- Каждая инструкция в процессоре работает на своей частоте или инструкции не привязаны строго к частоте?