|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.10.2012, 20:52 | #11 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
это, если правильно помню не stdcall, а fastcall
|
23.10.2012, 21:45 | #12 |
Форумчанин
Регистрация: 11.04.2012
Сообщений: 212
|
То есть соглашение - Pascal fastcall.
В 32-битной среде оно подразумевает передачу первых не более чем трех аргументов через РОН eax, edx, ecx слева направо в порядке декларации. А ты мало того что игнорируешь требования fastcall-соглашения, так еше и нарушаешь условия задания, в котором с твоих же слов заявлено требование по stdcall-соглашению. |
24.10.2012, 08:29 | #13 |
Пользователь
Регистрация: 23.02.2009
Сообщений: 78
|
всем спасибо) вопрос закрыт, помогли на другом форуме)
конечный результат функции Код:
|
24.10.2012, 09:52 | #14 |
Форумчанин
Регистрация: 11.04.2012
Сообщений: 212
|
Код:
|
24.10.2012, 12:31 | #15 |
Пользователь
Регистрация: 23.02.2009
Сообщений: 78
|
я в ассеме не очень хорошо, но может еах имеется ввиду от используемой функции библиотечной, а результ от нашей, кстати, реально сделать чтобы учитывалось var const и out, как в ассеме это осуществить тут?
|
24.10.2012, 13:20 | #16 | ||
Форумчанин
Регистрация: 11.04.2012
Сообщений: 212
|
Цитата:
Посему компилятор при генерации машкода строчки Код:
В результате машинструкция этой строчки будет mov eax, eax которая и является совершенно бестолковой и лишней. Цитата:
var имеет смысл рассматривать только при условии что клиентское описание параметров вызова позволяет описать и переменные, ссылки на которые требуется передать соотв. var-параметрами. |
||
24.10.2012, 13:42 | #17 | |
Пользователь
Регистрация: 23.02.2009
Сообщений: 78
|
Цитата:
Передача параметров по значению говорится о const? Процедуре передается собственно значение параметра. При этом фактически значение параметра копируется, и процедура использует его копию, так что модификация исходного параметра оказывается невозможной. Этот механизм применяется для передачи небольших параметров, таких как байты или слова. Например, если параметры передаются в регистрах: Код:
Процедуре передается не значение переменной, а ее адрес, по которому процедура должна сама прочитать значение параметра. Этот механизм удобен для передачи больших массивов данных и для тех случаев, когда процедура должна модифицировать параметры, хотя он и медленнее из-за того, что процедура будет выполнять дополнительные действия для получения значений параметров. Код:
Этот механизм объединяет передачу по значению и по ссылке. Процедуре передают адрес переменной, а процедура делает локальную копию параметра, затем работает с ней, а в конце записывает локальную копию обратно по переданному адресу. Этот метод эффективнее обычной передачи параметров по ссылке в тех случаях, когда процедура должна обращаться к параметру достаточно большое число раз, например, если используется передача параметров в глобальной переменной: Код:
Последний раз редактировалось Biohazard; 24.10.2012 в 13:53. |
|
24.10.2012, 16:41 | #18 | |
Форумчанин
Регистрация: 11.04.2012
Сообщений: 212
|
Цитата:
|
|
24.10.2012, 17:09 | #19 |
Пользователь
Регистрация: 23.02.2009
Сообщений: 78
|
не думаю что задача нерешаема, думаю что просто она нам с вами не по зубам(
|
24.10.2012, 17:29 | #20 |
Форумчанин
Регистрация: 11.04.2012
Сообщений: 212
|
Тебе она точно не по зубам.
Что касается меня, то задание дано не мне. Но если бы оно таки было дано мне, то первое чтобы я сделал - ткнул препода носом в заведомую противоречивость его требований, ибо ни о каких передачах параметров по ссылкам не может вообще идти речи при том примитивном описании аргументов. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Загрузка компонент из DLL | Hottabych | Компоненты Delphi | 0 | 13.02.2011 16:18 |
[DLL] Загрузка и выгрузка dll в/из чужого процесса | Человек_Борща | Win Api | 4 | 28.02.2010 17:47 |
Загрузка dll | Колючка* | Общие вопросы Delphi | 3 | 12.02.2010 19:45 |
загрузка .dll | blackstersl | Общие вопросы Delphi | 1 | 29.04.2009 21:53 |
Загрузка DLL | Hollander | Общие вопросы Delphi | 3 | 21.05.2007 20:19 |