Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Lovkach
5 / 5 / 0
Регистрация: 12.08.2009
Сообщений: 25
1

Задать несколько значений в один параметр функции

10.09.2009, 21:39. Просмотров 1073. Ответов 3
Метки нет (Все метки)

В Дельфях например есть такая структуа:
Delphi
1
AnyFunction(@target, @source, ACCESS_ATTRIBUTE1 or ACCESS_ATTRIBUTE2)
Или в Сях
C++
1
2
3
4
AnyFunction(&target, *source, ACCESS_ATTRIBUTE1 || ACCESS_ATTRIBUTE2)
// или так
AnyFunction(&target, *source, ACCESS_ATTRIBUTE1 && ACCESS_ATTRIBUTE2)
// ну или примерно так...
Вот для начало разъясните ктонить мне как это работает и как такуюже структуру реализовать в АСМме. Ну всмысле как понять эту структуру: значит допустим в AnyFunction берем source, берем не просто а с ACCESS_ATTRIBUTE1 "или":"и" ACCESS_ATTRIBUTE2 делаем чтото в функции и засовываем результат в target. Атрибуты в абсолютном понимание это всеголишь шеснадцатиричные значения которые играют какуюто роль в функции Например: ACCESS_ATTRIBUTE1=0х0200 ACCESS_ATTRIBUTE2=0х0040. По логике получается параметр функции один а задаются два разных атрибута и т.к. это числа, то 200h or 40h = 240h или 200h and 40h = 0h. Значит в параметр передается одно значение, что есть результат логической операции или както по хитрому обрабатывается?
Или сначало проверяется один атрибут при "или" если не прошел то проверяется второй, а при "и" проверяются оба??
Следующий момент как таоеже проделать а АСМе?
Если я правильно догадался про механику работы, то мне кажется вот так:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
push ACCESS_ATTRIBUTE2
push source
push target
call AnyFunction@12
cmp eax, 0 ; т.к. функции в большинстве случаев возвращают в eax какието значения то сравниваем с нудем
jz ...; прыгаем на установку другого атрибута
 
push ACCESS_ATTRIBUTE1
push source
push target
call AnyFunction@12
cmp eax, 0
jz ... ; и так далее...
Нужен совет как делать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2009, 21:39
Ответы с готовыми решениями:

Вычисление шести значений функции возвращает только один ответ
Программа считает правильно, только на экран выводит первое значение. В чем...

Как задать несколько интервалов для проверок чисел?
.MODEL SMALL; .STACK 400H; .data m1 db 22h,10h,13h,21h...

Передать несколько значений в параметр report builder
Как программно передать в параметр отчета несколько значений? Я передаю так : ...

Задать функцию как параметр функции
Написал программу для решения уравнения с вырожденным ядром, где по ходу...

Как праильно задать параметр функции?
Здравствуйте. Есть функция, которая выводит блоки div из массива и функции...

3
odip
Эксперт С++
7162 / 3221 / 76
Регистрация: 17.06.2009
Сообщений: 14,161
11.09.2009, 11:02 2
Ты правильно догадался - подается одно значение - 240h.
Внутри функции оно опять разбиратся на биты и определяется какие биты выставлены.

Добавлено через 1 час 51 минуту
Если я правильно догадался про механику работы, то мне кажется вот так
А вот это совсем неправильно.
0
Lovkach
5 / 5 / 0
Регистрация: 12.08.2009
Сообщений: 25
11.09.2009, 13:02  [ТС] 3
Спосибо. Тогда по первому варианту будет так:
Assembler
1
2
3
or ACCESS_ATRIBUTE1, ACCESS_ATRIBUTE2
push ACCESS_ATRIBUTE1
push... ;и так далее
все понял очень благодарен.
0
dim-hj
28 / 25 / 1
Регистрация: 28.07.2009
Сообщений: 109
12.09.2009, 05:38 4
Не, там просто push. Ассемблер обычно умеет производить вычисления на этапе компиляции.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2009, 05:38

Как задать программно параметр функции WinInet
Добрый день.Подскажите ,пожалуйста . Пишу так- hConnect =InternetConnect( ...

Как задать переменной несколько значений?
Есть форма, вначале которой (при запуске) мне нужно задать переменной несколько...

Задать элемент массива функций как параметр функции
Имеется не до конца доработанная программа. Застопорился при попытке задать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru