Viktor
А зачем это определять в calling convention?
Ask
а как подругому?
Viktor
Достаточно же определить какие регистры callee saved/preserved и какие caller saved/scratch
Viktor
А там пускай программист и компилятор сами решают
Aiwan \ (•◡•) / _bot
Viktor
Может у меня функция возвращает arg1 + arg2, можно было бы mov rax, rcx add rax, rdx
Aiwan \ (•◡•) / _bot
пожалуста, насчет возвращаемого значение почти ничего не поменлось
Ask
ну так и пиши, в чем проблема, сейвить в стек надо если ты эти значение много раз использовать будешь
Viktor
То есть это опционально?
s54820
А зачем это определять в calling convention?
Потому что Microsoft. https://blogs.msdn.microsoft.com/oldnewthing/20160623-00/?p=93735
Viktor
Хм, тогда нормально
Ask
если нужно сохранять регистры то можно uses юзать
Aiwan \ (•◡•) / _bot
это перевод последнего абзаца
Viktor
Ору
Aiwan \ (•◡•) / _bot
И МЫ СЧАСТЛИВЫ!!!
електр🟢нік ✙🟠рчбеч ඞ
кто о чём
електр🟢нік ✙🟠рчбеч ඞ
а мелкомягкие о бабле
Aiwan \ (•◡•) / _bot
Что такое теневая часть, и нафига [rbp+...], если можно [rsp+...]?
а bp используется потому что сначало вычитается из sp, а потом при входе в процедуру bp приравнивается к sp
Aiwan \ (•◡•) / _bot
вроде так
Vladimir
а bp используется потому что сначало вычитается из sp, а потом при входе в процедуру bp приравнивается к sp
Это легаси, тянущееся еще из 16-битного режима, где нет sib-адресации и нельзя использовать sp как базу, потому и использовали bp. В 32 и 64 frame pointer нужен только для дебаггеров. И -fomit-frame-pointer в gcc тоже освобождает ebp.
Anonymous
У меня опух мозг
Ask
rsp проще подпортить, а rbp мало кто трогает)
Vladimir
так я ошибаюсь с определением "теневой части стека"?
Я вообще не в курсе нах она нужна. Как я понял, эта та самая хуйня, когда резервируется в стеке место для регистровых параметров. И с которым я в свое время изрядно натрахался, когда только начал разбираться с uefi.
Ask
а где по вашему локальные переменные лежат?)
Vladimir
В спеке про эту особенность abi ни слова, пока путем экспериментов не допер, что надо резервировать место и для регистровых параметров.
Aiwan \ (•◡•) / _bot
имею ввидк относительно bp
Ask
ну вот сделал я push rcx и все, [rsp+8] уже указывает на другую переменную
Ask
а рбп подефолту никто не трогает кроме компилера, который говорит что var1 это к примеру [rbp+8]
Vladimir
Используй rsp+16 теперь
Ask
а зачем мне все время адрес счиать? я обьявил local var:dword и пох где он там лег
Ask
прологи и эпилоги компилер стам ставит, поэтому заморачиваться со стеком не нужно
Ask
да
Ask
proc это макрос же
Aiwan \ (•◡•) / _bot
да
Aiwan \ (•◡•) / _bot
в фасме по крайней мере
­
Куда там наш эйчар подевался? @Юлия
скучаешь?
Anonymous
В общем, в моем защищенном режиме надо "иди и кури порты ввода/вывода", я начал курить
­
скучаешь?
Жду спама.
Anonymous
пока общую теорию по работе с портавми ввода/вывода, про аналогичные возможности через ввод/вывод через память, их разницу
Anonymous
общее прдставление есть, чекаать спеки. Хотя б для клавы палленицу намутить.
Anonymous
блен, ну сложно, что я могу сказать. Пока в голове устаканивается
Anonymous
без понятия
Anonymous
гляжу, видать для работы с сетью?
Vladimir
Что у тебя в 80h порту?
Это же маппер для dma, не?
Anonymous
https://www.intel.ru/content/www/ru/ru/support/articles/000005500/boards-and-kits.html -ну кароче тут вся инфа есть
Anonymous
для дебага походу надо
­
для дебага походу надо
Для отслеживания, на каком моменте POST останавливается.
­
А ещё туда можно самому писать, и видеть на аппаратном уровне, что именно делает программа в данный момент.
Vladimir
А, еще специальная хреновина с индикатором для этого есть, в пци слот вставляется.
Anonymous
чтобы внешней железякой отслеживать работу камня?
Anonymous
Таненбаума мне пора, это вот точно
Aiwan \ (•◡•) / _bot
Ага, типа такой.
вверху справа, это типа биты выставлять?
­
Найн, это выбор тестов.
Aiwan \ (•◡•) / _bot
struc COLORREF db 0 byRed db ? byGreen db ? byBlue db ? ends в секции данных могу определить байт без метки bd 0 , а почему не могу определить байт без метки в структуре? если нельзя то какой костыль можно сделать?
Aiwan \ (•◡•) / _bot
вопрос снят
Aiwan \ (•◡•) / _bot
можно там все
Aiwan \ (•◡•) / _bot
да, ошибся спс
Aiwan \ (•◡•) / _bot
а BOOL это 4 байта? я так, для справки
Это бит
True false
Не?
електр🟢нік ✙🟠рчбеч ඞ
вроде 1
електр🟢нік ✙🟠рчбеч ඞ
Aiwan \ (•◡•) / _bot
Это бит
перефразирую, когда в msdn указан тип BOOL сколько байт подразумевается
­
Ане Один разве?
Aiwan \ (•◡•) / _bot
или 1