Вивчення структури команд процесора, використання їхніх машинних кодів. Можливості, надані системною програмою debug, страница 3

Наприклад

Т – виконати наступну команду

Т 5 – виконати наступні 5 команд

Т =105 6 – виконати 6 команд, починаючи з адресу CS:105

При виконанні команди T з програмою lab2.exe на екрані побачимо:

-t

AX=0BA8  BX=0000  CX=010A  DX=0000  SP=0080  BP=0000  SI=0000  DI=0000

DS=0B98  ES=0B98  SS=0BA8  CS=0BB5  IP=0003   NV UP EI PL NZ NA PO NC

0BB5:0003 8ED0          MOV     SS,AX

Можна побачити, що виконалася перша інструкція, після якої змінився вміст деяких регістрів та змінився стан флагів. Наступна інструкція MOV     SS,AX

Команда G

Використовується для виконання всієї програми у пам’яті . Також можна указати точки останова, заставляючи програму зупинитися у указаних адресах.

Наприклад

G – Виконати програму до кінця

G 50 – Виконати программу до інструкції з зміщенням CS:50

При виконанні команди T з програмою lab2.exe на екрані побачимо:

-g

begin labrab_2

end labrab_2

Программа завершилась нормально

Тобто виконалася уся програма успішно, про що свідчить повідомлення.

Команда D

Команда  D  (Dump) дозволяє відтворити на екрані вміст одного чи відразу декількох байтів пам'яті.  Якщо использовать варіант    D адреса   , де  "адреса"-  16-і  значення пари сегмент:зсув, то на екрані з'являться  значення  в  16-м  коді  128 байтів, починаючи  з байта,  адреса якого зазначений у команді D.  Якщо після цього використовувати варіант    D   ,на  екрані з'явиться содержимое наступних 128 байтів і т.д. Значення,  що  містяться в 128 байтах, на екрані відтворюються  у  виді  декількох  рядків, у кожнім рядку - максимум 16 значень.  У  кожнім  рядку  праворуч

(тільки для забезпечення наочності) відтворюються або  символи, якщо код ліворуч може  бути відповідним чином интeрпретирован, або крапки (усього  в правій  частині  екрана  стільки  ж  елементів, скільки  й  у лівій).

Виконаемо команду D для нашої програми.

-d ds:0

0B98:0000  CD 20 FF 9F 00 9A F0 FE-1D F0 4F 03 9A 05 8A 03   . ........O.....

0B98:0010  9A 05 17 03 9A 05 89 05-FF FF FF FF FF FF FF FF   ................

0B98:0020  FF FF FF FF FF FF FF FF-FF FF FF FF 5E 0B 68 00   ............^.h.

0B98:0030  A8 0B 14 00 18 00 98 0B-FF FF FF FF 00 00 00 00   ................

0B98:0040  05 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

0B98:0050  CD 21 CB 00 00 00 00 00-00 00 00 00 00 20 20 20   .!...........

0B98:0060  20 20 20 20 20 20 20 20-00 00 00 00 00 20 20 20           .....

0B98:0070  20 20 20 20 20 20 20 20-00 00 00 00 00 00 00 00           ........

-d

0B98:0080  00 0D 6C 61 62 32 2E 65-78 65 0D 6E 67 5C 6D 61   ..lab2.exe.ng\ma

0B98:0090  73 6D 5C 6C 61 62 32 2E-65 78 65 0D A1 A2 A7 AE   sm\lab2.exe.....

0B98:00A0  A2 AE A3 AE 20 AF AE E0-E2 A0 20 A2 A2 AE A4 A0   .... ..... .....

0B98:00B0  2D A2 EB A2 AE A4 A0 20-53 42 2C 20 AD A0 AF E0   -...... SB, ....

0B98:00C0  A8 AC A5 E0 3A 0D EC 0D-E0 EB A5 0D 00 00 00 00   ....:...........

0B98:00D0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

0B98:00E0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

0B98:00F0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

-d

0B98:0100  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

0B98:0110  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

0B98:0120  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

0B98:0130  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

0B98:0140  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

0B98:0150  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

0B98:0160  00 00 00 00 00 00 00 00-13 3E 4F 03 00 00 11 00   .........>O.....

0B98:0170  14 00 FE FF 00 00 B0 0B-9A 05 3A 00 98 0B 92 72   ..........:....r

-d

0B98:0180  62 65 67 69 6E 20 6C 61-62 72 61 62 5F 32 0A 0D   begin labrab_2..

0B98:0190  24 65 6E 64 20 6C 61 62-72 61 62 5F 32 0A 0D 24   $end labrab_2..$

0B98:01A0  00 00 01 00 02 00 03 00-04 00 05 00 06 00 07 00   ................

0B98:01B0  08 00 09 00 09 00 08 00-07 00 06 00 05 00 04 00   ................

0B98:01C0  03 00 02 00 01 00 00 00-0A 00 00 00 00 00 00 00   ................

0B98:01D0  B8 A8 0B 8E D0 BC 80 00-B8 B0 0B 8E D8 B4 09 8D   ................

0B98:01E0  16 00 00 CD 21 8B 0E 48-00 33 F6 BF 12 00 8B 84   ....!..H.3......

0B98:01F0  20 00 89 85 34 00 83 C6-02 83 EF 02 E2 F0 B4 09    ...4...........

Тут ми виводимо на екран дамп пам’яті, починаючи з сегмента DS. Тут можна побачити, як у пам’яті заходжуються результати роботи програми (підкреслено) – масив, спочатку у порядку збільшення, а потім у порядку зменшення.

Команда А

За допомогою цієї команди ми маємо змогу вводити інструкції на мові Assembler.

Висновок: у результаті виконання лабораторної роботи було вивчено основні команди процесора. На прикладі програми на мові Assembler вивчено команди програми debug.