|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.02.2024, 03:46 | #1 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 653
|
Взять переменную из стека не забирая ее
Что я знаю:
Что команда Push отправит в стек значение регистра А команда Pop вернет его обратно в регистр из стека, при этом стерев это из стека Вопрос: как из стека вернуть что в регистр не стирая из стека (потому как позже нужно будет опять возвращать эти же данные в регистр) |
03.02.2024, 05:33 | #2 |
Пользователь
Регистрация: 12.05.2011
Сообщений: 58
|
mov eax, [esp]
Только причём здесь Delphi? |
03.02.2024, 08:28 | #3 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,758
|
Причем тут асм, если вопрос по дельфям?
Цитата:
Если вы хотите просто гулять по стеку, то, скорее всего, вам надо поменять структуру или алгоритм. |
|
03.02.2024, 13:24 | #4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,619
|
О каких регистрах идёт речь? У Делфи нет такого понятия, кроме как "прописной" и "строчный" в строках. Есть только в способах передачи параметров в процедуру или функцию, но не об этом ведь идёт речь. Так что регистры процессора - это низкоуровневое программирование = асм. http://www.delphibasics.ru/1Type.php
Ну если уж нашёлся этот пресловутый регистр и в него Pop-нули, то что стоит из него обратно Push-нуть - и в регистре будет то, что надо, и указатель стека на том же месте. Чем больше читаю вопросы ТСа, тем больше поражаюсь глобальной грандиозности его замыслов. Последний раз редактировалось digitalis; 03.02.2024 в 13:36. |
04.02.2024, 14:19 | #5 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,829
|
Встроенный ассемблер (BASM) в Delphi создает видимый только в отладчике пролог и эпилог функции. В прологе значение ESP фиксируется в регистре EBP, что обеспечивает прозрачное обращение к переменным по имени из ассемблерного кода:
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Описать процедуру Minmax(X, Y), записывает в переменную X минимальное из значений X и Y, а в переменную Y - максимальное | kinash96 | Помощь студентам | 3 | 12.10.2013 19:49 |
взять переменную из файла | Кольша | PHP | 11 | 17.01.2012 17:03 |
Какую переменную взять для IntToHex? | Sanek777 | Общие вопросы Delphi | 1 | 21.09.2008 17:19 |
взять переменную из dll | Roof | Общие вопросы Delphi | 15 | 27.08.2008 16:40 |