Size: a a a

Ассемблер

2020 July 29

RS

Rusty Shackleford in Ассемблер
так, всётаки не пойму зачем резервировать место в стеке для аргументов >4 которые уже передаются через стек, получается во время вызова они будут в стеке + для них в стеке же будет зарезервировано место, какой смысл ?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
я подразумеваю что выделение места это уменьшение sp, в случае первых 4х регистров параметров это делается явно через вычитание, в случае остальных либо push, либо так же напрямую через вычитание из sp а далее mov по sp (пока это точно не проверял)
источник

A

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

RS

Rusty Shackleford in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
я подразумеваю что выделение места это уменьшение sp, в случае первых 4х регистров параметров это делается явно через вычитание, в случае остальных либо push, либо так же напрямую через вычитание из sp а далее mov по sp (пока это точно не проверял)
Ох точно!! )) что-то я загнался, показалось что сначало сабом вычетают стек а потом еще пушат параметры
источник

RS

Rusty Shackleford in Ассемблер
Очередное дело раскрыто! ))
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
аналог пуша это sub sp; mov [sp]
источник

RS

Rusty Shackleford in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
аналог пуша это sub sp; mov [sp]
дада, я почему-то подумал что два раза стек зачем-то уменьшают
источник

RS

Rusty Shackleford in Ассемблер
ну и тут мне кажется не точность получается в выражении, не резервирование по сути а передача
источник

RS

Rusty Shackleford in Ассемблер
Тоесть место под параметры после четвертого не резервируется, они фактически передаются на стек.
источник

RS

Rusty Shackleford in Ассемблер
резервируется всегда место только для теневой копии 4х аргументов которые идут через регистры
источник

RS

Rusty Shackleford in Ассемблер
R G
резервировать нужно столько, сколько аргументов, но не меньше 4ех
вот это запутало немного )
источник

RG

R G in Ассемблер
аааа, точно. У аблязова просто как то странно написано в тексте
источник

RG

R G in Ассемблер
перечитал код и тоже понял теперь
источник

RG

R G in Ассемблер
то есть "лишнее" место в стеке только под 4 параметра выделяется
источник

RS

Rusty Shackleford in Ассемблер
да
источник

RS

Rusty Shackleford in Ассемблер
Аблязов ужасно кстати пишет
источник

RS

Rusty Shackleford in Ассемблер
но за неимением другова...
источник

RS

Rusty Shackleford in Ассемблер
у него много проскакивате таких мест типа - в ввиду очевидности использование коментариев не требует...
источник

RS

Rusty Shackleford in Ассемблер
)))
источник

RG

R G in Ассемблер
ага, тож заметил
источник