.^2.2015 Katedra Informatyki - Mariusz Wiśniewski
większego fragmentu programu bez przerwania programu po każdej instrukcji. W tym celu należy przejść kursorem (linia pozioma w kolorze szarym) do wybranego miejsca i nacisnąć klawisz F4. Program zostanie przerwany w momencie osiągnięcia punktu, w którym znajdował się kursor. Możliwe jest także zdefiniowanie pułapki (przez naciśnięcie klawisza F2) w miejscu kursora, a następnie naciśnięcie klawisza F9, co spowoduje wykonanie programu do momentu napotkania pułapki. Pułapkę likwiduje się przez ponowne naciśnięci F2, gdy kursor znajduje się w miejscu pułapki.
Szybkość działania programu (lub jednej instrukcji) można określić przez wstawienie do kodu programu instrukcji^rdtsc, która odczytuje specjalny rejestr mikroprocesora, którego zawartość zwiększa sie z każdym taktem zegara systemowego procesora JPo wykonaniu powyższej instrukcji w rejestrach procesora EDX i EAX " zostanie umieszczona aktnałnarwartośclicznika cykli (EDX część starsza).
3. Ćwiczenia
1. Należy wprowadzić następujące instrukcje (od adresu początkowego):
mov eax, 100 mov eax, 200 mov ebx, 100 mov ecx, 123 jmp 00401000
CWPAJ&bO (V0&JYj\X0jVĄy
01 rm^r 0 -
fiboh — - ą
Następnie należy wykonać program przez naciskanie klawisza F8. Wyniki działania należy umieścić w sprawozdaniu.
[joa
eto
2. Natęży wprowadzić następujące instrukcje (od adresu początkowego): mov eax, 100 Almo v ebx, eax baMpu ^ ,.
mov ecx, ebx 6C>~ ~ /Icóu^Jdacu
mov edx, ecx ^
ii{ V Ofi
CTÓO y ' d
\oJcO /utcc_ .
pWba-2/ rodbióf ób&mjcio
jmp 00401000 /^|^
Następnie należy wykonać program przez naciskanie klawisza F8. Wyniki działania należy umieścić w sprawozdaniu.
Należy wprowadzić następujące instrukcje (od adresu początkowego): _
mov esi, 100 E$j - dyboJjou>^7 \xu)ajMaam-
pf^pu^cp/eM^.) pCr>y o cu, ŚP<-
mov edi, 200
m -
jmp 00401000 Następnie należy wykonać program p) sprawozdaniu.
iqz naciskanie klawisza F8. Wyniki działania należy umieścić w
4. Należy wprowadzić następujące instrukcje (od adresu początkowego): rdtsc
mov ds:[00403000j, eax mov ds:[00403004], edx
pdfSG QjS)VXiQj l\xśó tubU ^C£ArWQ/ cq CPlAĄiu iBcp
zj 'Aa Qb~ Obotop /jjtrdoi, o cJtAjjk/jwi xo/McSsbcn-rj
08 - /frStjTrytó kX)Ow t _ _ (28- <jJXU>Ą,. /^Wguł
mov eax, 100 mov eax, 100 mov eax, 100 mov eax, 100 mov eax, 100 mov eax, 100 mov eax, 100 mov eax, 100 mov eax, 100 mov eax, 100 rdtsc
sub eax, ds:[00403000] sbb edx, ds:[00403004] jmp 00401000
Następnie należy przesunąć kursor na pozycję instrukcji jmp 00401000 i ustawić tam pułapkę naciskając klawisz F2. Następnie należy wykonać program kilkakrotnie przez naciskanie klawisza F9. W komórkach pamięci o adresach ds:[00403000] i ds:[00403004] zostały zapisana wartość licznika instrukcji sprzed wykonania ciągu instrukcji mov^epx^l00 którą należy odjąć od zawartości rejestrów EDX i EAX (ma to
55 -
/TrtdyA/^iAjr aAMm * " —
cMy OS* $
Sbb ' tx
SF ^ ) A F |
PF)
)
A- ( A -
v a
2>vb ~ OMilnuie & d?\ A,
cwłwL Um/wĄ x j Jtb - Jionkflt&UA2--poywly^ ~)
b i fate c? A
& ~
4(o bC^ćo-T' 1 j
tcteuAj C%Ma
yta (\(Zj^$rb)3 b&X) frĆA;b<jX