$655.04


$259.87


$10.41


Взаимодействие с GLIBC

GLIBC — стандартная библиотека Си от GNU. Если вы программируете на ассемблере под Linux, то использование функций из этой библиотеки — хороший способ сократить размер программы и затраченные усилия. Безусловно, использование их замедляет программу, но это всего лишь значит, что их не стоит использовать в критических участках — циклах. Если же вы используете GLIBC скажем для форматированного вывода на консоль, то вряд ли вы заметите какое-нибудь замедление.

Более того — использование GLIBC в большинстве случаев сделает вашу программу легко портируемой на многие другие UNIX-платформы.


В качестве примера рассмотрим программу, которая импортирует функцию puts (вывод на консоль null-terminated строки)
;Точка входа «_start» на самом деле находится
;в подключаемом *.o файле стандартной библиотеки Си
;Она передает управление на функцию «main»,
;которая должна находиться в нашей программе
global main

;Внешние функции
extern exit
extern puts

;Сегмент кода:
section .text

;Функция main:
main:

;Параметры передаются в стеке:
push dword msg
call puts

;По конвенции Си вызывающая процедура должна
;очищать стек от параметров самостоятельно:
sub esp, 4

;Завершение программы с кодом выхода 0:
push dword 0
call exit

ret

;Сегмент данных
section .data

msg: db «An example of interfacing with GLIBC.»,0x0D,0

Компиляция:
nasm -felf inglibc.asm

Компоновка: Для вызова компоновщика с нужными параметрами мы не будем заморачиваться с командой ld, а воспользуемся GCC, который сам определит, что нужно нашему объектному файлу:
gcc inglibc.o -o inglibc

 

Интересное

Введение в технологию SSI
Если вы первый раз слышите о SSI — Server Side Includes, то эта статья как раз для вас. Я не претендую на подробное изложение материала — для этого есть специальная литература.Так вот, на...
Подробнее...
Увеличиваем быстродействие...
Однако, по умолчанию, вне зависимости от установленного объема памяти, Windows XP нерационально использует дополнительный объем памяти, что значительно ограничивает производительность системы в...
Подробнее...
10 советов по защите Wi-Fi...
Тема безопасности Wi-Fi соединения в наши дни очень популярна. На ряде форумов, ведутся энергичные дискуссии на предмет «лучшего решения». Один из наиболее часто обсуждаемых аспектов — большое...
Подробнее...
Какой софт нужен для...
Что нужно настоящему веб-мастеру для полноценной работы? Совсем немного. В этой статье я опишу весь soft, который нужен для нормальной работы web-мастеров.1) Правильный выбор HTML-редактора.В наше...
Подробнее...
Какие типы данных...
Я не буду описывать подробно все изобилие типов mysql. Я уверен, что это лишнее.Дело в том, что в mysql-е числовые и текстовые группы типов очень многочисленны.Отличаются типы в этих группах...
Подробнее...
Я работаю с Windows Vista....
Шаг за шагом знакомимся с Windows Vista. Сегодня — подробно о том, сколько и какого «железа» требуется для работы с разными версиями новой операционной системы.
Подробнее...
Как через форму положить...
Один из частых вопросов, это как через форму положить файл на сервер. Делается это весьма легко, всего около 10 строк кода и php скрипт готов. И при этом ничего кроме php вам не понадобится.Для...
Подробнее...
Собираем Apache + PHP +...
Итак попробуем все это собрать. Для начала нам понадобиться apache, php, sablot, xpat, iconv. Последние три представляют собой программы для обработки XML/XSLT файлов.
Подробнее...
Дата по русски
Скрипт, который мы сейчас рассмотрим, позволяет вывести на экранпосетителя дату в формате русского языка. Сразу предупреждаю,что реализация алгоритма этой задачи не самая лучшая.Но –...
Подробнее...
10 способов заставить...
Операционная система Windows Vista отличается повышенной функциональностью и безопасностью, а также имеет красивый стиль оформления пользовательского интерфейса Aero transparency, функцию...
Подробнее...