|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.11.2017, 22:37 | #1 |
Регистрация: 13.10.2016
Сообщений: 5
|
Проблемы с стеком
Почему так программа работает
Код:
Код:
|
14.11.2017, 22:57 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
команда Call помещает адрес возврата в тот же стек, откуда Вы хотите сделать pop bx
в результате вашего лишнего pop bx : 1) в bx попадает мусор вместо ожидаемого значения ax, которое вы занесли в стек перед вызовом процедуры 2) при выполнении команды ret управление передаётся не в точку вызова в принципе можно обратиться и к тому значению, которое Вы занесли в стек через регистр sp, но Вам точно это нужно? |
14.11.2017, 23:18 | #3 | |
Регистрация: 13.10.2016
Сообщений: 5
|
Цитата:
Что-то типо? Вроде работает. Правильно? Код:
|
|
14.11.2017, 23:47 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
18.11.2017, 22:24 | #5 |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
Только обычно bp сохраняют предварительно (и потом восстанавливают), и тогда будет mov bx,[bp+4] (только почему бы сразу не записывать в dx)?
А ещё можно сделать так: Код:
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C++ Работа со стеком | Евангелина Гедерт | Помощь студентам | 0 | 16.06.2014 02:44 |
Работа со стеком | ksu04061992 | Помощь студентам | 0 | 28.05.2012 01:37 |
Работа со стеком | YTP0 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 06.04.2011 17:40 |
Работа со стеком | 0479 | Общие вопросы по Java, Java SE, Kotlin | 2 | 27.02.2011 21:38 |
Работа со стеком | KBAC | Помощь студентам | 0 | 26.12.2010 12:54 |