assembler€86ˆ 1

assembler€86ˆ 1



202


8. Uruchamianie programów asemblerowych

boliczne zebrane w tabeli zostajÄ… w programie zastÄ…pione odpowiednimi wartoÅ›ciami (np. nazwy zmiennych odpowiedniÄ… wartoÅ›ciÄ… offsetu), a dla rozkazów sÄ… wygenerowane wÅ‚aÅ›ciwe kody rozkazów maszynowych. Program maszynowy zostaje zapisany do pliku dyskowego o rozszerzeniu OBJ. Oprócz tego asembler może utworzyć dwa dodatkowe pliki o rozszerzeniach LST i CRF. W pierwszym z nich zostaje zapisany listing programu - raport asemblacji, który zawiera wiele istotnych informacji (adresy, kody, błędy itd.). Bez ich znajomoÅ›ci przetestowanie programu asemblerowego jest praktycznie niemożliwe. Drugi plik zawiera informacje dla listy odwoÅ‚aÅ„ (ang. cross reference), które za pomocÄ… innego programu narzÄ™dziowego CREF mogÄ… być przeksztaÅ‚cone w możliwy do wydrukowania inny plik dyskowy z rozszerzeniem REF.

Program łączący LINK

Program ten pozwala utworzyć program maszynowy z wielu niezależnie tÅ‚umaczonych modułów (plików o rozszerzeniu OBJ) oraz procedur bibliotecznych (pliki o rozszerzeniu LIB). Efektem pracy programu LINK jest plik z programem maszynowym o rozszerzeniu EXE, zawierajÄ…cy dodatkowe informacje dla systemu operacyjnego. Wyprowadzenie do systemu MS-DOS nazwy tego pliku jako polecenia systemowego spowoduje zaÅ‚adowanie go do pamiÄ™ci operacyjnej komputera i automatyczne jego uruchomienie. Program LINK może utworzyć dodatkowy plik o rozszerzeniu MAP, (zawierajÄ…cy listÄ™ połączeÅ„), informujÄ…cy o sposobie uporzÄ…dkowania segmentów.

Program bibliotekarza LIB

Przy programowaniu modularnym, gdy dane zadanie jest rozwiązywane przez ciąg kolejnych podprogramów', można utworzyć z niektórych przetestowanych i uruchomionych podprogramów pliki biblioteczne, do wykorzystania w innych programach. Pliki

0    rozszerzeniu LIB sÄ… tworzone z plików uzyskanych po asemblacji OBJ. Jeżeli jakiÅ› program potrzebuje podprogramów bibliotecznych, to należy przy wywoÅ‚aniu programu łączÄ…cego LINK użyć nazwy biblioteki LIB. Program LINK odnajduje odpowiednie symbole zewnÄ™trzne (EXTERNAL/PUBLIC) i przyłącza znaleziony podprogram.

Program uruchomieniowy

Program ten pozwala śledzić wykonanie programu maszynowego załadowanego do pamięci operacyjnej mikrokomputera, krok po kroku, z. możliwością podglądania

1    modyfikowania zawartoÅ›ci rejestrów, obszarów' pamiÄ™ci i wÅ‚elu innych operacji uÅ‚atwiajÄ…cych sprawne testowanie programu i usuniÄ™cie błędów logicznych. WÅ›ród popularnych programów uruchomieniowych dostÄ™pnych w komputerach klasy IBM PC/XT/AT wymienimy klasyczny program systemowy DEBUG, oraz w wiÄ™kszoÅ›ci przypadków znacznie efektywniejszy ASD (ang. advunced screen debugger) bÄ™dÄ…cy izw. programem uruchomieniowym peÅ‚noekranowym. Różnica miÄ™dzy tymi programami stanie siÄ™ dla Czytelnika jasna po zapoznaniu siÄ™ z rozdz. 8.3.

Program EXE2BIN

Program EXE2BIN pozwala przekształcić niektóre pliki dyskowe o rozszerzeniu EXE w pliki o rozszerzeniu COM lub BIN. Pliki z rozszerzeniem COM wywodzą się z sys-

powered by

8.2. Przebieg asemblacji


Migriol

temu operacyjnego CP/M dla mikrokomputerów 8-bitowych. Aby przetworzenie w plik o rozszerzeniu COM byÅ‚o możliwe, program źródÅ‚owy musi speÅ‚niać pewne warunki, m.in.: kod wynikowy* mieÅ›ci siÄ™ w obszarze pamiÄ™ci operacyjnej nie wiÄ™kszej niż 64 KB, nie zostaÅ‚ zdefiniowany segment stosu, wskaźnik programu ustawiony dyrektywÄ… ORG ma wartość 100H, jest to adres pierwszego rozkazu w programie (rozdz. 8.2)

