224 8. Uruchamianie programów asemblerowych
S zakres lista
Polecenie powoduje odszukanie w zadeklarowanym obszarze pamięci ciągu bajtów z listy. Znalezione wartości zostają wskazane przez podanie ich adresu. Jeżeli adres jest określony tylko offsetem, to standardowo jest przyjmowany rejestr DS.
Przykład
-S CS: 100 L 100 "AB" 31 .
W przykładzie lista składa się z trzech bajtów 41H 42H 31H. W przypadku znalezienia wartości z listy, będzie wyświetlony adres pierwszego bajtu.
T [= adres] [liczba]
Polecenie powoduje wykonanie jednego lub kilku rozkazów; zostaje wyświetlony stan rejestrów oraz znaczników (stan po wykonaniu rozkazu - inaczej niż dla polecenia G), a także kolejny rozkaz do wykonania. Podobnie jak dla polecenia G, przed wykonaniem polecenia T, wskaźnik stosu musi mieć prawidłową wartość, bowiem polecenie wykorzystuje stos zajmując trzy słowa.
Przykład
-T *
Wykonanie jednego rozkazu zlokalizowanego pod adresem określonym stanem rejestrów CS:IP i wyświetlenie stanu rejestrów i znaczników oraz następnego rozkazu. -T = adres
Wykonanie jednego rozkazu zlokalizowanego pod adresem określonym parametrem adres.
-T liczba
-T = adres liczba
Wykonanie kolejnych rozkazów w liczbie określonej parametrem liczba, począwszy od adresu określonego stanem rejestrów CS:!P lub parametrem adres. Po każdym rozkazie jest wyświetlany stan rejestrów, znaczników oraz kolejny rozkaz do wykonania. Na przykład dla
-T 12
będzie wykonanych 18 rozkazów. ♦
U [adres] lub U [zakres]
Polecenie powoduje tłumaczenie zawartości pamięci operacyjnej na symboliczne kody rozkazów procesorów 8086/8088 (ang. disassemble) i wyświetlanie ich na ekranie. Początkowy adres musi wskazywać pierwszy bajt rozkazu, w przeciwnym razie będzie wykonane błędne tłumaczenie. Jeżeli jako parametr jest podany jedynie offset, to standardowo jest przyjmowany rejestr segmentowy CS. '
Przykład * '
-U adres
powered by
8.4. Programy uruchomieniowe
Polecenie wyświetla 32 bajty kodu maszynowego począwszy od adresu określonego zawartością rejestrów CS:IP (o ile przedtem zostało wykonane polecenie R) lub parametrem adres. Ponowne wywołanie polecenia U spowoduje wyświetlenie kolejnych kodów począwszy od ostatniego, wyświetlonego poprzednim poleceniem.
-U zakres
Polecenie spowoduje, że zostaną tłumaczone i wyświetlone bajty kodu maszynowego z zadeklarowanego obszaru. W szczególnym przypadku liczba wyświetlonych bajtów może być większa od zadeklarowanej, co wynika z różnej długości rozkazów.
Przykład
-U 0DFA:100 L 10
Przykład działania polecenia U przedstawiono na rys. 8.8.
-u O.a
848A:0000
848A:0003
848A:0004
848A:0005
848A:0008
848A:000A
BE8200
AC
50
B8F283
8ED8
58
MOV
LODSB
PUSH
MGV
MOV
POP
SI.0082 AX
AX,83F2
DS,AX
AX
Rys. 8.8. Przykład działania polecenia U. (Fragment segmentu programu dla przykładu z rozdz. 10.1.)
W [adres [drive sektor sektor] ]
Polecenie powoduje zapisanie do pamięci dyskowej określonego obszaru pamięci operacyjnej. Polecenie może mieć postać -W adres drive sektor sektor
Zapis obszaru pamięci rozpoczynającego się od adresu adres do pamięci dyskowej w stacji dysków o numerze drive i sektorów, których granice określają parametry sektor sektor. Nieumiejętne stosowanie tej postaci zlecenia może całkowicie zdezorganizować dane na dysku. Polecenie może mieć również postać -W
-W adres
Zapis obszaru pamięci począwszy od adresu określonego stanem rejestrów CS:IP lub parametrem adres do pliku dyskowgo o nazwie zadanej w poleceniu N lub w czasie wczytywania programu uruchomieniowego (zob. polecenie L). Liczba zapisanych bajtówr musi być przed wykonaniem polecenia W umieszczona w rejestrach BX i CX.
8.4J. Program ASD
Program ASD jest dostępny jako plik dyskowy o nazwie ASD.EXE. Po uruchomieniu na ekranie monitora pojawia się obraz (przedstawiony na rys. 8.9), który pozwala na ciągłą (bieżącą) kontrolę