9.1. Когда необходим ассемблерный код
9.1. Когда необходим ассемблерный код
Инструкции, указываемые в функции asm(), позволяют программам напрямую обращаться к аппаратным устройствам, поэтому полученные программы выполняются быстрее. Ассемблерные инструкции используются при написании кода операционных систем. Например, файл /usr/include/asm/io.h содержит объявления команд, осуществляющих прямой доступ к портам ввода-вывода. Можно также назвать один из исходных файлов ОС Linux — /usr/src/linux/arch/i386/kernel/process.s; в нем с помощью инструкции hlt реализуется пустой цикл ожидания.
Прибегать к ассемблерным инструкциям как к средству ускорения работы программы следует лишь в крайнем случае. Современные компиляторы достаточно сложны и прекрасно осведомлены об особенностях работы процессоров, для которых они генерируют код. Часто они создают цепочки кодов, которые кажутся неэффективными или неоптимальными, но на самом деле такие последовательности инструкций выполняются быстрее других. В подавляющем большинстве случаев можно положиться на оптимизирующие способности компиляторов.
Иногда одна или две ассемблерные команды способны заменить целую группу высокоуровневых инструкций. Например, чтобы определить позицию самого старшего значащего бита целого числа в языке С, требуется написать цикл, тогда как во многих ассемблерных языках для этой цели существует операция bsrl. Ее использование будет продемонстрировано в разделе 9.4, "Пример".
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Когда собирать?
Когда собирать? Пшеницу можно собирать, когда вершки становятся коричневыми, а морковь – когда видны торчащие оранжевые вершки. Коричневых вершков появляются, когда картофель созревает. Арбузы или тыквы собирают, когда рядом со стеблем появляются плоды. Как только
Когда яд полезен
Когда яд полезен В случае необходимости вы можете съесть сырую курицу, гнилое мясо и даже паучьи глаза. Вы отравитесь, но потом поправитесь при высоком уровне здоровья. Если вы выпьете коровье молоко, то исцелитесь быстрее. Съев паучьи глаза, вы получите четыре очка
Глава 8. Что, где, когда и как?
Глава 8. Что, где, когда и как? Интернет – практически безразмерное хранилище для информации самого разного рода. Рассказать даже вкратце о том, что «складируют» в Сети ее пользователи, совершенно невозможно. Однако я рискнул выбрать для вас некоторое количество полезных
О чем, когда и как много писать
О чем, когда и как много писать Текстовый формат — основной для блогов и самый простой в реализации, поэтому каждый блогер должен владеть искусством написания текстов.Вопросы: о чем, через какой промежуток времени и в каком объеме писать в блог — волнуют очень многих
Когда публиковать сообщения?
Когда публиковать сообщения? Периодически в книгах, статьях в Интернете можно встретить статистику – в какой день недели, в какое время лучше публиковать сообщения на Facebook, чтобы получать максимальное число комментариев и ссылок. Скажем, есть теория, что публикации в 8
13.1.5. Когда простоты не достаточно
13.1.5. Когда простоты не достаточно Неудачное решение вопроса простоты Unix-программистами заключается в том, что они часто действуют так, будто вся необязательная сложность является случайной. Более того, традиция Unix сильно склоняется к тому, чтобы удалять функции во
16.7.3. Когда потребуется адвокат
16.7.3. Когда потребуется адвокат Данный раздел предназначен для коммерческих разработчиков, рассматривающих внедрение в закрытые продукты программ, подпадающих под условия одной из описанных стандартных лицензий.Разобравшись во всем этом правовом словоблудии,
Системы, построенные на основе трансляции в ассемблерный код
Системы, построенные на основе трансляции в ассемблерный код Некоторые из таких систем позволяют компилировать функции, содержащиеся в нескольких файлах, сразу так же, как в ОС UNIX с помощью команды: сс filel.с file2.cили какого-то ее эквивалента. В некоторых случаях вы
Глава 9 Встроенный ассемблерный код
Глава 9 Встроенный ассемблерный код Сегодня лишь немногие программисты используют в своей практике язык ассемблера. Языки высокого уровня, такие как С и C++, поддерживаются практически на всех архитектурах и обеспечивают достаточно высокую производительность программ.
Когда индексировать
Когда индексировать Некоторые индексы сами заявят о себе в начальном периоде проектирования - обычно через известные вам требования сортировки, группировки, вычислений. Очень хорошей практикой является консервативный подход к созданию индексов: не создавать их, пока не
Глава I Для чего необходим компьютерный видеоввод
Глава I Для чего необходим компьютерный видеоввод • Каким бывает компьютерное видео • Устройства внешние и внутренние – что выбрать • Внутренние устройства Компьютерный видеоввод – это модно. Однако перед тем как приступить к освоению компьютерного видео, стоит
10. Когда открыть, а когда закрыть
10. Когда открыть, а когда закрыть Рассмотрев деловые модели, которые поддерживают разработку программного обеспечения с открытыми текстами, мы можем теперь приблизиться к общему вопросу о том, когда исходному коду, с точки зрения экономики, имеет смысл быть «открытым», а