1 | |
FASM Синтаксис: точка в теле макроса struc и звёздочка в описании параметров макроса17.09.2010, 01:01. Показов 2128. Ответов 6
Метки нет (Все метки)
Код
struc XXXX { .: ; это что имеется ввиду??? ;..... .hwnd dd ? .lpVerb dd ? .lpFile dd ? ;..... .. = $ - . ; это новая переменная минус длина структуры? macro .Runzz hWnd*,pFilename*,pParameters* \{ ; что за звёздочки? \local ..okay invoke RtlZeroMemory,.,.. ; тут как насколько я понял экземпляры структуры используются? mov [.cbSize],.. ; итд.. Если точки одна или две допустимо использовать как имя переменной, тогда мне понятно. Добавлено через 10 минут Код
section '.code' executable start: invoke MessageBox,NULL,'',..,MB_OK exit: invoke ExitProcess,NULL section '.data' readable .. db 'z',0
0
|
17.09.2010, 01:01 | |
Ответы с готовыми решениями:
6
Вызов макроса в теле другого макроса Как перевести синтаксис макроса VBA (Excel) в синтаксис Visual FoxPro Кавычки в теле макроса Оператор ## и переменная в теле макроса |
64 / 63 / 3
Регистрация: 16.11.2009
Сообщений: 156
|
|
17.09.2010, 12:49 | 2 |
1) Одна точка в теле макроса struc заменяется названием реализации струтуры. То-есть если объявить структуру my XXXXX, в теле структуры будет поле с именем "my". А в примере это создает метку "my:", но по-моему это лишнее - структуры сами создают метки со своим именем.
2) В фасме многие символы могут быть в названии переменных. Поэтому две точки это обычное название. В данной структуре XXXXX.. создает не переменную, а compile time constant равную длине структуры. 3) Звездочка после названия аргумента макроса говорит о том, что аргумент обязателен. Если макрос вызвать без аргументов помеченых звёздочками компилер сообщит об ошибке.
1
|
64 / 63 / 3
Регистрация: 16.11.2009
Сообщений: 156
|
|
19.09.2010, 00:16 | 4 |
Это есть в мануале, но написано мутно, коротко и разбросано по всему тексту. Плохая документация - главный минус фасма.
Константы описаны в Introduction->AssemblySyntax->ConstantsAndLables. Обязательные аргументы к макросам в InstructionSet->PreprocessorDirectives->Macroinstructions.
1
|
22.09.2010, 03:53 [ТС] | 6 |
Код
start: invoke MessageBox,0,file,'',MB_OK exit: invoke ExitProcess,NULL section '.data' readable file 'c:\boot.ini':0,1 Хотелось бы пример как и где можно file использовать. ... и всётаки не понял почему байт нельзя тут инвокнуть?
0
|
64 / 63 / 3
Регистрация: 16.11.2009
Сообщений: 156
|
|||||||||||
22.09.2010, 17:50 | 7 | ||||||||||
Директива "file" вставляет байты в то место, где написана. Но её нельзя использовать как операнд.
Вот способ указать размер памяти:
1
|
22.09.2010, 17:50 | |
22.09.2010, 17:50 | |
Помогаю со студенческими работами здесь
7
Запуск макроса из макроса ИЛИ повторение одного и того же кода Вызов макроса по имени макроса в ячейке Передача параметров из макроса в bash скрипт Передача параметров из макроса в форму при её вызове Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |