220 8. Uruchamianie programów asemblerowych
E adres [lista]
Polecenie może mieć dwojaką postać
-E adres lista - powoduje załadowanie pamięci, począwszy od adresu, kolejnymi bajtami z listy.
Przykład
-E ES:0 0A "ala ma kota" OD 0A "$" #
Polecenie spowoduje załadowanie 15 bajtów.
-E adres - powoduje wyświetlanie kolejnych bajtów, począwszy od adresu, i oczekiwanie na zmianę ich zawartości. Można wprowadzić: liczbę szesnastkową wpisywaną do pamięci zamiast poprzedniej wartości, spację w celu przejścia do następnego adresu, kreseczkę (-) w celu powrotu do poprzedniego bajtu, lub Entcr do zakończenia polecenia.
Przykład
-E CS: 100 04BA:0100 EB
t oczekiwanie na wprowadzenie jednego z znaków +
Na rysunku 8.6 przedstawiono przykład wykorzystania polecenia E.
-c C9:0 | ||||
831*2:0000 |
41.20 |
42.20 |
43. Sf |
A0.- |
83E2:0002 |
3F. |
A0. |
00. |
9A.- |
83E2:0004 |
00.- | |||
83F2:0003 |
A0.- | |||
83E2:0002 |
3F.20 |
Rys. 8.6. Przykład polecenia E. (Znaki wprowadzane z klawiatury zostały na rysunku pogrubione)
F zakres lista
Polecenie powoduje wypełnienie obszaru pamięci określonego przez zakres jedną lub wieloma wartościami z listy. Jeżeli lista zawiera mniej bajtów niż zakres, to zostaje użyta ponownie aż do wypełnienia całego zadeklarowanego obszaru pamięci. Jeżeli lista jest większa niż wypełniany obszar pamięci, to nadliczbowe bajty listy są pomijane.
Przykład , , v ^ r
-F SS:0 L 100 FF
Obszar stosu o długości 100 bajtów został zainicjowany wartością 0FFH.
-F 53D:100 L 7 AA "XYZ” 7C
Począwszy od adresu 530:100 zostaną wpisane następujące wartości szesnastkowe:
♦
AA 58 59 5A 7C AA 58.
8.4. Programy uruchomieniowe
G [ = adres] [adres [adres...] ]
Polecenie powoduje rozpoczęcie wykonywania testowanego programu począwszy od zadeklarowanego adresu, a następnie zatrzymanie po dojściu do adresu zadeklarowanego jako tzw. punkt kontrolny (ang. breakpoint - punkt wstrzymania). Po osiągnięciu punktu kontrolnego jest wyświetlany stan rejestrów, rejestr znaczników oraz następny rozkaz oczekujący na wykonanie. Adres "startowy” programu musi być adresem pierwszego bajtu rozkazu, o ile jest to rozkaz dwubajtowy lub więcej bajtowy. Niespełnienie tego warunku może spowodować skutki nie do przewidzenia. Ponadto wskaźnik stosu musi zawierać właściwą wartość, bowiem zlecenie (i korzysta ze stosu zajmując trzy słowa. Możliwe są następujące postaci polecenia G
G - program zostanie uruchomiony od adresu określonego zawartością rejestrów CS:IP i wykonany do końca.
-G = adres - program zostanie uruchomiony od adresu określonego w zleceniu i wykonany do końca. Jeżeli zostanie podany jedynie offset, to adres zostanie uzupełniony standardowo, tj. o rejestr CS.
-G adres [adres...]
-G = adres adres [adres ...] - program zostanie uruchomiony od adresu określonego przez rejestry CS:IP lub parametr polecenia = adres i wykonywany aż do osiągnięcia któregokolwiek z adresów podanych jako kolejne parametry polecenia adres adres ... .-
Adresy definiują punkty kontrolne, których w jednym poleceniu może wystąpić maksymalnie 10. Rozkaz, na którym wykonywanie programu zostało zatrzymane, nie jest wykonywany. Po osiągnięciu punktu kontrolnego (dowolnego z zadeklarowanych) jest wyświetlany stan rejestrów, znaczników i wykonanie polecenia G jest zakończone. Oznacza to, że deklaracja wszystkich punklów kontrolnych (osiągniętych i nieosiągniętych) jest anulowana.
-G = 100 13F 1FF 200
-G 109 4
H liczba liczba
Polecenie arytmetyczne oblicza sumę i różnicę dwóch liczb szesnastkowych.
-H 0F8
17 07 4
I adres we
Polecenie odczytuje i wyświetla szesnastkową wartość stanu układu wejściowego o adresie adres we.
-I 1FA
5C