Size: a a a

Ассемблер

2021 June 15

D

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

A

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

A

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

D

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

A

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

A

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

D

Den in Ассемблер
просто абстрактный пример, что есть такая штука, интересно стало посмотреть как работает
источник

АШ

Алексей Шведов... in Ассемблер
Да это просто чтоб ты про стэк не думал, и про то, как он работает))
источник

D

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

D

Den in Ассемблер
на самом деле там написано что локальные переменные типа облегчают работу со стеком потому что не надо работать с ebp+1-1 и тд а как бы с переменными работаешь а по факту получается ограничение на работу со строкой, не удобно, в 64x туда скорее всего можно по 8 байт заталкивать а так только по 4 и меньше, у меня чего то не получилось qword запихать
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
строки не заталкивают в стек, заталкивают их адреса, сами строки (даже в твоем коде) размещены в секции данных
источник

A

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

A

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

D

Den in Ассемблер
да вроде нормально работает , я в дебагере проверил, закрывается и printf и getch и ret и endp отрабатывает и exitprocess к ollydbg только никак не привыкну edb как то привычнее стал, и тут при sub esp почему то в стеке ссылки на ntdll оказываются, потом уже значением затираются, не понятно что это туда влетает или было уже там
источник

D

Den in Ассемблер
а ты имеешь ввиду align 4 перед proc сделать, что то типа того?
источник

A

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

A

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

D

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

A

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

A

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