assembler86 8

assembler86 8



216 8. Uruchamianie programów asemblerowych

Wywołanie programu bibliotekarza A>LIB

powoduje załadowanie programu do pamięci operacyjnej, przedstawienie się i zapytanie o następujące parametry

Library files: Nazwa pliku bibliotecznego, który ma być utworzony, lub istniejący, z którego będziemy korzystać. Standardowo jest przyjmowane rozszerzenie L1B, które w związku z tym może być pomijane.

Operation: Określenie czynności, która ma być wykonana.

Możliwe są następujące opcje

+nazwa_ pliku - dopisanie na końcu pliku bibliotecznego nowego modułu programowego o podanej nazwie,

-nazwa pliku - usunięcie podanego modułu ze pliku bibliotecznego,

*nazwa_ pliku - skopiowanie modułu o podanej nazwie do nowego pliku dyskowego o nazwie nazwa jjliku.OBJ.

Możliwe jest łączenie operacji w jednym poleceniu, np.

-PRZYKŁAD + C:PRZYKLAD

które powoduje zamianę jednego modułu na inny o tej samej nazwie. Polecenia są wykonywane w kolejności występowania na liście. Listę można kontynuować w następnym wierszu pod warunkiem zakończenia poprzedniego znakiem &.

List file: Nazwa pliku (deklaracja urządzenia wyjściowego CON lub PRN), który będzie zawierać listę przechowywanych w pliku bibliotecznym modułów programowych wraz z ich globalnymi nazwami symbolicznymi.

8-4. Programy uruchomieniowe

Programy uruchomieniowe (ang. debugger) służą do usuwania błędów logicznych w programie, mówiąc uruchamiania programu. Pozwalają na załadowanie do pamięci operacyjnej uruchamianego programu maszynowego zapisanego w pliku o rozszerzeniu EXE lub COM, testowanie procesu wykonania kolejnych rozkazów lub przy spełnieniu określonych warunków testowania, wykonanie wydzielonego fragmentu programu. Programy te umożliwiają modyfikację programu, danych, ustawianie wartości początkowych rejestrów, zmiennych itp. Wreszcie dają możliwość utworzenia nowego pliku dyskowego zawierającego zawartość zadeklarowanego obszaru pamięci operacyjnej, a w szczególności zmienionej wersji uruchamianego programu.

Spośród wielu - dostępnych dla mikrokomputerów klasy IBM PC/XT/AT -omówimy dwa reprezentatywne i popularne programy uruchomieniowe

DEBŁG - klasyczny program uruchomieniowy dostarczany zazwyczaj wraz z systemem operacyjnym MS-DOS,

ASD - przykład programu uruchomieniowego tzw. pełnoekranowego (ang. advanced fuli screen debugger ) pozwalającego na ciągłą kontrolę informacji (wyprowadzanych na ekran) o stanie: rejestrów, wybranych fragmentów pamięci, stosu i znaczników.

Należy wspomnieć także o tzw. symbolicznych programach uruchomieniowych (debu-ger symboliczny), pozwalających w czasie uruchamiania wykorzystywać zdefiniowane w programie adresy symboliczne (nazwy etykiet, zmiennych) oraz w niektórych przypadkach źródłową postać programu. Przykładem może być program SYMDEB, którego polecenia pokrywają się zasadniczo z poleceniami programu DEBUG. Program SYMDEB dostarczany wraz z makroasemblerem MASM (wersja 5.00) jest programem bardziej rozbudowanym, wykorzystującym m.in. technikę okienek.

8.4.1. Program DEBUG

Program DEBUG jest dostępny jako plik dyskowy o nazwie DEBUG.EXE i może być uruchomiony poleceniem

A>DEBUG

Przy takim wywołaniu program DEBUG zostanie wprowadzony do pamięci operacyjnej, umożliwiając rozpoczęcie wprowadzania zleceń. Zaproszeniem do wprowadzania poleceń jest (kreseczka) - . Pierwszym poleceniem może być wczytanie pliku dyskowego z uruchamianym programem. Program DEBUG możemy wykorzystać również do wprowadzenia krótkiego programu wprost z klawiatury. Polecenie uruchamiania może mieć inną postać

A > DEBUG nazwapliku [parametr l] [parametr_2]

W tym przypadku program uruchomieniowy będzie wprowadzony do pamięci operacyjnej, a następnie zostanie wczytany plik z programami do uruchomienia. Plik ten musi mieć rozszerzenie EXE lub COM. W wywołaniu mogą wystąpić parametry programu. Jeżeli załadowany (przeznaczony do uruchomienia) program jest w pliku o rozszerzeniu EXE, DEBUG wprowadza niezbędne przesunięcie zgodnie z informacją zawartą w nagłówku programu. Po załadowaniu programu, poszczególne rejestry przyjmują wartości zgodnie z tabl. 8.4.

Tabl. 8.4. Zawartość rejestrów po załadowaniu programu.

Program w pliku COM

Program w pliku EXE

ss

adres pierwszego wolnego segmentu za programem uruchomieniowym

\

adres początku segmentu stosu

SP

adres końca segmentu (= offset szczytu stosu)

offset szczytu stosu

CS

jak SS

adres początku segmentu programu

IP

100H

offset punktu startu programu określony dyrektywą ENI)

DS.ES

jak SS

adres początku bloku PSP (obliczany tak jak adres początku segmentu)

BX:CS

długość wprowadzonego modułu w bajtach

jak dla COM (włączając nagłówek programu)

Rejestry nie wymienione w tabeli zostają wyzerowane, natomiast znaczniki przyjmują swój stan wyjściowy (jak p0 zerowaniu systemu). Przed rozpoczęciem testowania należy zanotować stan wymienionych wyżej rejestrów. Łącznie z informacjami


Wyszukiwarka

Podobne podstrony:
assembler?86? 1 202 8. Uruchamianie programów asemblerowych boliczne zebrane w tabeli zostają w pr
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? 1 222 & Uruchamianie programów asemblerowych L [adres [drive sektor sektor]] Pol
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 25610. Przykłady programów z parametrem błędnym (różnym od 1 lub 2) powoduje wyświ
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
pp38 -U-*! Typ pakietu (* Pakiet podglądu (aktualizuj formaty plików do uruchamiania w programie Po
assembler?86? 8 196 7. Wybrane techniki programowania TAB 3 TAB 4 Rys. 7.8. W przypadku, gdy tabli
assembler?86? 8 236    9. Wykorzystanie procedur systemowych w programach użytkowyc

więcej podobnych podstron