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
То есть это опционально?
Viktor
Хм, тогда нормально
Ask
если нужно сохранять регистры то можно uses юзать
Aiwan \ (•◡•) / _bot
Aiwan \ (•◡•) / _bot
это перевод последнего абзаца
Viktor
Ору
Aiwan \ (•◡•) / _bot
И МЫ СЧАСТЛИВЫ!!!
електр🟢нік ✙🟠рчбеч ඞ
кто о чём
електр🟢нік ✙🟠рчбеч ඞ
а мелкомягкие о бабле
Vladimir
format PE64 console 5.0
include 'win64wx.inc'
.code
start:
fastcall testarg,1,2,3,4
invoke ExitProcess,0
;---------------------------------
proc testarg v1,v2,v3,v4
mov [rbp+0x10],rcx ;сохраняем в теневую часть стека
mov [rbp+0x18],rdx
mov [rbp+0x20],r8
mov [rbp+0x28],r9
xor rcx,rcx ;что-то делаем с регистрами
xor rdx,rdx
xor r8,r8
xor r9,r9
mov rax,[rbp+0x10] ;используем переданные параметры
add rax,[rbp+0x18]
add rax,[rbp+0x20]
add rax,[rbp+0x28]
ret
endp
.end start
можно ли как нибудь обращаться к параметрам которые сохранены в теневой части по метке типа v1,...,v4. а то через [rbp+0x10] не совсем наглядно и понятно?
Что такое теневая часть, и нафига [rbp+...], если можно [rsp+...]?
Aiwan \ (•◡•) / _bot
вроде так
Anonymous
У меня опух мозг
Aiwan \ (•◡•) / _bot
Ask
rsp проще подпортить, а rbp мало кто трогает)
Ask
а где по вашему локальные переменные лежат?)
Vladimir
В спеке про эту особенность abi ни слова, пока путем экспериментов не допер, что надо резервировать место и для регистровых параметров.
Vladimir
Aiwan \ (•◡•) / _bot
Vladimir
Aiwan \ (•◡•) / _bot
имею ввидк относительно bp
Ask
ну вот сделал я push rcx и все, [rsp+8] уже указывает на другую переменную
Vladimir
Ask
а рбп подефолту никто не трогает кроме компилера, который говорит что var1 это к примеру [rbp+8]
Vladimir
Используй rsp+16 теперь
Ask
а зачем мне все время адрес счиать? я обьявил local var:dword и пох где он там лег
Ask
прологи и эпилоги компилер стам ставит, поэтому заморачиваться со стеком не нужно
Aiwan \ (•◡•) / _bot
Ask
да
Ask
proc это макрос же
Aiwan \ (•◡•) / _bot
да
Aiwan \ (•◡•) / _bot
в фасме по крайней мере
Куда там наш эйчар подевался? @Юлия
скучаешь?
Anonymous
В общем, в моем защищенном режиме надо "иди и кури порты ввода/вывода", я начал курить
Anonymous
пока общую теорию по работе с портавми ввода/вывода, про аналогичные возможности через ввод/вывод через память, их разницу
Anonymous
общее прдставление есть, чекаать спеки. Хотя б для клавы палленицу намутить.
Anonymous
блен, ну сложно, что я могу сказать. Пока в голове устаканивается
Anonymous
без понятия
Anonymous
гляжу, видать для работы с сетью?
Anonymous
https://www.intel.ru/content/www/ru/ru/support/articles/000005500/boards-and-kits.html -ну кароче тут вся инфа есть
Anonymous
для дебага походу надо
А ещё туда можно самому писать, и видеть на аппаратном уровне, что именно делает программа в данный момент.
Vladimir
А, еще специальная хреновина с индикатором для этого есть, в пци слот вставляется.
Anonymous
чтобы внешней железякой отслеживать работу камня?
Anonymous
Таненбаума мне пора, это вот точно
Aiwan \ (•◡•) / _bot
вверху справа, это типа биты выставлять?
Найн, это выбор тестов.
Aiwan \ (•◡•) / _bot
struc COLORREF
db 0
byRed db ?
byGreen db ?
byBlue db ?
ends
в секции данных могу определить байт без метки bd 0 , а почему не могу определить байт без метки в структуре? если нельзя то какой костыль можно сделать?
Aiwan \ (•◡•) / _bot
вопрос снят
Aiwan \ (•◡•) / _bot
можно там все
s54820
Aiwan \ (•◡•) / _bot
да, ошибся спс
Aiwan \ (•◡•) / _bot
а BOOL это 4 байта? я так, для справки
Это бит
True false
Не?
електр🟢нік ✙🟠рчбеч ඞ
вроде 1
електр🟢нік ✙🟠рчбеч ඞ
Aiwan \ (•◡•) / _bot
Это бит
перефразирую, когда в msdn указан тип BOOL сколько байт подразумевается
Ане Один разве?
Aiwan \ (•◡•) / _bot
или 1