Tutaj prezentuje przydatny programik do sprawdzania jak dziala kod Assemblerowski. Lub pisania samych programow
Kod:
http://binboy.sphere.pl/index.php?hideshow=download&p0=1001
Advanced Fullscreen Debugger - opis funkcji
Do wprowadzania poleceń jest przeznaczone 5 pole, natomiast 6 pole informuje o funkcjach realizowanych za pośrednictwem klawiszy funkcyjnych F1...Fl0. Klawisz F4 umożliwia wyświetlenie w każdej chwili czterech stron informacji pomocniczych, wyjaśniających funkcje wszystkich poleceń dostępnych w programie. Kolejne strony są wybierane klawiszem Pup/PgDn; powrót do trybu pracy następuje za pomocą klawisza Enter lub ponownie F4. K1awisze F7...Fl0 umożliwiają przeniesienie kursora z 5 pola wprowadzania poleceń na dowolną pozycję pól 1, 2, 3 celem zmodyfikowania zawartości rejestrów, stosu, znaczników i pamięci. Dwuliterowe skróty przy symbolach tych klawiszy oznaczają kierunek przemieszczania kursora między polami ekranu: up (ang. up) - w górę, do (ang. down) - w dół, le (ang. left) - w lewo. ri (ang. right) w prawo. W wybranym polu przechodzenie z pozycji na pozycję jest możliwe za pośrednictwem klawiszy przesuwania kursora (ze strzałkami).
Pozostałe klawisze funkcyjne mają następujące znaczenie
F1 - krokowe wykonywanie programu rozkaz po rozkazie;
F2 - krokowe wykonanie programu (jak dla klawisza funkcyjnego F1) z pełnym, tzn. niekrokowym wykonaniem wszelkich procedur wywoływanych rozkazami CALL, INT , konstrukcji z LOOP oraz REP;
F3 - powtórzenie ostatniego polecenia;
F5 - przejście do trybu ustawiania, modyfikowania i sprawdzania punktów kontrolnych (wstrzymania) oraz śladu po wykonaniu programu;
F6 - przełączanie ekranów między programem uruchomieniowym a uruchamianym (zob. opis polecenia Mode).
Zestaw akceptowanych poleceń ( 6 pole ), ich opis jest dostępny przy użyciu klawisza funkcyjnego F4.
L nazwa-pliku [parametr] [,adres].
Załadowanie programu z pliku dyskowego (wraz z jego ewentualnym parametrem) do pamięci operacyjnej, począwszy od adresu adres. Jeżeli adres nie jest podany, to przyjmuje się standardowo CS:0100. Po wykonaniu polecenia rejestry BX i CX wskazują liczbę załadowanych bajtów.
W nazwa -pliku, adres, długość
Zapis danych do pliku dyskowego. Jeżeli adres jest określony jedynie przez offset, to standardowo jest przyjmowany rejestr OS. Dfugość określa liczbę bajtów wyrażoną maksymalnie przez 4 cyfry szesnastkowe.
[R] nazwa-rejestru =wartość
Ustawienie zawartości rejestrów o nazwach: AX, AL, AH,...,SI,...,CS, ... Nazwa FL oznacza rejestr, znaczników traktowany jako rejestr 16-bitowy. Dostęp do pojedynczych znaczników Jest możliwy przez nazwy: OF, DF, IF, SF, ZF, AF, PF, CF.
D adres
Wyświetlenie kolejnych symbolicznych kodów rozkazów w 4 polu, począwszy od adresu adres. Standardowo przyjmuje się rejestr segmentowy CS.
M n adres [nazwa-rejestru]
Określenie od jakiego adresu będą wyświetlane dane w 2 polu ekranu (n = l) lub 3 polu (n = 2). Nazwa aktualnego rejestru segmentowego jest wyświetlana na ekranie. Przy adresowaniu pośrednim może być wykorzystany dowolny rejestr (np. [DI]).
G [adres-startu] [,adres-zatrzymania]
Uruchomienie programu od adresu określonego przez adres-startu lub zawartość rejestrów CS:IP. Drugim parametrem polecenia może być adres dodatkowego punktu kontrolnego (zob. opis funkcji klawisza F5). Rejestrem segmentowym dla adresu-zatrzymania jest CS ( o bieżącej zawartości). Wykonywany program można zatrzymać klawiszami Ctrl-Esc.
QUIT [R[ESIDENT] ]
Powrót do systemu operacyjnego MS-DOS. Podanie parametru R powoduje, że program AFD staje się rezydentny i można go wywołać klawiszami Ctrl-Esc lub przerwaniem NMI.
A [adres]
Wprowadzenie programu w tryb asemblerowy, umożliwiający wprowadzanie do pamięci symbolicznych kodów rozkazów. Jeżeli parametr adres nie jest podany, to wprowadzanie rozpoczyna się od bieżącego rozkazu. Klawisze kursora pozwalają przewijać 4 pole ekranu w dół i w górę.
F adres , n, łańcuch
Wypełnienie pamięci operacyjnej wyspecyfikowanym łańcuchem, Począwszy od adresu adres. Łańcuch będzie powtórzony n razy w pamięci. Standardowo jest przyjmowany rejestr segmentowy DS.
S [[adres], łańcuch]
Znalezienie w pamięci łańcucha. Poszukiwanie rozpoczyna się od parametru adres (standardowy rejestr segmentowy CS), lub jeżeli nie jest podany, to od CS:0. Jeżeli łańcuch został znaleziony, to zostaje wyświetlony w 3 polu (używając rejestru HS). Polecenie S bez parametrów wznawia przeszukiwanie.
C adres, adres, długość
Porównanie dwóch obszarów pamięci, których adresy początkowe oraz długość są określone parametrami polecenia. Jeżeli wystąpią różnice, to w 2 polu zostaje wyświetlone pole adresowane przez pierwszy parametr, w 3 polu przez drugi parametr. D S jest standardowym rejestrem segmentowym.
CO adres-źródła, adres –przeznaczenia, długość
Kopiowanie obszaru pamięci zgodnie z deklarowanymi parametrami polecenia. DS Jest standardowym rejestrem segmentowym .
I adres
Pobranie i wyświetlenie danych z układu wejściowego. Adres może być 8-bitowy lub 16-bitowy, określony zawartością rejestru lub w sposób bezpośredni.
O adres, wartość
Wysłanie do układu wyjściowego wartości określonej parametrem. Jeżeli wartość jest 16-bitowa, to jest wykonywana operacja na słowie. Adres może być 8-bitowy lub 16-bitowy, określony zawartością rejestru lub w sposób bezpośredni.
T
Wyświetlenie zawartości bufora ze śladem. Jeżeli B nie wystąpi, to ślad jest wyświetlany na ekranie głównym. Parametr B deklaruje specjalną postać wyświetlania.
BW nazwa-pliku
Zapisanie ustawionych punktów kontrolnych do pliku dyskowego.
BL nazwa-pliku
Odczytanie ustawionych punktów kontrolnych z pliku utworzonego poleceniem BW.
PH adres, długość [,nazwa-pliku ]
Drukowanie danych w kodach szesnastkowych oraz ASCII. DS jest standardowym rejestrem segmentowym. Długość określa liczbę drukowanych bajtów.
PO adres, długość [,nazwa-pliku]
Drukowanie symbolicznych kodów programu. CS jest standardowym rejestrem segmentowym. Długość określa liczbę rozkazów maszynowych.
PT [start, długość [,nazwa-pliku]]
Drukowanie zawartości pliku ze śladem. Stań definiuje offset rozkazu, od którego ślad ma być drukowany. Długość określa liczbę rozkazów.
286 ON/OF
Wybór wersji: dla procesora 80286 (ON) lub 808618088 (OF).
MO[DE] M[ONO]/C[OLOUR)
Deklaracja typu adaptera grafiki monitora: M - monochromatyczny, C- kolorowy.
MO[DE) A[LTERN) ON/OF
Deklaracja rozróżniania (MO A ON) ekranu dla programu uruchamianego i ekranu dla komunikatów programu ASD. Przełączanie odbywa się klawiszem funkcyjnym F6.
BE[EP) ON/OF
Załączanie (wyłączanie) generowania dźwięku przy naciskaniu klawiszy.
XT
Uruchomienie specjalnego trybu (ang. teach mode) pozwalającego na zapamiętanie w buforze wszystkich działań na klawiaturze. Zawartość bufora może być zapisana do pliku dyskowego lub wykonana. Tryb jest przerywany wówczas, gdy zostanie zapełniony bufor oraz po naciśnięciu klawiszy Ctrl-Break.
XX [nazwa-pliku]
Wykonanie poleceń z bufora utworzonego poleceniem XT. Jeżeli podana jest nazwa-pliku, to są wczytane i wykonywane polecenia z pliku dyskowego do bufora.
XW nazwa-pliku
Zapis bufora z poleceniami do pliku dyskowego.
XL nazwa-pliku
Odczyt poleceń z pliku dyskowego do bufora.
Uwagi dodatkowe !
Adres - występujący w poleceniach może mieć postać [seg:] offset. Jeżeli nie jest podany seg:, to jest przyjmowany standardowy rejestr, np. ES:DI + BX - 5 .
Rejestr - dowolny dostępny programowo rejestr 8-bitowy lub 16-bitowy.
Wartość - zawartość dowolnego rejestru lub wartość bezpośrednia jako liczba szesnastkowa.
Gwiazdka * określa zawartość rejestru IP. Liczba dziesiętna jest poprzedzona znakiem % np. %200. Wyrażenia arytmetyczne są liczone od lewej do prawej strony (np. AX + CX*5/3).
Łańcuch - dowolna lista wartości lub łańcuchów w kodzie ASCII oddzielonych od siebie spacją lub przecinkiem (np. AX, 1234 'ala ma kota' FF %14).
Klawisz funkcyjny F5 przełącza program ASD w tryb wykorzystujący punkty kontrolne oraz ślad.