Другие языки программирования и технологии

Если для каждого процессора пишут отдельный ассемблер, то как windows может работать со всеми процессорами?

Для каждого процессора не пишут отдельный ассемблер. Его пишут под определенную очень длинную линию процессоров.
Ассемблер для процессора 8086 1978 года выпуска будет работать и на последних моделях процессоров Intel и AMD. Другое дело, что для современных моделей ассемблеры, как и ядра Windows, дорабатывают. Поэтому 64-битная Windows не будет работать с 32-битными процессорами, а 32-битная - с 16 битными, но наоборот - сколько угодно.
RK
Rahim Kim Chen
81 912
Лучший ответ
сам хоть понял что спросил? :)
Сергей Секерин
Сергей Секерин
63 500
Сергей Аксенов Да. И даже код представил :)
Слой абстрагирования HAL. Позволяет абстрагироваться от конкретной аппаратуры. Предоставляя единообразный интерфейс.
И ассемблер не для каждого процессора пишут. Его пишут для целого семейства процессоров такие как i386, i686 и т. д.
1. Неверно, что для каждого процессора - отдельный ассемблер. Конечно же, ограничения существуют.. . Иной код на асме под одни процессоры работает, под другие - нет.. . Но не настолько велика разница. Отдельный ассемблер пишут под целый ряд процессоров (и386, и686 и т. д.) , а не под каждый процессор. Конечно, для современных процессоров ассемблеры, как и Виндовс, совершенствуются.. . Именно поэтому 64-разрядный Виндовс не будет корректно работать с 32-разрядным процессором (это я сама испытала, кстати ;) но наоборот - вполне.. .
2. И вообще.. . Вот, например, бывают кроссплатформенные языки программирования, которые работают сразу под несколько разных ОС, например, под Виндовс и Линукс. Как это, по-Вашему, сделано? Правильно: часть процедур изначально выполняется на обоих ОС, а часть - заменяется другими самой программой, когда она узнаёт, что ОС на компьютере - не Виндовс, а Линукс, или наоборот.
Вот и с асмом аналогично. И есть технологии абстрагирования ХАЛ...
Lado Kapanadze
Lado Kapanadze
849
Айсулу Джайлибаева Ну это вы лихо завернули. Кроссплатформенные приложения нужно отдельно компилировать под винду и под линукс. То, о чем вы говорите, это совместимость на уровне исполняемых файлов, такого между линуксом и виндой нет.