![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Процедуры и функции [D7, XP]
Steep © (2006-12-19 16:12:00)Как я понял использование (изменение) параметров компонента в сабже запрещена.
Как этого можно избежать обойти?
Anatoly Podgoretsky (2006-12-20 13:35:00) [41]> Сергей М. (20.12.2006 13:19:12) [72]
> Все равно "простым смертным", не читавшим справку, это не понять)
Согласен
Anatoly Podgoretsky (2006-12-20 13:35:00) [42]> Сергей М. (20.12.2006 13:21:13) [73]
Не привыкать
Anatoly Podgoretsky (2006-12-20 13:33:00) [43]> oxffff (20.12.2006 13:13:09) [69]
In параметры, а также var, out также не имею отношения к возвращаемым функциям значениям.
Anatoly Podgoretsky (2006-12-20 13:33:00) [44]> Сергей М. (20.12.2006 13:14:10) [70]
Читай выше
Anatoly Podgoretsky (2006-12-20 13:32:00) [45]> Сергей М. (20.12.2006 13:10:07) [67]
Баланс стека не имеет отношения к возврату значений.
Значения не возвращаются через стек.
Возврат значений языко независим и не зависим от примененого соглашения об вызове, он всегда одинаков.
Anatoly Podgoretsky (2006-12-20 13:32:00) [46]> oxffff (20.12.2006 13:11:08) [68]
Не тороплюсь, стек то при чем?
Steep (2006-12-20 13:31:00) [47]
> Только не спрашивай почему)
вот сдесь то как-раз я все и понял :)
> > тип integer (ведь двоичние числа не могут быть real)
>
>
> Ерунду ты сморозил
то есть если я вызову смещения для числа (14,5) в двоичной системе это
1110 (как и 14) (хотя может это кидаеться в доп регистр - это уж я не знаю)
то получится те же 111 (7)
или нет?
Сергей М. (2006-12-20 13:21:00) [48]
> тип integer (ведь двоичние числа не могут быть real)
Ерунду ты сморозил
Сергей М. (2006-12-20 13:19:00) [49]
> Steep © (20.12.06 13:16) [71]
Конкретно для данногослучая это будет выглядеть так:
fuction smech(chislo: integer): integer;
asm
shr eax, 1
end;
Только не спрашивай почему).. Все равно "простым смертным", не читавшим справку, это не понять)
Steep (2006-12-20 13:16:00) [50]ну функция я вроде описал
fuction smech(chislo: integer): integer;
begin
asm
//здесь нужно делать смещение как-то вывести результат в result
//shr F1
end;
end;
тип integer (ведь двоичние числа не могут быть real)
как я понял остальное лучше смотреть в справке (ато вы спорите о той фигне которую нам [простым смертным] не понять, а вопрос так и остаеться нераскрытым....)
Сергей М. (2006-12-20 13:14:00) [51]
> Anatoly Podgoretsky © (20.12.06 13:05) [66]
Если ты о "стандартной" паре [edx:]eax, то на то она и "стандартная" пара для "стандартных" же соглашений) .. А если соглашение не стандартное ?
oxffff (2006-12-20 13:13:00) [52]
> Anatoly Podgoretsky © (20.12.06 13:05) [66]
> > Сергей М. (20.12.2006 13:02:05) [65]
>
> При возврате из функций соглашение об вызове не используется.
>
Не торопитесь.
Используется.
А кто стек будет очищать?
Caller или func.
Я имею ввиду In параметры.
oxffff (2006-12-20 13:11:00) [53]
> Anatoly Podgoretsky © (20.12.06 13:05) [66]
> > Сергей М. (20.12.2006 13:02:05) [65]
>
> При возврате из функций соглашение об вызове не используется.
>
Не торопитесь.
Используется.
А кто стек будет очищать?
Caller или func.
Сергей М. (2006-12-20 13:10:00) [54]
> Anatoly Podgoretsky © (20.12.06 13:05) [66]
Как раз привозврате они и используются - соглашения при этом определяют, кто является ответственным за баланс стека.
Anatoly Podgoretsky (2006-12-20 13:05:00) [55]> Сергей М. (20.12.2006 13:02:05) [65]
При возврате из функций соглашение об вызове не используется.
Сергей М. (2006-12-20 13:02:00) [56]
> как вернуть значении из функции использующей асм
Смотря что за тип значения и смотря какое соглашение о вызове этой ф-ции использовано.
Anatoly Podgoretsky (2006-12-20 12:58:00) [57]> Steep (20.12.2006 12:55:03) [63]
Определяется типом возвращаемых данных, описание есть в справке и это не зависит от того, асм или нет.
Steep (2006-12-20 12:55:00) [58]я может несовсем понятно выразился
мне в теории нужно как вернуть значении из функции использующей асм
сдвиг я бы уж нашел, но все равно спасибо!
Сергей М. (2006-12-20 12:47:00) [59]
> Steep © (20.12.06 11:49) [60]
>
>
Это называется не "смещение числа", а поразрядный сдвиг.
см. shr
novill (2006-12-20 12:12:00) [60]> Смещение числа
> т.е.
> 1110 (14) смещаем 111 получаем 7
shr