Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео. Да я старый ассемблерщик, что тут скрывать. Пишу на разных ассемблерах уже много-много лет. И сегодня приведу пример для гурманов. Мы соединим программу на ассемблере с программой на Python. А что не так? Попытка не пытка, как говаривал один исторический персонаж. На самом деле ограничим себя только одной задачей: попробуем вызвать динамическую библиотеку и программы на языке python. Динамическую же библиотеку напишем на ассемблере. В Linux,правда, такие библиотеки называют разделяемыми (shared library). А мы работаем в Linux. Вот пример такой библиотеки. # модуль с внешней функцией.
.text
.globl pow # публичное имя функции
pow: # rdi входной параметр
# сохраним, используемые в функции регистры.
push %rdi
mov %rdi, %rax
mul %rdi # возведём в квадрат, результат в rax
# восстанавливаем структуру стека
pop %rdi
ret В библиоте