Size: a a a

Ассемблер

2021 June 21

DB

Dima Bat in Ассемблер
да не нужна мне ваша винда
источник

DB

Dima Bat in Ассемблер
🤣
источник

АШ

Алексей Шведов... in Ассемблер
Вот ещё один пример. Функция с двумя аргументами. Инициализация - берутся аргументы через стэк на x64. Почему?
источник

DB

Dima Bat in Ассемблер
у меня со стеком работа 2 такта, а с решистрами 1
источник

DB

Dima Bat in Ассемблер
надо через решистры
источник

АШ

Алексей Шведов... in Ассемблер
Потому что mov и add/sub занимает 2 такта
источник

d

disba1ancer in Ассемблер
а что за функция такая? на кой хер ты инфу от меня скрыл, это не честно
источник

АШ

Алексей Шведов... in Ассемблер
CreateDirectoryA(LPCSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes)
источник

АШ

Алексей Шведов... in Ассемблер
Это уже kernelbase.dll
источник

DB

Dima Bat in Ассемблер
источник

DB

Dima Bat in Ассемблер
источник

DB

Dima Bat in Ассемблер
с регистрами везде один
источник

АШ

Алексей Шведов... in Ассемблер
push = mov, add = 2 такта
mov = 1 такт
источник

DB

Dima Bat in Ассемблер
это ваши Фон нейманы медленные такие
источник

DB

Dima Bat in Ассемблер
гарварды летают
источник

DB

Dima Bat in Ассемблер
а вот push и pop 2 такта
источник

d

disba1ancer in Ассемблер
я понял что тут происходит, по ходу на стеке выделили буфер под юникодную строку, чтобы конвертировать из utf16 в 8мибитную кодировку, всё через регитсры
источник

АШ

Алексей Шведов... in Ассемблер
И за одно там прыжок в CreateDirectoryW, где тоже получение аргументов через стэк
источник

d

disba1ancer in Ассемблер
всё там через регистры, мне, кажется ты читал этот код не вдумываясь
источник

d

disba1ancer in Ассемблер
точнее наоборот из 8мибитной кодировки в utf-16
источник