Сборка - это язык, который я хотел бы изучить, но все же вы не часто слышите, что что-то было запрограммировано в сборке. Мой вопрос в том, что такое использование языка ассемблера? Он все еще используется?Использование языка ассемблера
ответ
Язык сборки может иметь смысл в ряде ситуаций.
- Высокий объем, минимальная стоимость встроенных систем. Дополнительное оборудование для запуска чего-то типа C может быть непомерно высоким.
- Повышение эффективности.
- Доступ к оборудованию невозможен/доступен через языки более высокого уровня.
2 был важным, но в последние несколько десятилетий он почти угасал.
В настоящее время сборка в основном используется, когда язык высокого уровня по выбору не предоставляет программисту доступ к некоторым функциям ЦП, таким как векторные инструкции или предварительная выборка.
Язык ассемблера используется для преобразования языков программирования более высокого уровня, таких как C в машинный код. Процессоры могут запускать только машинный код - последовательность коротких, дискретных команд, закодированных в двоичном формате. Каждый раз, когда запускается любая программа, машинный код выполняется процессором. Язык ассемблера - это просто машиночитаемый вид машинного кода.
Задача преобразования высокоуровневого кода в машинный код выполняется с помощью compiler, и сборка обычно создается вдоль пути в качестве промежуточного представления перед преобразованием в машинный код. В этом свете сборка написана, по крайней мере, как часто популярные высокоуровневые языки программирования - ее просто написано другой программой.
Причины вы могли бы написать программу на языке ассемблера:
- Ваш профессор сказал вам
- Вы не доверяете компилятору сгенерировать оптимизированный или работающий машинный код
- Вы написание собственного компилятора или языка программирования
Общие языки ассемблера (и основные ISA)
Что сборка используется?
Короткий ответ: все связанное с программным обеспечением.
Используется ли он еще?
Короткий ответ: в его самой чистой форме, редко так. Косвенно он используется во всех программах.
Более длинный ответ:
Ассамблея является способом сделать сырой двоичный код читабелен. Когда первые компьютеры строились, можно было просто набирать инструкции для выполнения операции, однако по мере того, как компьютеры становились все более сложными, и необходимость в более сложных вычислениях возникала при наборе всех инструкций, составляющих программу в необработанных двоичных файлах, стала утомительной, очень утомительный. Рассмотрим программу длиной в 220 строк с использованием 8-битного кода операции и 16-разрядного для операндов (и/или регистров или адресов памяти), это будет означать, что каждая инструкция является 24-битной, то есть 24 нули и единицы длинной. Умножьте это на 220 (количество инструкций предполагает, что на каждой строке есть одна инструкция), и вы получаете 5280. Это количество нулей и единиц, на которые вы должны набрать номер, не совершив ни одной ошибки. Занудный и подверженный ошибкам.
Поэтому ученым-компьютерщикам пришла в голову идея использовать мнемонику для описания всех разных инструкций. Примером может служить аббревиатура 'mov', которая в сборке x86 означает «move». Он делает именно это, он перемещает (или фактически копирует) данные из одного места в другое. Это упрощает чтение и запись программ.
Потому что сборка - это просто использование слов и правил для описания двоичного кода, это ВСЕГДА самый быстрый. Вы говорите непосредственно с ЦП. Это одно из преимуществ.
Еще компьютеры стали еще более сложными, и программное обеспечение стало более продвинутым или, скорее, больше. Набрав несколько строк сборки, все хорошо, но, скажем, веб-браузер в сборке будет полной катастрофой, чтобы идти в ногу, есть так много данных, которые вам нужно отслеживать, и это легко сделать ошибку.
Таким образом были разработаны более совершенные языки. Языки, такие как C/C++, обычно называются языками высокого уровня, потому что они не говорят напрямую с ЦП. Такие языки часто используют встроенные функции, мини-ASM-программы, предназначенные для выполнения конкретной задачи. Можно сказать, что все языки программирования высокого уровня в основном представляют собой огромную библиотеку функций ASM.
Теперь, например, python был закодирован в C, сам C вызывает вызовы сборки и сборки двоичного кода. В принципе, чем выше мы получаем, тем больше диссоциированных мы получаем от ASM, но это еще ASM в CORE. Единственное различие заключается в том, что мы используем сами компьютеры для компиляции нашего читаемого человеком кода в двоичный файл.
Надеюсь, это все имеет смысл!
- 1. Использование языка ассемблера в C/C++
- 2. Понимание языка ассемблера
- 3. Формат форматирования языка ассемблера
- 4. Какая ценность языка ассемблера
- 5. nasm - введение языка ассемблера
- 6. MIPS умножение языка ассемблера
- 7. Cygwin: Разработка языка ассемблера?
- 8. Типы языка ассемблера
- 9. Чтение языка ассемблера
- 10. Начиная со языка ассемблера
- 11. Стандарт синтаксиса языка ассемблера
- 12. определение синтаксиса языка ассемблера
- 13. Биты выделения языка ассемблера Mips
- 14. Изучение языка ассемблера на мейнфрейме
- 15. понимание языка ассемблера lea инструкция
- 16. Windows x86 синтаксис языка ассемблера
- 17. GCC ошибки компилятор языка ассемблера
- 18. Ошибка добавления дополнительного языка ассемблера
- 19. Счетчик флагов переноса языка ассемблера
- 20. Функция ассемблера языка 2 looping
- 21. О состоянии языка ассемблера, выбрав
- 22. Понимание языка ассемблера _start в программе C
- 23. Преобразование макросов языка ассемблера в простой язык ассемблера
- 24. проблема синтаксиса языка ассемблера для арифметики
- 25. Изучение MIPS как второго языка ассемблера?
- 26. Какие хорошие ресурсы языка ассемблера x86?
- 27. Что означает этот код языка ассемблера?
- 28. Изучение языка ассемблера PIC для изучения 8086
- 29. Изучение языка ассемблера x86. Нужны некоторые инструкции
- 30. Возможно ли загрузчик без языка ассемблера?
Сборка - ужасный язык программирования, который должен быть абсолютно без ошибок, например, драйверов. Возможно, некоторые части, но определенно не все. –
На самом деле, я не знаю, как пользоваться этим языком. Мог бы также запрограммировать весь драйвер на другом языке и не делать некоторые части с Assembly тогда ..? – phadaphunk
См. [Википедия] (http://en.wikipedia.org/wiki/Assembly_language). –