Другие языки программирования и технологии
Почему разновидностей языка ассемблера так много?
Я, конечно, понимаю, что архитектуры процессоров такие разные, но разве машинные возможности отдельных моделей процессоров неодинаковы? Разве машинный код не один и тот же? Почему тогда не сделать один общий язык ассемблера?
Дело не только в процессорах. Ассемблер постоянно обращает к ядру ОС. И там в разных ОС разные системные вызовы (АПИ-функции).
Эмин )))
А зачем он обращается к ядру?
Потому что Ассемблер это вовсе не машинный код. Машинный код это 0x55 0x89 0xe5 0xe8 0xfc 0xff 0xff 0xff. А язык Ассемблера хоть и низкоуровневый, но всё же язык программирования с обычными командами в виде слов английского языка
И система команд 386 процессора несколько отличаются от 586, и процессоры бывают совсем другие, например PIC, STM, М68000, и программистов есть больше одного, потому для одного и того же процессора есть несколько ассемблеров, отличающихся скоростью компиляции. Как ни странно это имеет значение, даже не смотря на то, что разница скоростей измеряется не более чем в секундах.
каждый хочет придумать свою софтину - более крутую, быструю и удобную
А раньще компьютеры разрабатывали в каждом отдельном НИИ. И еще студенты в качестве практикума
Никита Артамонов
не было такого.
Андрей Попов
Ты в советских НИИ не работал
Одна из причин та же, по которой не существует одного языка программирования и не существует одного стандарта болтов: у каждого свое назначение.
Ассемблер - это программа, которая переводит с языка ассемблера, в машинный код. Программа запускается в операционной системе, поэтому ассемблер запускаться только в одной из ОС, если так предусмотрено разработчиком.
Язык ассемблера взаимодействует с процессором, который выполняет команды. Перечень команд, которые знает процессор определяется архитектурой: CISC (x86), RISC, MISC и т.д. Поэтому машинный код для одного процессора отличается от машинного кода для другого процессора.
Более подробная информация изложена в википедии, в статье об ассемблере.
Ассемблер - это программа, которая переводит с языка ассемблера, в машинный код. Программа запускается в операционной системе, поэтому ассемблер запускаться только в одной из ОС, если так предусмотрено разработчиком.
Язык ассемблера взаимодействует с процессором, который выполняет команды. Перечень команд, которые знает процессор определяется архитектурой: CISC (x86), RISC, MISC и т.д. Поэтому машинный код для одного процессора отличается от машинного кода для другого процессора.
Более подробная информация изложена в википедии, в статье об ассемблере.
Похожие вопросы
- Вопрос по изучению языка Ассемблера под MS DOS. (Нужны советы по программному обеспечению/программированию)
- Сравнение языка Ассемблера и Си
- Вопрос про язык ассемблера
- Язык ассемблера. Почему его так называют это же обычные cmd команды виндус
- Если язык ассемблер позволяет писать такой невероятно компактный код, то почему им пользуется всё меньше людей?
- Помогите с написанием программы на языке Ассемблер, алгоритм знаю, вот только команды самого языка - не очень.
- Как школьнику самостоятельно изучить язык Ассемблера?
- На что способен язык Ассемблер? И есть ли у него какие нибудь ограничение?
- Как реализовать рекурсию на языке ассемблера? (intel 80х86, masm, tasm или fasm)
- Вопрос из разряда компиляторов. На С++ написан код, генерирующий машинный код из команд на языке ассемблер.