204
8. Uruchamianie programów asemblerowych
/L - utworzenie pliku z listingiem o nazwie source Jilejiame.LST;
/ML - rozróżnienie nazw symboli pisanych wielkimi i małymi literami;
/N - brak tabel dla makroinstrukcji, struktur, rekordów, segmentów i nazw symbolicznych w pliku z listingiem;
/S - umieszczenie w pliku wynikowym o rozszerzeniu OBJ segmentów w takiej kolejności, w jakiej znajdują się w programie źródłowym;
/T - wstrzymanie meldunku o poprawnym przebiegu asemblacji;
/V - wyświetlanie liczby nazw symbolicznych oraz wierszy programu na ekranie;
/X - określenie sposobu drukowania bloków warunkowych. Objaśnienie przełącznika znajduje się w rozdz. 4.3.7 przy opisie dyrektyw .SFCOND, .LFCOND i .TFCOND;
/Z - wyświetlanie na ekranie monitora wierszy programu źródłowego, w których stwierdzono błąd w czasie asemblacji.
Przykład
A> MASM plik źródł,plik wynik,plik listing,plikpołącz [/przełączniki]
przy czym:
plik źródł - nazwa pliku z programem źródłowym (ASM); yS
plik wynik - nazwa pliku z programem wynikowym (OBJ); plik listing - nazwa pliku z listingiem (LST); plik_połącz - nazwa pliku z listą odwołań (CRF);
przełącznik - określony jak w poprzednim przykładzie. +
§
Przedstawiony sposób wywołania makroasemblera może być uproszczony przez podanie zamiast wybranych nazw plików samych przecinków. Spowoduje to standardowe przyjęcie nazwy pliku zgodnej z nazwą pliku z programem źródłowym. ^
A > MASM PRZYKŁAD,,, /X X
Do asemblacji zostanie pobrany plik PRZYKŁAD.ASM, a w wyniku jej przebiegu zostaną utworzone pliki PRZYKŁAD.OBJ i PRZYKŁAD.LST.
Przykład
Wywołanie makroasemblera może być połączone z przetwarzaniem wsadowym (zob. opis MS-DOS, np. [2],[3]) i ma krótszą postać wywołania. Jeżeli zostanie utworzony pomocniczy plik o nazwie np. MACRO.BAT zawierający następujące zlecenie
A:MASM B:%1.ASM,B:%1.0BJ,B:%1.LST,B:%1.CRF %2
to uruchomienie procesu asemblacji (z zadeklarowaniem utworzenia wszystkich możliwych plików) może mieć postać
A > MACRO PRZYKŁAD /X ♦
W trakcie asemblacji, na ekran monitora są wyprowadzane komunikaty o ewentualnych błędach znalezionych podczas tłumaczenia. Komunikat zawiera nazwę pliku, numer wiersza programu, kod błędu oraz jego nazwę. Te same komunikaty są wprowadzane do pliku z listingiem (LST), co znakomicie ułatwia ich analizę. W rozdziale 10 Czytelnik znajdzie wydruk przykładowych plików z listingiem, utworzonych w wyniku pracy programu MASM.EXE.
8.2. Przebieg asemblacji
B;TEST >a:masm test
Microsoft (R) Macro Asscmbler Version 4.00
Copyright (C) Microsoft Corp 1981,1983, 1984,1985.AI1 rights rescived.
Object filename [test.OBJ): Source listing [NULJLSTJ: test Cross-reference [NUL.CRF]: test
program: TEST.ASM (generator liczb pierwszych) v.l.2 16.05.1988
1 przejście asemblera
2 przejście asemblera test.ASM(133): error 10: Syntax error test.ASM(148): error 9: Symbol not defincd GH test.ASM(149) : error 9:Symbol not defined KOLEJNY_TEST
38904 Bytcs symbol space free 0 Warning Errors 3 Severc Errors
B:\TEST >a:masm test,,,,
Microsoft (R) Macro Asscmbler Version 4.00
Copyright (C) Microsoft Corp 1981, 1983,1984, 1985. AU rights rcserved.
program: TBST.ASM (generator liczb pierwszych) v.l.2 16.05.1988
1 przejście asemblera
2 przejście asemblera 38896 Bytes symbol space free
0 Warning Errors 0 Severe Errors
B:\TEST >dir
13.05.88 |
0.08 |
13.05.88 |
0.08 |
16.06.88 |
1151 |
bytes free |
Volume in drive B has no label Directory of B:\TEST <D1R>
<DIR>
TEST ASM 16286
3 Filc(s) 169984
Yolume in drivc B has no label
Directoiy of B:\TEST
< DIR> |
13.05.88 |
0.08 |
<D1R> |
13.05.88 |
0.08 |
TEST LST 31609 |
16.05.88 |
11.59 |
TEST OBJ 816 |
16.05.88 |
11^59 |
TEST CRF 1670 |
16.05.88 |
11 -59 |
TEST ASM 16286 |
16.05.88 |
11.59 |
6 File(s) |
135168 bytes free |
Rys. 8.2. Przebieg asemblacji programu: a) z przykładu w rozdz. 10.1: ascmblacja z błędami., pierwszy sposób wywołania asemblera; b) z przykładu w rozdz. 10.1: asemblacja bez błędu, drugi sposób wywołania asemblera; c) katalog przed i po asemblacji