В Java существует возможность использования программного кода, реализованного на других языках программирования, так называемый JNI. Можно написать динамически линкуемую библиотеку, затем загрузить ее в Java-коде и использовать функции оттуда, объявив их как native методы загрузившего ее класса. JNI создавался в первую очередь для того, чтобы выполнять машинно-зависимые действия (а также, возможно, улучшить производительность критических по скорости частей приложения) на C/C++, но никто не мешает нам написать библиотеку и на ассемблере.
Читать полностью »
Рубрика «ассемблер» - 18
Взаимодействие Java и… Ассемблера?
2012-06-14 в 9:13, admin, рубрики: java, ассемблер, метки: java, ассемблерНенормальное программирование / Сетевое обращение к библиотекам и рантайм-формирование вызовов функций
2012-02-29 в 10:40, admin, рубрики: ассемблер, библиотеки, метки: ассемблер, библиотекиХочу поделиться историей из профессиональной деятельности, которую можно заслуженно поместить в блог с именем crazydev :) Это рассказ о необычных решениях (тех, что я попытался описать в двух словах в заголовке), к которым меня вынудили прийти еще более необычные ограничения и требования.

И вот как-то так, через хитро закрученную ***у, оно и работает ©
Постановка проблемы
Несколько лет назад работали над системой, предназначенной для <a rel="nofollow"Читать полностью »
Assembler / [Из песочницы] Минималистичная программа в формате ELF
2012-02-06 в 14:04, admin, рубрики: asm, elf, gas, gcc, linux, ассемблер, метки: asm, elf, gas, gcc, linux, ассемблер Вдохновившись статьёй Привет из свободного от libc мира, я так же решил проделать нечто подобное. Чтобы не заниматься этим бесцельно, я решил поставить перед собой следующую задачу. Сделать программу, выводящую какую-нибудь простую строку, вроде «ELF, hello!». Разобраться с тем, как именно она будет представлена в исполняемом файле. Ну и попутно, постараться уложиться в 100 байт.
Для начала, стандартный helloworld на C++
#include
using namespace std;
int main()
{
cout << "ELF, hello!n";
return 0;
}
Компилируем, смотри размер:$ g++ test.cpp -static && ls -s -h a.out
1,3M a.out
Сколько, сколько? 1.3 Мб? Для вывода одного единственное сообщения размером в 12 байт? Хм… Ладно,Читать полностью »
