Ładowanie
Angielski
Rosyjski
Strona domowa Mikołaja Hajduka

Wieloliniowe komentarze w FASMie

W
trakcie tworzenia i intensywnego testowania nowych programów napisanych w FASMie często zachodzi potrzeba szybkiego wykomentowania dużych partii kodu aplikacji. Standardowo FASM dysponuje jedynie możliwością przekształcenia w komentarz pojedynczych linii kodu. Komentarz taki zaczyna się symbolem ; (średnik) i kończy na ostatnim znaku danej linii. Wielu z nas pisząc programy w językach wysokiego poziomu zetknęło się z komentarzami obejmującymi wiele linii kodu (jak chociażby w języku C/C++, gdzie wykomentowany blok zawarty jest pomiędzy symbolami /* oraz */). Stąd zrodził się pomysł wzbogacenia preprocesora FASMa, w taki sposób, by wieloliniowe komentarze były dostępne także i w tym języku programowania.

Uwaga: w chwili obecnej niniejszy artykuł ma wyłącznie znaczenie archiwalne, ponieważ modyfikacja pliku 'preproce.inc' wykonywana była dla wersji 1.67.* FASMa i nie uwzględnia późniejszego rozwoju preprocesora.

Warto tu wspomnieć o tym, że niniejsze podejście do rozwiązania problemu wieloliniowych komentarzy jest najwłaściwszym i jako niskopoziomowe przewyższa wszelkie inne "rozwiązania" oparte na mechanizmie makr FASMa.

Historia projektu

W maju 2007 roku dokonałem niezbędnych poprawek w pliku 'preproce.inc' FASMa, a następnie wynik opublikowałem na forach FASMa oraz WASM.RU. Po pewnym czasie Mr_Silent uzupełnił plik preprocesora fragmentami kodu, które korygują numerację linii pliku (jest to ważne wtedy, gdy kompilator sygnalizuje błąd syntaktyczny w kodzie programu). Z ostatecznym wynikiem Czytelnik może się zapoznać na niniejszej stronie.

Instalacja

Zmodyfikowany plik 'preproce.inc' należy umieścić w katalogu 'FASM\SOURCE', a następnie przekompilować źródła kompilatora FASMa dla używanego przez nas systemu operacyjnego. Użytkownicy sytemu Windows powinni również pamiętać o zaktualizowaniu plików wykonywalnych ('FASM.EXE' i 'FASMW.EXE') znajdujących się w katalogu 'FASM'.

Źródło

Zmodyfikowany i skompresowany plik 'preproce.inc' dostępny jest pod następującym linkiem:

Przykład zastosowania

Poniżej przedstawiono listing prostego programu w FASMie, w którym zaprezentowano sposób wykorzystania nowych możliwości, jakie daje wprowadzenie wieloliniowych komentarzy.

include '%fasminc%\win32ax.inc'

.code

; Klasyczny jednoliniowy komentarz FASMa.
	
start:
	invoke	MessageBox, HWND_DESKTOP, "Hi! I'm the example program!", "Win32 Assembly", MB_OK
		
	/*		
	Wieloliniowy komentarz w stylu języka C/C++.
		
	invoke	MessageBox, HWND_DESKTOP, "Good bye!", "Win32 Assembly", MB_OK		
	*/

	invoke	/* Komentarz w stylu języka C/C++ wewnątrz linii kodu. */ ExitProcess, 0

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