22 / 22 / 8
Регистрация: 03.12.2013
Сообщений: 193
1

Использование в Си библиотек, написанных на Assembler

26.01.2021, 23:10. Показов 2521. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
С учётом того, что разработчики компиляторов Си/C++ оптимизируют код по скорости, есть преимущество при использовании статических библиотек, написанных на Assembler?

Тоже самое по другому попробую сказать:
Есть смысл самому писать свои библиотеки на ассемблере для проектов на Си/C++ ?
Без учёта фактора самообразования (практика программирования на Асм.)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2021, 23:10
Ответы с готовыми решениями:

Использование библиотек, написанных на Java
Здравствуйте! Нашел библиотеку для работы с одним типом файлов, но она написана на Java....

Динамическое подключение библиотек, написанных разными программистами
Здравствуйте! Пишу интерфейс для игры ботов, ботов пишут разные программисты, в теории их могут...

использование библиотек
Добрый день, подскажите пожалуйста как используются библиотеке в коде? Т.е. вверху кода где...

Использование библиотек
Для всех вариантов: - Ввести два целых числа a и b. - Произвести вычисления в подпрограммах....

5
35 / 21 / 14
Регистрация: 01.01.2021
Сообщений: 52
26.01.2021, 23:18 2
Я любителя но знаю скорость сборки. Вы можете сделать это, если хорошо владеете языками программирования низкого уровня.
Однажды я написал простое ядро ​​со сборкой, это было очень сложно, но работало очень быстро.
Итак, вы знаете, что можете попробовать, и не забудьте сообщить нам
1
E=m*c^2
160 / 47 / 10
Регистрация: 04.02.2019
Сообщений: 263
Записей в блоге: 5
28.01.2021, 15:02 3
Цитата Сообщение от Doctor123 Посмотреть сообщение
...Есть смысл самому писать свои библиотеки на ассемблере для проектов на Си/C++ ?...
чем уже задача тем больше смысла.
чем точнее известна конечная машина тем больше смысла.

лучше всего писать программные примитивы, к примеру функцию преобразования строки символов в число с плавающей запятой, какоето относительно короткое но сложное мат вычисление с дробными степенными функциями тригонометрией и прочим.

Добавлено через 2 минуты
Doctor123, дополнительно стоит учесть что к примеру VS не поддерживает 64-х битный код, как следствие либо придется воспользоваться другой средой либо использовать сторонний отладчик.
1
Модератор
2121 / 991 / 169
Регистрация: 23.07.2018
Сообщений: 3,326
Записей в блоге: 3
28.01.2021, 19:05 4
Почему не поддерживает?
Не стали только делать "встроенный ассемблер" в MSVC x64
64-битный код компилируется и отлаживается:
Код
>|   /TransportQualifier:no
 Имя             ID    Путь                                                                            
-------------------------------------------------------------------------------------------------------
 more.com        11772 C:\Windows\System32\more.com                                                     
>u /CodeBytes msvcrt.dll!atoi
atoi:
00007FFDF9F92100 48 83 EC 28      sub         rsp,28h 
00007FFDF9F92104 33 C0            xor         eax,eax 
00007FFDF9F92106 48 85 C9         test        rcx,rcx 
00007FFDF9F92109 74 0F            je          atoi+1Ah (07FFDF9F9211Ah) 
00007FFDF9F9210B 33 D2            xor         edx,edx 
00007FFDF9F9210D 44 8D 48 01      lea         r9d,[rax+1] 
00007FFDF9F92111 44 8D 40 0A      lea         r8d,[rax+0Ah] 
00007FFDF9F92115 E8 12 26 00 00   call        strtolX (07FFDF9F9472Ch) 
>r rip rsp
RIP = 00007FFDF93937D3 RSP = 00000041B20FF690 
>k
 Указатель  Функция 
--------------------------------------------------------------------------------
 1          ntdll.dll!NtReadFile()
*2          KernelBase.dll!ReadFile()
 3          ulib.dll!KEYBOARD::FillBuffer(unsigned char *,unsigned long,unsigned long *)
 4          ulib.dll!BUFFER_STREAM::GetBuffer(unsigned long *)
 5          ulib.dll!BUFFER_STREAM::ReadString(class WSTRING *,class WSTRING *,unsigned char)
 6          ulib.dll!STREAM::ReadLine(class WSTRING *,unsigned char)
 7          more.com!PAGER::ReadNextString(unsigned long)
 8          more.com!PAGER::DisplayPage(unsigned long,unsigned char,unsigned char,unsigned char,unsigned long)
 9          more.com!MORE::PageStream(class STREAM *,class FSN_FILE *,unsigned long,unsigned long)
 10         more.com!MORE::DoPaging(void)
 11         more.com!main()
 12         more.com!__mainCRTStartup()
 13         kernel32.dll!BaseThreadInitThunk()
 14         ntdll.dll!RtlUserThreadStart()
0
E=m*c^2
160 / 47 / 10
Регистрация: 04.02.2019
Сообщений: 263
Записей в блоге: 5
29.01.2021, 12:20 5
Цитата Сообщение от politoto Посмотреть сообщение
...Не стали только делать "встроенный ассемблер"...
нет "встроенный ассемблер" == нет "поддерживаемого ассемблер"
0
Модератор
2121 / 991 / 169
Регистрация: 23.07.2018
Сообщений: 3,326
Записей в блоге: 3
29.01.2021, 12:56 6
Старый майкрософтовский встроенный ассемблер ломает оптимизацию, и, таким образом, существенных преимуществ по сравнению с полноценным автономным m64 не даёт.
Дли низкоуровневого x64-зависимого кода можно пользоваться только intrinsicами MSVC
https://docs.microsoft.com/en-... nsics-list
Интел переходит на встроенный ассемблер в стиле gcc. Можно подключить к студии интеловские компиляторы Си.
0
29.01.2021, 12:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2021, 12:56
Помогаю со студенческими работами здесь

Использование сторонних библиотек
Всем салют! Я новичок на этом форуме, а также в языке Си++. У меня возникли вопросы. Дело в том,...

Использование библиотек в проекте AS
Подскажите как использовать библиотеку. у меня есть некая библиотека lib.jar (внутри определенное...

Использование в Ruby C библиотек
Вопрос говорит сам за себя, по-этому прошу помощи по этой теме, тк практического опыта подобного...

Использование библиотек alglib
Доброго времени суток. Подскажите пожалуйста как работать с процедурой cmatrixinverse модуля...

Использование библиотек DLL
Для всех вариантов: - Ввести два целых числа a и b. - Произвести вычисления в подпрограммах....

Использование библиотек на C# в Delphi
Доброго времени суток. Возникла задача использовать библиотеку написанную на C# в Delphi....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru