|
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
|
||||||
FASM макросы, где найти полное описание?19.01.2025, 21:09. Показов 2016. Ответов 16
Метки нет (Все метки)
Попался в исходниках такой макрос:
0
|
||||||
| 19.01.2025, 21:09 | |
|
Ответы с готовыми решениями:
16
Где найти полное описание Хранимых процедур? Где взять полное описание прерываний BIOS?
|
|
Невнимательный
|
|||||||
| 20.01.2025, 01:06 | |||||||
Сообщение было отмечено alex1234566 как решение
Решениепонять только трудно )) Там вроде есть перевод доков https://board.flatassembler.net/topic.php?t=21892 ... немного не к свежей версии, но в целом норм... насчёт препроцессора, этих forward-reverse-common,rept, ... Если честно я тоже не понял что за макрос , обычно количество слешей увеличивается с увеличением вложенности блоков. и как-бы должно быть что-то типа
или почему так ... я тоже не понял и даже наверное можно не понять, когда увидеть в целом что-где и как в коде))
1
|
|||||||
|
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
|
||||||
| 20.01.2025, 14:17 [ТС] | ||||||
Добавлено через 29 минут Все равно не понятно. во что оно разворачивается
0
|
||||||
|
Невнимательный
|
||||||||||||
| 20.01.2025, 16:43 | ||||||||||||
|
Есть кое-что что по мелочи может помочь разобраться Но я точно не понял как должно грамотно делаться например такое, как я делаю в винде скачал я fasmw-1.73, распаковал куда-то , например d:\C\fasmw1.73\ запускаю cmd, делаю там например такое D:\C\fasmw1.73>SET "PROMPT=%% $P$_%% $S"LISTING.EXE PREPSRC.EXE SYMBOLS.EXE потом копирую/перемещаю в D:\C\fasmw1.73 а например здесьже запусаю создаю файл 1.asm ... подтвердив создание, при запуске блокнота с %% notepad .\1.asmвставляю Ваш код, добавляю в конце вызов макроса
%% D:\C\fasmw1.73\TOOLS\WIN32На выходе 1.txt со слонячим таким комментарием ) Примерно можно понять какой код и какие макросы создаются после вызова
1
|
||||||||||||
|
Модератор
|
|
| 20.01.2025, 19:56 | |
|
Не очень понимаю макроязык FASM, по ощущениям, ради переменных макроса создаётся макрос обёртка.
После вызова обёртки в программе объявляются несколько переменных и несколько макросов. "Вторичные" макросы для инициализации и финализации программы - с их помощью определяют список из нескольких подпрограмм, которые будут вызываться в самом начале программы, и такой же список - в конце программы. После определения списков последовательный вызов подпрограмм инициализации вызывается одним макросом InitializeAll. По аналогии, подпрограммы выхода вызываются одним макросом FinalizeAll. Не могу сообразить, как в переменных сохраняются списки... Но, может, кто-нибудь с желанием или опытом разберётся.
0
|
|
|
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
|
||||||
| 20.01.2025, 20:13 [ТС] | ||||||
0
|
||||||
|
Модератор
|
|||||||||||
| 20.01.2025, 20:43 | |||||||||||
|
Если перед этим были вызовы
Добавлено через 6 минут Мне лень проверять набором тестовой программы, да и не ручаюсь за правильность макроса. Но, судя по всему, предполагалось такое поведение.
1
|
|||||||||||
|
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
|
||||||
| 21.01.2025, 10:01 [ТС] | ||||||
получается первый макрос ничего не делает?
0
|
||||||
|
Невнимательный
|
||||||||||||||||||||||
| 21.01.2025, 11:50 | ||||||||||||||||||||||
|
Эти call это может быть и переход на метку и выполнение того, чего там дальше, включая вызовы макросов, пока не ret,retn, retf,... Это , мягко говоря, не "Вся программма" , а некий порядок выполнения неких кусков программы. Упрощение может помочь понять например если упростить всё до такого 1.asm
что формируется цепочка if ... end if формируется после 0,0,0,0,0,0,0,0,0,0
Добавлено через 6 минут ... хотя например IDA декомпилятор покажет понятнее 1.obj Кликните здесь для просмотра всего текста
0
|
||||||||||||||||||||||
|
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
|
|
| 21.01.2025, 14:55 [ТС] | |
|
в fasm есть команда, которая бы обработала все макросы, но не выполняла компиляцию?
0
|
|
|
Модератор
|
|
| 21.01.2025, 18:05 | |
|
Желания читать руководство нет, но если бы было - искал бы команду формирования листинга среди параметров командной строки, и там же - уровень детализации листинга - типо раскрывать макросы, включаемые файлы и пр.
У masm такие есть, по аналогии могут быть у fasm, хотя пробовал получить листинг у nasm - он был неинформативным. Скачайте на официальном сайте самое свежее руководство - там должен быть ответ на Ваш вопрос.
0
|
|
|
Невнимательный
|
|
| 21.01.2025, 19:34 | |
|
alex1234566, я не нашёл ничего такого .
Всё что предгагается Плюс те tools. listing показывает всякое E8 06 00 00 00 E8 02 00 00 00 вместо того во что развернулись макросы prepsrc показывает что-то до того , как транслируется в бинари. Возможно просто не сущёствует такого момента, когда всё в текстовом из одних инструкций, перед тем как всё в бинарном. Дебагеры/дизасемблеры тоже не встречал, чтобы в fasm-синтаксисе показывали... ... но может и есть то о чём Вы подумали... код открыт , любые хотелки возможно досочинять, при жутко каком желании )) Наверное проще чего-то на perl,) скомбинировать из этих -s <file> или из выхлопа listing + prepsrc.
0
|
|
|
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
|
|
| 28.01.2025, 20:23 [ТС] | |
|
Все включаемые файлы в один собрал, перестал fasm собираться, когда файлы в include нормально собирается, почему так может быть?
0
|
|
|
Невнимательный
|
|||
| 28.01.2025, 23:22 | |||
|
Включаемые обычно на то и расчитаны, что включать можно из разных файлов с кодом. Например вызова __InitI18nEngine например в коде нет, а объявление есть. Где-то одно может такое использоваться, где что-то другое, .... Мне вообще кажется как-то линкера ещё отдельного fasm'у не хватает ,)) чтобы ещё больше фрагментировать и компилить кучи файлов отдельно, чтобы потом слинковать в один. Не вникал , но вроде должно были быть сообщения о ошибках, какие-нибудь где-нибудь. Вероятнее всего что-то не в том порядке пошло... при каждом проходе вроде везде используется предшествующее в нём же
0
|
|||
|
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
|
|
| 29.01.2025, 21:20 [ТС] | |
|
под линуксом
Добавлено через 5 часов 41 минуту почему-то в некоторых включениях последние строки не добавились. сразу после определения есть вызов __InitI18nEngine
0
|
|
|
Модератор
|
|
| 29.01.2025, 21:28 | |
|
Не по теме: Дремучим сибирским лесорубам подарили новую Продолжаем наблюдение.
0
|
|
|
53 / 9 / 2
Регистрация: 08.02.2020
Сообщений: 62
|
|
| 24.05.2025, 20:03 [ТС] | |
|
файл компилируется, если добавить все файлы ресурсов, которые он грузит
0
|
|
| 24.05.2025, 20:03 | |
|
Помогаю со студенческими работами здесь
17
Макросы fasm Макросы и директивы компилятора FASM Как найти координату точки по оси X на дуге окружности? (Полное описание внутри) Джейсон, П.П. Visual C#.NET Полное руководство(где найти)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1
У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\
А в самом низу файла-профиля. . .
|