Size: a a a

Ассемблер

2021 June 15

D

Den in Ассемблер
там следующий шаг leave отрабатывает и стирает локальные данные до proc.0040... вроде норм
источник

ВХ

Віталій Халак... in Ассемблер
признавайся: как телегу на xp поставил?!
источник

D

Den in Ассемблер
на рутрекере лежит версия для xp
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
у тя через одно место реализовано одновременное использование локальных данных и аргументов для функции
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
ну так в чем у тя проблема, повтори
источник

D

Den in Ассемблер
да мне тоже не нравится, двойное копирование но так в книжке было указано, так вроде макрос этот proc работает, он сначала копирует данные или адреса(что положишь) из аргументов в стэк, потом делает фрейм и потом из под фрейма копирует из стека уже эти данные в локальные свои переменные уже во фрейме а размер фрейма какраз определяется этими locals их размером и колличеством
источник

D

Den in Ассемблер
да я хотел qword в процедуру передать размеры
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
ничего тн второй раз не копирует, ты этого сам не делаешь. ты претворяешь локальные переменные в стеке параметрами для принтф
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
передавай по частям
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
у тя примерно такая ситуация, пытаешься изголиться, а понятность и читаемость теряется
источник

D

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

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
и тебе не надо указывать второй параметр для принтф, в первой строке отсутсвует формат (%...)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
да и первая строка не нультерминированная, поэтому она будет пролжаться пока не встретит ноль, тоесть в конце второй строки
источник

d

disba1ancer in Ассемблер
Мне кажется лучше всю эту дрянь ручками вызывать и локальные переменные ручками делать
источник

d

disba1ancer in Ассемблер
И на 32ух битах можно не использовать ebp как начало стекфрейма
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
нет, для этого макросы есть. тебе следовало просто использовать макрос для вызова принтф
источник

d

disba1ancer in Ассемблер
Целый регистр выбиваем
источник

D

Den in Ассемблер
а он похоже по умолчанию ascii я искал параметр как длинну строки указать но что то не нашел, подумал он ее только по нулю определяет
источник

d

disba1ancer in Ассемблер
А у принтфа точно stdcall, кстати?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
нет, cdecl
источник