218 S. Uruchamianie programów asemblerowych
z pliku o rozszerzeniu MAP pozwoli to na obliczenie absolutnych adresów wewnątrz modułu. Polecenia programu DEBUG są jednoliterowe i mogą być pisane zarówno małymi jak i wielkimi literami. Polecenia i ich parametry mogą być oddzielone od siebie spacją lub przecinkiem. Jedynie parametry będące liczbami muszą być oddzielone od siebie. Błędna syntaktyka polecenia jest sygnalizowana odpowiednim komunikatem. Przykładowo następujące polecenia są równoważne
dds: 400 500 d ds:400 500
d,ds:400,500 : 8
Wykonywane polecenie można przerwać naciskając klawisze Ctrl-C.
Polecenia programu DEBUG mogą posiadać następujące parametry
adres - adres lokacji w pamięci (wartości numeryczne w kodzie szesnastkowym) będący nazwą rejestru segmentowego i offsetem (np. DS.03A4), adresem segmentu i offsetem (np. 32C.0), offsetem - w domyśle standardowy rejestr segmentowy (np. OB 10).
adres we/wy - adres układu wejściowego lub wyjściowego; !
bajt - jedno- lub dwucyfrowa liczba szesnastkowa; tt J
zakres - dwa adresy ograniczające wybrany obszar pamięci operacyjnej określone jako: adres adres np. ES:200 300, 4E0:100 1FF (drugi adres określony wyłącznie przez offset) lub adres L liczba bajtów np. CS:100L20, 0A5L5, przy czym liczba bajtów jest liczona od podanego adresu początkowego i jest wyrażona liczbą szesnastkową (L = 0 deklaruje maksymalny dopuszczalny zakres równy 10000H);
lista - jeden lub więcej bajtów lub (i) ciągów znaków, np.
A5 tekst* 3 lb ' Znaki' Ac (obejmuje 6 odrębnych poi, łącznie 14 bajtów); łańcuch - ciąg znaków w apostrofach (’) lub cudzysłowie (") np. jfl
’słowo 'ciąg” jest w apostrofach'
'słowo ciąg" jest w cudzysłowie’
"słowo ’ciągł jest w apostrofach” J*
"słowo ""ciąg”" jest w cudzysłowie"
jest zamieniany na ciąg bajtów zawierających kody ASCII kolejnych znaków; liczba - jedno-, dwu-, trzy- lub czterocyfrowa liczba szesnastkowa;
sektor sektor - jedno-, dwu- lub trzycyfrowe liczby osnastkowe definiujące względny numer sektoru (1) początkowego oraz liczbę zapisywanych i odczytywanych sektorów (2);
drive - numer stacji dysków: 0 dla mechanizmu A, 1 dla B, 2 dla C ild.; yj
rejestr - nazwa rejestru zgodna z przyjętą w asemblerze. M
Polecenia programu uruchomieniowego DEBUG (porządek alfabetyczny).
A [adres]
Polecenie pozwala na wprowadzenie rozkazów mikroprocesora w postaci kodów symbolicznych bezpośrednio do pamięci operacyjnej. Jeżeli nie występuje parametr adres, to zostaje przyjęty przez domniemanie adres wynikający z zawartości rejestrów CS i IF*
powered by
8.4. Programy uruchomieniowe
Przykład
-A 100
45000100 MOV BX,10
45000101 MOV CL,CS:[15]
45000102 JMP 110 ^
C zakres adres
Polecenie realizuje porównanie zawartości dwóch obszarów pamięci operacyjnej. Wielkość porównywanych obszarów wynika z parametru zakres. W przypadku stwierdzenia niezgodności bajtów jest wyświetlany komunikat adresl bajt l bajt_2 adi es_2
przy czym bajt l, bajt! oznaczają wartości nierównych bajtów, a adres_ 1, adres l ich adresy.
Przykład
-C 100L50 200
5C40:105 5A 5B 5C40:205 ą
D [adres] lub D zakres
Polecenie wyprowadza na ekran zawartość obszaru pamięci w kodach szesnastkowych oraz jako znaki kodu ASCII. Kody znaków niedrukowalnych są zastępowane w tym drugim przypadku kropką. Jeżeli w pierwszej postaci polecenia nie wystąpi parametr adres, to będzie wyświetlany obszar począwszy od ostatniego adresu wyświetlonego poprzednim poleceniem D. Przy pierwszym użyciu polecenia będzie to adres DS:0100. Jeżeli w parametrze polecenia jest podany tylko offset, to przyjmuje się przez domniemanie rejestr segmentowy DS.
Przykłady
-D CS: 100 10A
-D SS:Q . ’ ir^
-D 200L20 -D
Na rysunku 8.5 przedstawiono wynik działania polecenia D.
-d ds:8d0.97f
S3E2:08D0
83E2:08ł*;0
83E2:08F0
83112:0900
831*2:0910
83E2:0920
83E2:0930
831*2:0940
83E2:0950
831*2:0960
83E2:0970
..............Pr
awid.owe wywo.ari ic programu ma n astepuj.c. posta .:...X> TEST 1 (opcja bez wy. wietlania liczb) ..X> TEST 2 ( opcja z wy.wietl aniem liczb)....
$...............
02 00 00 00 E9 03 0A 00-00 00 00 00 OA OD 50 72 61 77 69 64 8C 6F 77 65-20 77 79 77 6F 8C 61 6E 69 65 20 70 72 6F 67 72-61 6D 75 20 6D 61 20 6E 61 73 74 65 70 75 6A 89-63 89 20 70 6F 73 74 61 8A 3A OA 0A OD 20 58 3E-20 54 45 53 54 20 31 20 20 20 28 6F 70 63 6A 61-20 62 65 7A 20 77 79 8F 77 69 65 74 6C 61 6E 69-61 20 6C 69 63 7A 62 29 0A OD 20 58 3E 20 54 45-53 54 20 32 20 20 20 28 6F 70 63 6A 61 20 7A 20-77 79 8F 77 69 65 74 6C 61 6E 69 65 6D 20 6C 69-63 7A 62 29 0A OD 0A OD 24 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
%$• 8.5 Przykład działania polecenia D. (Fragment segmentu danych z przykładu w rozdz. 10.1.)