Nikolay
а почему бы не сделать dll (которую делаешь на asm) и уже в проекте подключаешь ее и используешь функции из нее?
Потому, что это фрагментация сборки, что для небольшого приложения дюже неудобно. И опять же, цивильно в единый проект это не собрать.
Nikolay
http://stackoverflow.com/questions/5083441/how-to-add-pre-build-step-in-qmake-qtcreator#5183139 Ну и прикрутить к линкеру...
За ссыль спасибо, но это немного не тот механизм. В qmake есть переменная QMAKE_EXTRA_COMPILERS, которая достаточно жутким способом помогает добиться желаемого, но я хотел узнать, не делал ли кто-нибудь подобное чуть более цивильно. В виде плагина к creator'у, например.
Volodymyr
Плагин к IDE вряд ли поможет, всё равно проект собирается QMake'ом. Наверное, самый бесшовный вариант - inline assembly, но а) жутко неудобно если кода много и б) сильно отличается в gcc / msvc.
Sergey
а __asm {...} тоже нет желания использовать?
Nikolay
а __asm {...} тоже нет желания использовать?
Абсолютно никакого. И если говорить про MSVS, то оно не может в x64. Но и в целом функция написанная на чистом асме всё-таки лучше, чем вставки посреди плюсов, бывает, что от них оптимизация ломается.
Volodymyr
А перевести проект на CMake? https://cmake.org/Wiki/CMake/Assembler
Volodymyr
Qt Creator с ним дружит
Nikolay
А перевести проект на CMake? https://cmake.org/Wiki/CMake/Assembler
О, а это мысль, спасибо. Как-то я не подумал, что CMake умеет с асмом работать.
IB
Поцаны
IB
Че, нула с белкой таки и посодили?
Nikolay
А интринсики не катят?
Ну как сказать, не катят... С одной стороны катят, конечно, что нам стоит дом построить?) А с другой, когда кода с ними больше чем в экран, то _mm256_ перед каждой командой и прочие функции по 30 символов в длину как-то утомляют.
John
Подскажите плс во что отреверсится adc edx,0? Я так понимаю эта команда используется, если складываются ультрабольшие числа, в то время как разрядность машины меньше. Я пробовал складывать 64 битные на 32х битной машине и в общем-то эта команда появляется, но складываются регистры, а не регистр с 0. В чем здесь смысл или это холостая операция (почему именно с 0) ? Вот код на всякий случай. Строка 21 (как она выглядит в С коде?). Origin это то что нужно отреверсить. My solution соответственно, то что у меня получилось восстановить. http://ideone.com/YB2TET
Jumpcode
кто в инфо безе шарит?
John
ну ты задай вопрос, а кто сможет, тот ответит а вообще инфосек это довольное широкое понятие
Jumpcode
по защите от хуков
Jumpcode
hooking
John
ты в dc7499 чате есть? можешь попробовать там спросить
Jumpcode
нет, пригласи плиз
John
@DC7499
John
хз как через вебморду приглашать
Jumpcode
спасибо)
John
ссылка кликабельна?
Jumpcode
+
Anonymous
всем привет. кто хорошо/отлично разбирается в тасме?
🦥Alex Fails
А в чем вопрос?
John
огромное спасибо за разъяснение!:)
Ask
а ся вот криво складывает 2 32битныйх числа в 1 64 битное
Ask
ути, туплю чото, перемножает криво..
x86-64
ути, туплю чото, перемножает криво..
Нужно явно привести первый множитель к 64-битному виду, тогда все будет ОК
Ask
О как
?
С Наступающим,а кого-то уже и с Новым Годом!)
x86-64
СНГ, товарищи хакеры и хардкорные программеры.
Ned
А кто может объяснить, что такое "отладочная инфа"?
Ned
Которую с ключом -g добавляет в код gcc
cyber
Ned
Полностью исходники?
Ned
Или после препроцессинга?
x86-64
Которую с ключом -g добавляет в код gcc
Дополнительные символы, трейс стека, много чего
x86-64
Гугли на тему Dwarf
x86-64
Dwarf используется не только для дебаггинга, но и для раскрутки стека в языках с обработкой исключений
x86-64
Исходники никуда не добавляются, dwarf хранит только позиции в файле исходника. Для дебаггинга нужны сами исходники
Ned
А еще... Вот есть какие-то секции в бинарнике. Из можно назвать как угодно, или что?
Ask
Какугодно
Ned
Кхм, а по какому потом принципу линкер компонует их в секции кода, данных и бсс?
Ned
Я вот вообще плохо понимаю, как оно работает
Ask
Как ему сказано так и линкует)
Ned
Киньте в меня чем-нить почитать
Ask
Н для начала формат PE
Ned
Как ему сказано так и линкует)
То есть, образно, я могу придумать свой формат, аналог ЭЛФ, компоновать данные как влезет и потом читать их соответствующе?
Ned
Упаси Боже от РЕ, я винды 7 лет не видел, какое РЕ?
Ask
Та написано кто и что кидает в какие секйии обычно
Ask
Ну elf
Ned
Нет, мне вот другое неясно. Всякие .rodata, .ctors, .dtors - нахуя?
Ned
Зачем отдельно хранить конструкторы и деструкторы?
Ned
Ладно там eh_frame
Ned
Статью бы какую-нить на тему всех этих компоновок и прочего, а то не ясно нихера...
Ask
Мб для удобства загрузки?)
Ned
Мб для удобства загрузки?)
Загрузки.. 1)чего? 2)куда? 3)кем?
Ned
Не понятно ничего, дядечка. Вот пишу кодец на асме - там все чётко: text, data, bss
Ned
Открываю бинарь - страхолюдина какая-то
Ask
Закрой, не травмируй психику тогда)
Ned
Ну лол, я понять хочу
Ask
Зачем линкер так делает?
Ask
Или для удобства или потому что так возжелал афтар линкера или для совместимости (стандарта) выбирай)
Ned
Ну, почитав про елф понял, что нихрена не понял
Ned
В нём по-прежнему может быть толпа левых секций, каких угодно и с каким угодно содержанием
Ask
https://en.m.wikipedia.org/wiki/.bss Целая статья %)
x86-64
В нём по-прежнему может быть толпа левых секций, каких угодно и с каким угодно содержанием
Совершенно верно, и это удобно. Можешь хранить произвольные данные а ELF-файле
🦥Alex Fails
Rarelf 😄
x86-64
Не понятно ничего, дядечка. Вот пишу кодец на асме - там все чётко: text, data, bss
Имена секций значения не имеют, если секция SHT_PROGBITS, она загружается, если SHT_NOBITS, забивается нулями. Неинициализированные данные помимо nobits-секций также могут опрелеляться как common-символы
x86-64
Зачем отдельно хранить конструкторы и деструкторы?
Потому, что конструкторы должны быть вызваны до передачи управления программе, а деструкторы - после того, как она вернет управление, и сделано это должно быть прозрачно.
x86-64
Упаси Боже от РЕ, я винды 7 лет не видел, какое РЕ?
PE - разновидность COFF, этот формат мелкомягкие спиздили из тогдашних юниксов. У него есть свои плюсы. Да и выбор его в качестве основного для UEFI так же заставляет присмотреться к нему.
Anonymous
Anonymous
посмотрите плиз почему переполнение буфера
Anonymous
даны 2 массива. первый отсортирован по убыванию, а второй по возрастанию. сформировать новый отсортированный по возрастанию ввод/вывод на с++, а обработка на асме
Человек-Даук
пошагово посмотри обработку, яб наверное игрался бы со стеком или взял бы говнокод:сортировка и ввод выборкой
Anonymous
http://pastie.org/private/cie3x9bf64nfasib3iq
Lev
https://youtu.be/MzOdIdzxSRs