Wieloliniowe komentarze w FASMie
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