8.2. Przebieg asemblacji

Makroasembler MASM można wywoÅ‚ać na kilka sposobów. Wymienimy trzy, najczęściej stosowane, a Czytelnik wybierze najbardziej mu odpowiadajÄ…cy. W przykÅ‚adach zaÅ‚ożymy, że plik MASM.EXE znajduje siÄ™ na dyskietce w stacji dysków A, a pliki z programami do asemblacji i programami pomocniczymi w stacji dysków B.

Przykład

A > MASM [/przełączniki]

Polecenie spowoduje załadowanie makroasemblera do pamięci operacyjnej, który po przedstawieniu się zażąda wprowadzenia trzech parametrów.

Source filename[.ASM]:

Nazwa pliku z programem źródłowym. Rozszerzenie ASM jest przyjmowane automatycznie i nie trzeba go wprowadzać.

Object filename [source.OBJ]:

Nazwa tworzonego pliku z programem wynikowym. Potwierdzenie jedynie klawiszem Enter spowoduje przyjęcie identycznej nazwy pliku wynikowego jak nazwa pliku źródłowego z rozszerzeniem OBJ.

Source listing [NUL.LST]:

Nazwa utworzonego pliku z listingiem (raport asemblacji). Potwierdzenie jedynie klawiszem Enter (czyli przyjęcie nazwy* NUL), jest równoznaczne z poleceniem nictwo-rzenia pliku.

Cross reference [NUL.CRF]:

Nazwa utworzonego pliku z listą odwołań.

Znaczenie sÅ‚owa NUL identyczne jak dla listingu.    â™¦

W wywołaniu makroasemblera może wystąpić jeden lub kilka jednoliterowych przełączników o następującym znaczeniu

/A - zapisanie segmentów w kolejności alfabetycznej w pliku o rozszerzeniu OBJ;

/B liczba - zadeklarowanie wielkości bufora dla pliku źródłowego (liczba określa wielkość bufora w 1 KB blokach);

/C - utworzenie pliku o rozszerzeniu CRF;

* polecenie utworzenia listingu przy obu przebiegach asemblera. Porównanie oba listingów może czasem wydatnie pomóc przy usuwaniu błędów; l^symbol[ - wartość] - dziaÅ‚anie jak dla dyrektywy EQU w programie źródÅ‚owym;

/Ipat/t - zdefiniowanie katalogu dla plików dołączanych dyrektywą INCLUDE;


Wyszukiwarka

Podobne podstrony:
assembler?86? 1 222 & Uruchamianie programów asemblerowych L [adres [drive sektor sektor]] Pol
assembler?86? 2 204 8. Uruchamianie programów asemblerowych /L - utworzenie pliku z listingiem o n
assembler?86? 3 206    & Uruchamianie programów asemblerowych Znaczenie poszcze
assembler?86? 4 208 8. Uruchamianie programów asemblerowych /NO (ang. node) - bez podajania nazw b
assembler?86? 5 â– 210    8. Uruchamianie programów asemblerowych o rozszerzeniu EXE
assembler?86? 6 212 8. Uruchamianie programów asemblerowych ???1???? - nazwa podkatalogu ??1?????
assembler?86? 9 218 S. Uruchamianie programów asemblerowych z pliku o rozszerzeniu MAP pozwoli to
assembler?86? 0 220 8. Uruchamianie programów asemblerowych E adres [lista] Polecenie może mieć dw
assembler?86? 2 224 8. Uruchamianie programów asemblerowych S zakres lista Polecenie powoduje odsz
assembler?86? 3 226 8. Uruchamianie programów asemblerowych -    stanu rejestrów, 7
assembler?86? 4 228 8. Uruchamianie programów asemblerowych wprowadzanie rozpoczyna się od bieżące
assembler?86? 5 230 8. Uruchamianie programów asemblerowych BREAKPOINT ENTRY MENU BR# Break
assembler?86? 8 216 8. Uruchamianie programów asemblerowych Wywołanie programu bibliotekarza A>
assembler?86? 1 >2 10. Przykłady programów DCZATEK......................... F PROC 0000 PROGR
assembler?86? 0 8. Uruchamianie programów asemblerowych8.1. Programy pomocnicze W rozdziale zostan
assembler?86? 7 214 214 8. Uruchamianie programów asemblerowych Program CREF833. W wyniku działani
assembler?86? 1 22 2. Mikroprocesory 8086/8088 jest niezależny od innych segmentów i jest programo
assembler?86? 1 42 4. Język asemblerowy mikroprocesorów 8086/80X8 (ODH). Asembler przetwarza łańcu
assembler?86? 1 62 4. JÄ™zyk asemblerowy> mikroprocesorów 808618088 oraz    AA

więcej podobnych podstron