169 похожих чатов

В esp (при push ebp; mov ebp, esp) же адресс

находится? А как он уменьшается, допустим, на 5 при команде enter 5,0? Как можно, допустим, 0x018181833 уменьшить на 5?

10 ответов

10 просмотров

Это всего-лишь значение...

Alan 🔝-Бэброу Автор вопроса
Alan 🔝 Бэброу
Я не понял...

Ну это указатель. Значение. 0x018181833 - указатель на ячейку памяти (адрес) 0x018181833 - 0x5 = 0x1818182E - указатель (адрес) на другую ячейку памяти.. Ты чего. Шаг вперёд, два назад

Alan 🔝-Бэброу Автор вопроса
Entusiast
Ну это указатель. Значение. 0x018181833 - указател...

Т.е., в esp какая-то большая цифирка лежит, которую можно уменьшить на x?

Alan 🔝 Бэброу
Т.е., в esp какая-то большая цифирка лежит, котору...

mov eax, 1 mov ebx, 1 sub eax, ebx Ты спрашиваешь - "В EAX лежит 1, а в EBX 1, как можно отнять 1 от 1??" Ну т.е вопрос очень вообще странный. Ты запутался, наверное, из-за ЯВУ, или ещё из-за чего-то. Что тебе вдруг начало казаться, что указатель, или адрес, который лежит в регистре - никак не вычислить

Alan 🔝-Бэброу Автор вопроса
Entusiast
mov eax, 1 mov ebx, 1 sub eax, ebx Ты спрашиваешь...

А, можно вычислить? И как (может, поняв это, пойму и sub esp, x)?

Alan 🔝 Бэброу
А, можно вычислить? И как (может, поняв это, пойму...

Найди какую-нибудь банальную статью по ассемблеру для новичков, почитай. Я думал, ты уже продвинулся.. Банально поотлаживай вот этот код (хотя я вообще не понимаю, какой от этого смысл): mov esp, 1 ESP = 1 sub esp, 1 ESP = 0 mov eax, 1 EAX = 1 sub eax, 1 EAX = 0 mov esp, 0x12121212 ESP = 0x12121212 sub esp, 0x12121212 ESP = 0

Alan 🔝-Бэброу Автор вопроса
Entusiast
Найди какую-нибудь банальную статью по ассемблеру ...

Та это я понял.. Я не мону понять саму суть работы enter, вот, нахрен ему у адресса esp x отнимать, чтобы выделить в стеке память, если нужно в сам стэк идти и туда все ложить? Допустим, esp = 0x12121212, ну и отними у него 5? Что? Получится 0x1212127?

Alan 🔝-Бэброу Автор вопроса
Alan 🔝 Бэброу
Та это я понял.. Я не мону понять саму суть работы...

Или 5 в hex переводится, а затем у 0x12121212 отнимается 5 (hex'овый)?

Alan 🔝 Бэброу
Та это я понял.. Я не мону понять саму суть работы...

Нет, получится 0x1212120D И это мы уже выше обсуждали - нужно создавать кадры стека, чтобы работать с локальными переменными, и не запоминать их индексы слишком далеко: push eax ; 4 push ebx ; 8 push ecx ; 12 push edx ; 16 mov dword[esp-20] ESP-20 = local var 1 ESP+20 = argument 1 Лучше: push ebp ; 4 mov ebp, esp sub esp, 4 ; Одна локальная переменная push eax ; 4 push ebx ; 8 push ecx ; 12 push edx ; 16 EBP-8 = local var 1 EBP+8 = argument 1 И так же есть другие причины, требующие создание стека. Я тебе уже скидывал статью по стеку, где описываются эти моменты EBP (Base Pointer), фактически предназначен для этого ( ESP - stack pointer)

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
I just installed it but how do I use it?
Talula
12
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Приветствую всех, возникла проблема, до этого писал бота в простом формате где при выполнении условий приходило через send_message информация, сейчас решил добавить хендлер на...
Andrew
4
Good afternoon, I just started learning php in conjunction with mysql. I am registering a system on a local Mamp server using phpMyAdmin. It seems to be stored normally in the...
ManGo
1
Карта сайта