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

Почему разновидностей языка ассемблера так много?

Я, конечно, понимаю, что архитектуры процессоров такие разные, но разве машинные возможности отдельных моделей процессоров неодинаковы? Разве машинный код не один и тот же? Почему тогда не сделать один общий язык ассемблера?
Эмин )))
Эмин )))
265
Дело не только в процессорах. Ассемблер постоянно обращает к ядру ОС. И там в разных ОС разные системные вызовы (АПИ-функции).
ВК
Владимир Колесников
70 339
Лучший ответ
Эмин ))) А зачем он обращается к ядру?
Потому что Ассемблер это вовсе не машинный код. Машинный код это 0x55 0x89 0xe5 0xe8 0xfc 0xff 0xff 0xff. А язык Ассемблера хоть и низкоуровневый, но всё же язык программирования с обычными командами в виде слов английского языка
Терехов Сергей
Терехов Сергей
63 904
И система команд 386 процессора несколько отличаются от 586, и процессоры бывают совсем другие, например PIC, STM, М68000, и программистов есть больше одного, потому для одного и того же процессора есть несколько ассемблеров, отличающихся скоростью компиляции. Как ни странно это имеет значение, даже не смотря на то, что разница скоростей измеряется не более чем в секундах.
каждый хочет придумать свою софтину - более крутую, быструю и удобную
А раньще компьютеры разрабатывали в каждом отдельном НИИ. И еще студенты в качестве практикума
АП
Андрей Попов
48 202
Никита Артамонов не было такого.
Андрей Попов Ты в советских НИИ не работал
Одна из причин та же, по которой не существует одного языка программирования и не существует одного стандарта болтов: у каждого свое назначение.

Ассемблер - это программа, которая переводит с языка ассемблера, в машинный код. Программа запускается в операционной системе, поэтому ассемблер запускаться только в одной из ОС, если так предусмотрено разработчиком.

Язык ассемблера взаимодействует с процессором, который выполняет команды. Перечень команд, которые знает процессор определяется архитектурой: CISC (x86), RISC, MISC и т.д. Поэтому машинный код для одного процессора отличается от машинного кода для другого процессора.

Более подробная информация изложена в википедии, в статье об ассемблере.
AR
Alexander Reynolds
9 504