Какие проекты (кроме очевидных вещей ОС) используют язык ассемблера? - PullRequest
10 голосов
/ 19 июня 2009

Похоже, в настоящее время никто не использует сборку, кроме как для разработки драйверов устройств или самого ядра ядер ОС и т. Д. Кто-нибудь знает, что в настоящее время он используется для других целей?

Я имею в виду аппаратное обеспечение в стиле ПК и больше, а не встроенные компоненты с крошечными крошечными процессорами.

Ответы [ 16 ]

0 голосов
/ 23 июня 2009

Одним из кодов, определяющих скорость (после того, что требуется динамически для управления памятью) почти на каждом языке, является подпрограмма, используемая средой выполнения (-library) для перемещения памяти. Move (), memcpy и т. Д., А также примитивы, такие как поиск байта (strchr) и т. Д.

Они также часто пишутся на ассемблере, со специальным выделенным кодом для использования выравнивания.

0 голосов
/ 19 июня 2009

Иногда некоторые функции не могут быть реализованы на языке высокого уровня, и вместо них используется встроенная сборка. Например, есть некоторая встроенная сборка в библиотеке Ct C ++; Я считаю, что он используется для части системы самоанализа объекта.

Кроме того, glibc (библиотека C для gcc) использует сборку для оптимизации. Одна из программных математических реализаций с плавающей точкой в ​​IIRC содержит значительный фрагмент, написанный на сборке.

Однако одной из основных причин изучения ассемблера является отладка. В некоторых случаях я попадал в ситуации, когда незнание сборки не позволило бы мне отладить особо неприятную проблему.

0 голосов
/ 19 июня 2009

По словам Кнута, изучается эффективность алгоритмов. В своих книгах он упоминает, что нет лучшего способа изучить, как работает алгоритм, чем писать на ассемблере.

0 голосов
/ 19 июня 2009

Я написал ассемблер IBM 370 в свое время, для большого приложения (продукт, продаваемый поставщиком, используемый крупными компаниями), которое собирало информацию из хуков операционной системы. Тем не менее, я занимался программированием только в стиле jane: экраны, отчеты и т. Д. На ассемблере. Он работал удивительно быстро, но был полностью в ассемблере. Я уверен, что он все еще работает и продается сегодня по ценам, значительно превышающим цены, характерные для программного обеспечения для платформ Windows и Linux.

0 голосов
/ 19 июня 2009

Я думаю, что наиболее известными программами, где используется ассемблер, является загрузчик.

0 голосов
/ 19 июня 2009

Я знаю, что ассемблер используется для очень интенсивного кода для игр. Например, пиксельные шейдеры имеют очень ограниченный бюджет команд; чтобы получить эффекты, которые вы хотите, вы должны написать код до металла.

...