· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Передача параметров

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Май 8, 2004 20:10:38

Из Зубкова вычитал про передачу пареметров
по имени суть понял, но не понял следующие
слова автора:

Место:5.2.1 процедуры и функции:
"Примерно так же поступают языки программи-
рования высокого уровня, поддерживающие этот
механизм: процедура получает адрес специаль-
ной функции-заглушки, которая вычисляет адрес
передаваемого по имени параметра"

Я не понимаю как это могло быть реализовано
может кто-то приведет примерный код.

А то я не врубаюсь в Передачу параметров с от-
ложенным вычислением.
Буду также рад коду и на это случай.

+P.S.: По мимо прочего хотел бы привести ст-
рочки кода, которые я встретив в описании мак-
роопределений:
cmp al,10
sbb al,69h
das
Именно этими строчками меня и потряс Зубков,
т.к. лучше думаю и быть не может!


Дата: Май 9, 2004 12:15:43

Ничерта не понял. Что за передача параметров по имени? У этого есть человеческое описание? Сильно подозреваю, что подобную терминологию ввел Зубков и взял он ее, как и большую часть терминов в своем творении, с неба. Приведи пример такой передачи параметров.


Дата: Май 9, 2004 14:06:56 · Поправил: Anonimka

EvilsInterrupt
Предлагаю тебе эту главу пропустить, там много ненужного.
Вообще, на мое мнение, есть всего три типа передачи параметров: по значению, по ссылке, по-идиотски.

n0p
А там имеется ввиду примерно такое (только не ржать):
pass_parameter macro param
 mov ax,param
endm

pass_parameter my_param
call my_proc


Дата: Май 9, 2004 15:48:57

может это аналог в С -
void Some_func(nParams, ...)
а функция сама должна вычислять сколько у нее параметров, их тип и адреса


Дата: Май 9, 2004 18:56:26

Anonimka
Как ни сдерживался, но не смог удержаться. Может я выпил слишком много коньяку, но на данный момент до меня не доходит практическая ценность сего метода.. :)


Дата: Май 9, 2004 19:04:49

DaemoniacaL
Буду рад конкретизации

All
А вообще вместо mov ax,param может быть и более длинный код!


Дата: Май 9, 2004 19:39:34

n0p
Не доходит, потому что "очень трудно искать черную кошку в темной комнате, особенно если ее там нет" (с) он самый.
А вообще, ценность может быть и есть, но она появляется только когда макрос становится более-менее содержательным.
И еще, обзывать такую настолько общую весчь, как использование макрооператора для передачи параметров, _методом_ этой передачи, по-моему, просто глупо.


Дата: Май 9, 2004 20:03:29

Место:5.2.1 процедуры и функции:
"Примерно так же поступают языки программи-
рования высокого уровня, поддерживающие этот
механизм: процедура получает адрес специаль-
ной функции-заглушки, которая вычисляет адрес
передаваемого по имени параметра"

А как конкретней?


Дата: Май 9, 2004 20:51:21

EvilsInterrupt
Предпологаю что передача параметров по имени выглядит так:
В программе есть таблица в которой хранятся имена и адреса некоторых объектов, а в функцию вместо объекта или его адреса передается его имя(возможно вместе с адресом функции для поиска объекта).


Дата: Май 9, 2004 20:56:00

Black_mirror
Очевидно. Но зачем такой изврат в compile-time?


Дата: Май 9, 2004 21:30:34

Спасибо!
А Передача параметров с отложенным вычислением?


Дата: Май 10, 2004 00:55:22 · Поправил: de_vastator

Вроде бы когда до функции доходит дело - все передаваемые ей данные помещаются в стек ... может Зубков про это ?


Дата: Май 10, 2004 09:14:50

de_vastator
Нет, по Зубкову про то что ты говоришь называется передача парметров через стек! А лучше открой и посмотри много интересного увидишь, взять хотя бы передачу в потоке кода!


Дата: Май 10, 2004 11:38:35

EvilsInterrupt
Там же ясно написано, что при передачи параметра отложенным вычислением, передается не сам параметр, а адрес функции, возвращаемое значение которой и является параметром процедуры.


Дата: Май 10, 2004 11:41:31

Oleg_SK
А код слабо слабать? :)))

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.076