|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.11.2012, 23:24 | #1 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 489
|
Передача одного из параметров в регистре EDX
Всем привет.
Вопрос такой. Пишу процедуру на встроенном ассемблере в Delphi. Вот код: Код:
Но адрес, который передается как параметр Data передается не через стек, а через регистр EDX. При выполнении команды mul (строчку кода выделил жирным и подчеркнул, этот же код на изображении ниже) регистр EDX "затирается" и вместе с ним и мой парметр Data. Прикрепляю код в отладчике: Хотелось бы узнать, я где-то ошибаюсь или это компилятор что-то попутал? Я же его не прошу передавать параметры через регистры.
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
Последний раз редактировалось chertovich; 30.11.2012 в 23:26. |
01.12.2012, 00:10 | #2 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 489
|
Оказывается передача параметров через регистры стоит по умолчанию.
Какой посоветуете ставить соглашение вызова? Pascal или stdcall, и почему?
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
|
01.12.2012, 00:18 | #3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
я бы оставил по умолчанию если нет нужды экспорта, иначе stdcall.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
01.12.2012, 00:20 | #4 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 489
|
По умолчанию не подходит, ко причине проблемы о которой я написал выше. Я поставил stdcall
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
|
01.12.2012, 00:32 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ну тогда совет напоследок, для асм процедур строго указывайте соглашение о вызове.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
01.12.2012, 00:34 | #6 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 489
|
Спасибо. Оно и логично, поскольку от соглашения о вызове зависит и код)
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача параметров | _Mixer_ | Общие вопросы по Java, Java SE, Kotlin | 0 | 22.09.2011 20:17 |
Передача параметров функции | Кипящий чайник | Общие вопросы C/C++ | 12 | 11.08.2010 19:45 |
передача параметров в createprocess | Consol | Win Api | 11 | 12.05.2010 13:49 |
Передача параметров | aesoem | Общие вопросы Delphi | 8 | 15.07.2008 21:51 |
Передача параметров | Gudzon | Общие вопросы Delphi | 12 | 08.02.2007 08:19 |