Форум программистов, компьютерный форум, киберфорум
Наши страницы

Assembler, MASM, TASM

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
semiono
12 / 12 / 0
Регистрация: 14.09.2010
Сообщений: 282
Записей в блоге: 6
#1

точки и звёздочки (fasm) - Assembler

17.09.2010, 01:01. Просмотров 1078. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2010, 01:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос точки и звёздочки (fasm) (Assembler):

Вызываю dll (написанную на vc++2008) из Fasm. Через 40 секунд вылет из программы.Без вызова dll из Fasm программа не вылетает. - Assembler
Программа на vc++2008: #include "MathFuncsDll.h" #include <stdexcept> using namespace std; namespace MathFuncs { ...

Замена пробелов на звёздочки - Assembler
Подскажите пожалуйста, как сделать чтоб все пробелы в тексте заменились на звёздочки? Задача звучит так: Составте программу которая вводит...

fasm - Assembler
org 100h mov cl,0 mov ch,255 cikl: mov ah,0eh shl ch,1 jc perivod mov al, '0' jmp label2 perivod:

Из Fasm в MASM - Assembler
Ребят обращаюсь вот по какому вопросу , я сделал курсовой проект в FASM , с ним более менее знаком и как по мне он более прост, при здаче...

ИГРА FASM - Assembler
Помогите пожалуйста напишите мне игру на FASM. Надо очень. Игра OpenGL. Спасибо заранее тому, кто откликнется. Любую игру на OpenGL. FAsm.

WinApi и fasm - Assembler
Есть ли толковая документации по использованию winapi в fasm'e ?

6
Orwomoi
63 / 62 / 2
Регистрация: 16.11.2009
Сообщений: 156
17.09.2010, 12:49 #2
1) Одна точка в теле макроса struc заменяется названием реализации струтуры. То-есть если объявить структуру my XXXXX, в теле структуры будет поле с именем "my". А в примере это создает метку "my:", но по-моему это лишнее - структуры сами создают метки со своим именем.
2) В фасме многие символы могут быть в названии переменных. Поэтому две точки это обычное название. В данной структуре XXXXX.. создает не переменную, а compile time constant равную длине структуры.
3) Звездочка после названия аргумента макроса говорит о том, что аргумент обязателен. Если макрос вызвать без аргументов помеченых звёздочками компилер сообщит об ошибке.
1
semiono
12 / 12 / 0
Регистрация: 14.09.2010
Сообщений: 282
Записей в блоге: 6
18.09.2010, 18:34  [ТС] #3
1. compile time constant
2. Звездочка после названия аргумента макроса говорит о том, что аргумент обязателен
Пожалуй этого ни в мануале и нигде вообще не написано! Весьма информативный пост!
0
Orwomoi
63 / 62 / 2
Регистрация: 16.11.2009
Сообщений: 156
19.09.2010, 00:16 #4
Это есть в мануале, но написано мутно, коротко и разбросано по всему тексту. Плохая документация - главный минус фасма.
Константы описаны в Introduction->AssemblySyntax->ConstantsAndLables. Обязательные аргументы к макросам в InstructionSet->PreprocessorDirectives->Macroinstructions.
1
semiono
12 / 12 / 0
Регистрация: 14.09.2010
Сообщений: 282
Записей в блоге: 6
19.09.2010, 04:08  [ТС] #5
Цитата Сообщение от Orwomoi Посмотреть сообщение
Это есть в мануале, но написано мутно, коротко и разбросано по всему тексту.
Золотые слова! =)
0
semiono
12 / 12 / 0
Регистрация: 14.09.2010
Сообщений: 282
Записей в блоге: 6
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
Orwomoi
63 / 62 / 2
Регистрация: 16.11.2009
Сообщений: 156
22.09.2010, 17:50 #7
Директива "file" вставляет байты в то место, где написана. Но её нельзя использовать как операнд.
Assembler
1
2
3
4
5
6
invoke MessageBox,0,fl,'',MB_OK ;отправить адрес метки
;другой пример
mov eax,dword [fl] ;так-как у метки нет директивы размера надо указывать dword
 
section '.data' readable
fl        file 'c:\boot.ini':0,4 ;fl метка для четырех байт, что появится на месте file после препроцессинга. Не понимаю почему, но dd, dw, db тут не ставятся, а если поставить, будет ошибка
Добавлено через 15 минут
Вот способ указать размер памяти:
Assembler
1
2
3
4
5
6
label fl byte
file 'd:\file.txt':0,43h ;это будет строка
label var dword
file 'd:\file.txt':0,4h  ;это перемнная размера dword
;Теперь
mov eax,[var] ;работает без подсказок
1
22.09.2010, 17:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2010, 17:50
Привет! Вот еще темы с ответами:

компилятор fasm - Assembler
Просьба,пожалуйста прокомментируйте,что делает компилятор в двух случаях создания исполняемых файлов.Не дает покоя мысль. Файл...

FASM WinInet - Assembler
Решил попробовать написать программу, которая бы выводила первые 1023 (например, просто не знаю как всю страницу вывести :) байт...

ShellExecuteEx(fasm) - Assembler
Превед! Изучаю лениво msdn api через флат ассемблер. Очередной раз ступор из-за структур, так как в голове всё не умещается, забываю....

прерывание в fasm - Assembler
Я создал программу вывода на экран веке кода клавиши. С помощью int 16h .но за into 16h скрывается много функций. Каким образом происходит...


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

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

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