Size: a a a

Ассемблер

2020 December 10

A

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

D

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

A

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

D

Den in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
данный ответ ты получишь разобрав тему работы с локальными переменными в процедурах
спасибо посмотрю!
источник

D

Den in Ассемблер
ну все я понял принцип, мы можем скопировать адрес sp в bp зарезервировать место в стеке с помощьу sub sp, size и гулять по стеку с помощью bp не трогая его, я еще просто с назначением bp небыл знаком а вот для чего он нужен значит
источник

A

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

D

Den in Ассемблер
а можно не sub sp,size а mov esp, eax например в котором корректный для стека адрес?
источник

D

Den in Ассемблер
Den
а можно не sub sp,size а mov esp, eax например в котором корректный для стека адрес?
а наверное это не будет работать если адрес стека поменяется при следующем старте системы или стек всегда по одним и тем же адресам?
источник

D

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

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Den
а можно не sub sp,size а mov esp, eax например в котором корректный для стека адрес?
да, именно так можно сделать несколько стеков, с сохранением старых
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
и вместо sub можно add. фасм и масм делают это поразному
источник

D

Den in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
и вместо sub можно add. фасм и масм делают это поразному
т.е можно где то в памяти в произвольном месте свой стек сделать? а если там данные от других программ? и как система поймет что это теперь стек, и будет ли система его тоже использовать и если да какому стеку она отдаст предпочтение старому или новому ? )) куча вопросов наверное глупых
источник

ST

Saenro T in Ассемблер
Den
т.е можно где то в памяти в произвольном месте свой стек сделать? а если там данные от других программ? и как система поймет что это теперь стек, и будет ли система его тоже использовать и если да какому стеку она отдаст предпочтение старому или новому ? )) куча вопросов наверное глупых
Никак. Это тебе нужно понимать что ты делаешь. Играйся как тебе угодно, но после себя прибери — поставь игрушки на свои места (верни sp на место, чтобы остальные тоже могли поиграть)
источник

A

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

D

Den in Ассемблер
Saenro T
Никак. Это тебе нужно понимать что ты делаешь. Играйся как тебе угодно, но после себя прибери — поставь игрушки на свои места (верни sp на место, чтобы остальные тоже могли поиграть)
т.е я могу забраться с помощью sp в область ядра, порыться там что-то поменять? вот в эти области vsdo vsyscall
источник

ST

Saenro T in Ассемблер
Да хоть в область экрана выводи свою картинку командами push, вообще без разницы.
источник

D

Den in Ассемблер
Saenro T
Да хоть в область экрана выводи свою картинку командами push, вообще без разницы.
а как же защищенный режим?
источник

ST

Saenro T in Ассемблер
Термин "стек" возможно и не появился бы без таких команд как push/pop.
источник

ST

Saenro T in Ассемблер
Den
а как же защищенный режим?
А экран что, Read Only?
источник

D

Den in Ассемблер
Saenro T
А экран что, Read Only?
я не знаю, ты про дос говоришь, про старые isa видеокарты типа svga?  у видеопамяти разве общее пространство с обычной памятью? я думал современные акселераторы какие то интерфейсы предоставляют для ос и потом уже через прерывания ос там можно чем то рулить, шейдерами всякими? я просто ничего об этом не знаю честно говоря
источник