Загрузка
Английский
Польский
Домашняя страница Николая Гайдука

Многострочные коментарии в ФАСМе

В
о время создания и интенсивного тестирования программ на ФАСМе часто случается так, что надо закомментировать большие отрезки кода. В оригинальном ФАСМе допустимо только комментирование единичных строк программы. Такой комментарий начинается со знака ; (точка с запятой) и заканчивается с последним знаком данной строки. Многие из нас, пользуясь языками высокого уровня, сталкивались с комментариями охватывающими сразу несколько строк кода (например в языке C/C++, где закомментированный фрагмент находится между символами /* и */). Так родилась идея обогащения препроцессора ФАСМа возможностью поддержки многострочных комментариев вида /* ... */.

Внимание: статья имеет только исторический смысл, так как здесь представлена пропатченная версия файла 'preproce.inc' работает правильно с версией 1.67.* ФАСМа и не учитывает последнюю эволюцию препроцессора ФАСМа.

Уважаемый читатель должен знать, что низкоуровенное решение проблемы многострочных комментариев, представленое на этой странице, является наилучшим и превосходит все другие "решения", которые используют макросы ФАСМа.

История проекта

В мае 2007 года я сделал необходимые исправления в файле 'preproce.inc' (препроцессор ФАСМа) и результат представил на форумах ФАСМа и WASM.RU. Затем Mr_Silent добавил свои улучшения, которые исправляют нумерацию строк кода (это очень важно для правильной интерпретации сообщений компилятора, когда обнаружена синтаксическая ошибка в исходнике данной программы). Результат этих усилий уважаемый читатель может увидеть на этой странице.

Установка

Пропатченный файл 'preproce.inc' надо поместить в папке 'FASM\SOURCE' и скомпилить исходники компилятора ФАСМа для данной операционной системы. Пользователям системы Windows надо помнить о изменении исполняемых файлов 'FASM.EXE' и 'FASMW.EXE' находящихся в папке 'FASM' исправленными версиями.

Исходник

Здесь вы можете скачать архив содержащий пропатченный файл 'preproce.inc':

Пример использования

Ниже представлен пример несложной программы на ФАСМе, в которой использованы новые возможности которые даёт многострочный комментарий в стиле языка C/C++.

include '%fasminc%\win32ax.inc'

.code
	
; Типичный однострочный комментарий ФАСМа.

start:
	invoke	MessageBox, HWND_DESKTOP, "Hi! I'm the example program!", "Win32 Assembly", MB_OK
		
	/*		
	Многострочный комментарий в стиле языка C/C++.
		
	invoke	MessageBox, HWND_DESKTOP, "Good bye!", "Win32 Assembly", MB_OK		
	*/

	invoke	/* Комментарий в стиле языка C/C++ внутри линии кода. */ ExitProcess, 0

.end start
© 2007-2014, Mikołaj Hajduk