38 001B BF 0012 mov di,18 ; j:=9
39 001E 8B 84 0020 R l1: mov ax,A[si] ; (ax):=A[i]
40 0022 89 85 0034 R mov B[di],ax ; B[j]:=A[i]
41 0026 83 C6 02 add si,2 ; i:=i+1
42 0029 83 EF 02 sub di,2 ; j:=j-1
43 002C E2 F0 loop l1
44 002E B4 09 mov ah,9h ; Вывод
45 0030 8D 16 0011 R lea dx,text2 ; сообщения
46 0034 CD 21 int 21h ; на экран
47 0036 B4 4C mov ah,4ch ; Возврат
48 0038 CD 21 int 21h ; в систему
49 003A cods ends
50 end beg
Microsoft (R) Macro Assembler Version 5.10 9/21/3
labrab_2 Symbols-1
Segments and Groups:
N a m e Length Align Combine Class
CODS . . . . . . . . . . . . . . 003A PARA NONE
DATS . . . . . . . . . . . . . . 004A PARA NONE
STC . . . . . . . . . . . . . . 0080 PARA STACK
Symbols:
N a m e Type Value Attr
A . . . . . . . . . . . . . . . L WORD 0020 DATS
B . . . . . . . . . . . . . . . L WORD 0034 DATS Length = 000A
BEG . . . . . . . . . . . . . . L NEAR 0000 CODS
KOL . . . . . . . . . . . . . . L WORD 0048 DATS
L1 . . . . . . . . . . . . . . . L NEAR 001E CODS
TEXT1 . . . . . . . . . . . . . L BYTE 0000 DATS
TEXT2 . . . . . . . . . . . . . L BYTE 0011 DATS
TOS . . . . . . . . . . . . . . L WORD 0080 STC
@CPU . . . . . . . . . . . . . . TEXT 0101h
@FILENAME . . . . . . . . . . . TEXT lab2
@VERSION . . . . . . . . . . . . TEXT 510
38 Source Lines
38 Total Lines
16 Symbols
46494 + 444526 Bytes symbol space free
0 Warning Errors
0 Severe Errors
================================================================
Файл перехресних ссилок .map:
Start Stop Length Name Class
00000H 0007FH 00080H STC
00080H 000C9H 0004AH DATS
000D0H 00109H 0003AH CODS
Program entry point at 000D:0000
З цього файлу можна дізнатися про знаходження сегмента коду, сегменту даних та стеку.
Виконаемо основні команди отладчика. Для цього введемо командну строку c:\masm\debug lab2.exe
Команда r
Виводить на екран
вміст усіх регістрів процесора. При виконанні команди
r reg виводиться тільки вміст регістра reg.
При виконанні команди r з програмою lab2.exe на екрані побачимо:
AX=0000 BX=0000 CX=010A DX=0000 SP=0080 BP=0000 SI=0000 DI=0000
DS=0B98 ES=0B98 SS=0BA8 CS=0BB5 IP=0000 NV UP EI PL NZ NA PO NC
0BB5:0000 B8A80B MOV AX,0BA8
Тут можна побачити вміст усіх регістрів та стан флагів процесора.
Команда U
Команда U (Unassemble) відображає одночасно машинні коди і символьне представлення команд процесора. Треба в команді вказати початкова адреса і може бути зсув кінцевої адреси тих байтів у пам'яті, уміст яких у виді команд процесора нас зараз цікавить. Для початкової адреси також можна вказати тільки зсув (уміст регістра CS буде враховано автоматично). Можна в команді U не вказувати адресну частину, якщо після попереднього використування цієї команди доцільно її використовувати знову.
При виконанні команди U з програмою lab2.exe на екрані побачимо:
-u
0BB5:0000 B8A80B MOV AX,0BA8
0BB5:0003 8ED0 MOV SS,AX
0BB5:0005 BC8000 MOV SP,0080
0BB5:0008 B8B00B MOV AX,0BB0
0BB5:000B 8ED8 MOV DS,AX
0BB5:000D B409 MOV AH,09
0BB5:000F 8D160000 LEA DX,[0000]
0BB5:0013 CD21 INT 21
0BB5:0015 8B0E4800 MOV CX,[0048]
0BB5:0019 33F6 XOR SI,SI
0BB5:001B BF1200 MOV DI,0012
0BB5:001E 8B842000 MOV AX,[SI+0020]
Тут можна побачити машинні команди та відповідні ним команди на мові Assembler.
Команда T
За допомогою цієї команди можна виконати одну чи кілька інструкцій, починаючи від укажчика CS:IP чи від іншого адресу
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.