Aiwan \ (•◡•) / _bot
Филипп
Перешёл на NASM...
The Bird of Hermes
Филипп
С FASM.
The Bird of Hermes
The Bird of Hermes
FASM лучше
Филипп
Чем лучше?
Филипп
Я так и не понял, как добавить отладочную информацию.
Mixail
Филипп
А как без неё?
Mixail
ручками, мозгами
Mixail
ну для приличия можно файл символов сгенерить
Филипп
Господа, отлаживать без символов — это лишняя когнитивная нагрузка. Она забирает часть внимания, которое можно направить на более полезные занятия. Я не вижу ни одной причины не использовать отладочной информации.
Aiwan \ (•◡•) / _bot
Aiwan \ (•◡•) / _bot
aschensekt
https://board.flatassembler.net/topic.php?t=20065
aschensekt
Из раза в раз кто-то дебаггер просит, из раза в раз отвечают, что символы не нужны, дебажь мозгом
The Bird of Hermes
Он тогда сможет считать символы
Филипп
А она при программировании на ассемблере очень высокая.
The Bird of Hermes
Aiwan \ (•◡•) / _bot
The Bird of Hermes
Правда не уверен, что x64dbg есть на линьку
Филипп
Ладно, извините, возможно, я не прав.
The Bird of Hermes
The Bird of Hermes
😁
Alexey
Mixail
The Bird of Hermes
The Bird of Hermes
Или для каких-нибудь regcall руками указать, в какие регистры какие параметры пихнуть
Mixail
Mixail
в чистом асме всё это и так легко прописывается и намного более оптимально для кода
The Bird of Hermes
а зачем макросы тут?
Как ты там говорил? Руки не обломятся?) А я вот считаю, что обломятся
The Bird of Hermes
И лучше пусть писать код будет комфортно и удобно
Mixail
за комфортно это надо в питон или js идти, там комфорт прям на все 100%
The Bird of Hermes
The Bird of Hermes
И могу себе позволить это сделать без ущерба производительности
The Bird of Hermes
Если компилятор позволяет мне писать удобнее, проще и без потери производительности при этом - почему я не должен этого делать?
Mixail
насколько помню у тебя применяется thiscall, что уже не оптимально
The Bird of Hermes
The Bird of Hermes
Виндовый
The Bird of Hermes
На х86 все было сделано на скорую руку в общем-то
Mixail
The Bird of Hermes
Mixail
потому что он стандартный и не меняется от ситуации. В асме без макросов можно спокойно и без лишних телодвижений сделать своё соглашение о вызовах, которое будет производить намного меньше лишних действий, когда это возможно
Mixail
с внешними апи конечно стандартные соглашения о вызовах более предпочтительны, а вот внутри программы
The Bird of Hermes
Mixail
какая тогда выгода от макроса?
The Bird of Hermes
Вместо
mov rax, 5
mov rcx, 7
mov rdx, 12
call func
Возможно сделать
_call func, rax:5, rcx:7, rdx:12
Mixail
и часто в функции передаются только константы ? по мне так очень редко и в основном передаются различные буферы, числа(описывающие что-то, например длина буфера), структуры и тд
The Bird of Hermes
Alexey
The Bird of Hermes
reg:[a], reg:addr a и так далее
The Bird of Hermes
Это можно неограниченно параметризировать
Mixail
Это можно неограниченно параметризировать
смысл от такого? код обычно строится на динамических и неопределённых заранее элементах, тебе в любом случае их надо ещё до вызова функции хранить. Так зачем делать двойную работу?
The Bird of Hermes
The Bird of Hermes
Я просто превращаю
mov rax, 4
mov rcx, [a]
lea rdx, [b]
call func
В
_call func, rax:4, rcx:[a], rdx:addr b
The Bird of Hermes
Я попросту упрощаю себе жизнь, делая вызов функции однострочной операцией
Aiwan \ (•◡•) / _bot
макросы просто превращают "вертикальный" код в "горизонтальный"
Aiwan \ (•◡•) / _bot
Mixail
сможешь через макросы описать что функция может затереть а может и не запереть "аргументы"(по факту просто память под возвращаемые функцией данные) на стеке ?
Aiwan \ (•◡•) / _bot
Aiwan \ (•◡•) / _bot
Aiwan \ (•◡•) / _bot
Mixail
наверное я не так выразился - функция в зависимости от каких-то своих состояний может уменьшить стек после возврата, а может и не уменьшить
Aiwan \ (•◡•) / _bot
The Bird of Hermes
Alexey
Зачем задавать вопросы, на которые уже известен ответ?
Aiwan \ (•◡•) / _bot
заем тогда макрос нужен если всё равно это ничего не изменит?
из 60 печатаемых символов организованных вертикально сделать 24, но горизонтально 1 строкой. текст мы читаем горизонтально, что для восприятия мозгом привычней и продуктивней. за 1 строку мы видим ВСЕ, что могли написать, а потом на некоторое время зависнуть для понимания, в 7 строк
Alexey
Mixail