Глава 9 Встроенный ассемблерный код
Глава 9
Встроенный ассемблерный код
Сегодня лишь немногие программисты используют в своей практике язык ассемблера. Языки высокого уровня, такие как С и C++, поддерживаются практически на всех архитектурах и обеспечивают достаточно высокую производительность программ. Для тех редких случаев, когда требуется встроить в программу ассемблерные инструкции, в коллекции GNU-компиляторов (GCC) предусмотрены специальные средства, учитывающие особенности конкретной архитектуры.
Встроенными ассемблерными инструкциями следует пользоваться осторожно, так как они являются системно-зависимыми. Например, программу с инструкциями архитектуры x86 не удастся скомпилировать на компьютерах PowerPC. В то же время такие инструкции позволяют напрямую обращаться к аппаратным устройствам, вследствие чего программный код выполняется чуть быстрее.
В программы, написанные на языках С и C++, ассемблерные инструкции встраиваются с помощью функции asm(). Например, на платформе x86 команда
asm("fsin" : "=t" (answer) : "0" (angle));
является эквивалентом следующей инструкции языка C:[30]
answer = sin(angle);
Обратите внимание на то, что, в отличие от обычных ассемблерных инструкций, функция asm() позволяет указывать входные и выходные операнды, используя синтаксис языка С.
Подробнее узнать об инструкциях архитектуры x86, используемых в настоящей главе, можно по следующим адресам: http://developer.intel.com/design/pentiumii/manuals и http://www.x86-64.org/documentation.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
(3.5) Как отключить Dr. Watson, встроенный дебагер?
(3.5) Как отключить Dr. Watson, встроенный дебагер? Это не только позволит быстрее закрывать подвиснувшие приложения, но и позволит ускорить запуск программ и освободить пару мегабайт оперативной памяти. Сделать это можно выставив ключ Auto равным 0 по адресу
3.4. Как отключить Dr. Watson, встроенный дебагер?
3.4. Как отключить Dr. Watson, встроенный дебагер? Это не только позволит быстрее закрывать подвиснувшие приложения, но и позволит ускорить запуск программ и освободить пару мегабайт оперативной памяти. Сделать это можно выставив ключ Auto равным 0 по адресу HKEY_LOCAL_MACHINE -> SOFTWARE ->
12.5.3 CoolEdit - встроенный редактор программы Midnight Commander
12.5.3 CoolEdit - встроенный редактор программы Midnight Commander CoolEdit - это простая в использовании программа с привычными для большинства пользователей (особенно для тех, кто работал с Norton Commander под DOS или с FAR под WINDOWS) комбинациями управляющих клавиш. Кроме того, надо учитывать, что
Upsell, встроенный в корзину
Upsell, встроенный в корзину Последнее время в Рунете стала применяться методика, которая давно и успешно используется на Западе и позволяет увеличить средний чек в интернет-магазине.Когда человек после выбора товаров для заказа переходит в свою корзину, он видит там еще
Встроенный модуль ParentalControl Bar
Встроенный модуль ParentalControl Bar Если для серфинга в Интернете вы используете обозреватель Internet Explorer или Mozilla Firefox, то можно порекомендовать еще одну бесплатную и простую программу, точнее, встроенный модуль к браузеру – ParentalControl Bar.Домашняя страница, откуда можно ее
Системы, построенные на основе трансляции в ассемблерный код
Системы, построенные на основе трансляции в ассемблерный код Некоторые из таких систем позволяют компилировать функции, содержащиеся в нескольких файлах, сразу так же, как в ОС UNIX с помощью команды: сс filel.с file2.cили какого-то ее эквивалента. В некоторых случаях вы
9.1. Когда необходим ассемблерный код
9.1. Когда необходим ассемблерный код Инструкции, указываемые в функции asm(), позволяют программам напрямую обращаться к аппаратным устройствам, поэтому полученные программы выполняются быстрее. Ассемблерные инструкции используются при написании кода операционных
2.1. Встроенный тип данных "массив"
2.1. Встроенный тип данных "массив" Как было показано в главе 1, С++ предоставляет встроенную поддержку для основных типов данных – целых и вещественных чисел, логических значений и символов:// объявление целого объекта ival// ival инициализируется значением 1024int ival = 1024;//
3.4.1. Встроенный строковый тип
3.4.1. Встроенный строковый тип Как уже было сказано, встроенный строковый тип перешел к С++ по наследству от С. Строка символов хранится в памяти как массив, и доступ к ней осуществляется при помощи указателя типа char*. Стандартная библиотека С предоставляет набор функций
Встроенный сервер под Windows
Встроенный сервер под Windows Библиотека встроенного сервера под Windows, естественно, разработана для работы на машинах, которые не используются как полноценный сервер. Если у вас есть копия библиотеки fbembed.dll, расположенная где-нибудь на полностью серверной машине,
Пример 17-9. "Анонимный" Встроенный Документ
Пример 17-9. "Анонимный" Встроенный Документ #!/bin/bash: <<TESTVARIABLES${HOSTNAME?}${USER?}${MAIL?} # Если одна из переменных не определена, то выводится сообщение об ошибке.TESTVARIABLESexit 0 Подобную технику можно использовать для создания "блочных
ГЛАВА 21
ГЛАВА 21 Создание экранного выводаС помощью shell–сценариев можно создавать профессионального вида экраны, позволяющие реализовать интерактивное взаимодействие пользователя с системой. Для этого достаточно располагать цветным монитором и использовать команду tput.В
8.4. Векторный редактор, встроенный в Word, или КОМПАС?
8.4. Векторный редактор, встроенный в Word, или КОМПАС? В учебнике [19] утверждается, что Word располагает простыми и вместе с тем мощными средствами для создания рисунков различной степени сложности: от элементарных геометрических фигур до сложных объемных фигур. В учебнике [20]
Встроенный мастер установки
Встроенный мастер установки Запускается мастер установки (рис. 15.1) с помощью значка Установка и удаление программ расположенного на Панели управления. Рис. 15.1. Окно изменения или удаления программУстановка программыЧтобы установить программу, щелкните на кнопке
Встроенный в колесо буксир поможет авиалайнерам маневрировать на земле Николай Маслухин
Встроенный в колесо буксир поможет авиалайнерам маневрировать на земле Николай Маслухин Опубликовано 31 марта 2014 Компания WheelTug разработала одноимённую систему буксировки современных пассажирских самолётов, обычно весьма неповоротливых на