9.2. Простая ассемблерная вставка
9.2. Простая ассемблерная вставка
Вот как с помощью функции asm() осуществляется сдвиг числа на 8 битов вправо:
asm("shrl $8, %0" : "=r" (answer) : "r" (operand) : "cc");
Выражение в скобках состоит из секций, разделенных двоеточиями. В первой секции указана ассемблерная инструкция и ее операнды. Команда shrl осуществляет сдвиг первого операнда на указанное число битов вправо. Первый операнд представлен выражением %0. Второй операнд — это константа $8.
Во второй секции задаются выходные операнды. Единственный такой операнд будет помещен в C-переменную answer, которая должна быть адресуемым (левосторонним) значением. В выражении "=r" знак равенства обозначает выходной операнд, а буква r указывает на то, что значение переменной answer заносится в регистр.
В третьей секции перечислены входные операнды. Переменная operand содержит значение, подвергаемое битовому сдвигу. Выражение "r" означает, что значение переменной записывается в регистр.
Выражение "cc" в четвертой секции говорит о том. что инструкция меняет значение регистра cc (содержит код завершения).
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Шаг первый: простая страница
Шаг первый: простая страница Вначале бралась обычная страница, для которой использовалось только gzip-сжатие HTML-файла. Это самое простое, что может быть сделано для ускорения загрузки страницы. Данная оптимизация бралась за основу, с которой сравнивалось все остальное. Для
Простая железнодорожная система
Простая железнодорожная система Вы легко построите железнодорожную систему, состоящую из одного пути с остановками и двумя простыми конечными точками. Обеспечьте энергией начало железной дороги, выкопав яму 2?1 и поместив в нее энергорельсы. Последний блок рельсов
Более простая версия функции str_cli
Более простая версия функции str_cli Неблокируемая версия функции str_cli, которую мы только что показали, нетривиальна: около 135 строк кода по сравнению с 40 строками версии, использующей функцию select с блокируемым вводом-выводом (см. листинг 6.2), и 20 строками начальной версии,
Пример: простая программа с уведомлением
Пример: простая программа с уведомлением Прежде чем углубляться в тонкости сигналов реального времени и потоков Posix, мы напишем простейшую программу, включающую отправку сигнала SI6USR1 при помещении сообщения в пустую очередь. Эта программа приведена в листинге 5.8, и мы
Глава 4 Простая
Глава 4 Простая В этой главе рассматриваются модификаторы и составные объекты. Действие модификаторов направлено на изменение формы объекта, взаимодействие двух объектов приводит к созданию третьего – составного. Моделирование с использованием модификаторов и
Простая функция хеширования для строк
Простая функция хеширования для строк Похоже, что приведенные в предыдущем разделе рассуждения наталкивают на мысль о необходимости использования весовых коэффициентов, соответствующих позиции каждого символа в строке во избежание конфликтов при использовании
Первая простая реализация
Первая простая реализация При разработке очереди по приоритету первый атрибут (возможность хранения произвольного количества элементов) наталкивает на мысль об использовании какой-либо расширяемой структуры данных типа связного списка или расширяемого массива,
Вторая простая реализация
Вторая простая реализация Однако при наличии большого количества элементов или при добавлении и удалении из очереди большого количества элементов она оказывается не столь эффективной, как хотелось бы. Уверен, что читатели сразу подумали об одном возможном способе
Простая реализация подсказок с помощью MFC
Простая реализация подсказок с помощью MFC Microsoft упростила добавление подсказок к кнопкам на панелях инструментов. Если вы используете AppWizard, этот процесс происходит автоматически. При генерации вашего приложения с помощью AppWizard щелкните флажок "Docking toolbar". После генерации
Эффект Simple Delay (Простая задержка)
Эффект Simple Delay (Простая задержка) Эффект Simple Delay (Простая задержка) позволяет применять базовые эффекты эха к звуковым фрагментам и композициям. Чтобы использовать этот эффект, нужно выполнить следующие действия.1. Выделить фрагмент аудиоданных, к которым нужно применить
Пример 22-1. Простая функция
Пример 22-1. Простая функция #!/bin/bashfunky (){ echo "Это обычная функция."} # Функция должна быть объявлена раньше, чем ее можно будет использовать. # Вызов функции.funkyexit 0Функция должна быть объявлена раньше, чем ее можно будет использовать. К сожалению, в Bash нет возможности
Простая архитектура PKI
Простая архитектура PKI Архитектура PKI может быть очень простой, если у пользователей - простые требования. В этом разделе рассматриваются два типа простой архитектуры: одиночный УЦ и списки доверия УЦ. Простая архитектура достаточна для связывания пользователей одного и