-
Notifications
You must be signed in to change notification settings - Fork 0
Лабораторная работа №2
Anton Sorokin edited this page Feb 26, 2020
·
1 revision
шаг 1
Подготовить приведенную ниже программу к отладке:
- скопировать текст программы в файл KR_1.ASM;
- выполнить трансляцию: MASM /Zi KR_1.ASM,,;
- выполнить компоновку: LINK /CO KR_1.OBJ;
SSTACK SEGMENT PARA STACK 'STACK'
DB 64 DUP('СТЕК____')
SSTACK ENDS
DSEG SEGMENT PARA PUBLIC 'DATA'
CA DB 'A'
KA DB '65'
TXT DB 'символ "'
C$ DB ?
DB '" имеет код '
KCH1 DB ?
KCH2 DB ?
DB 10,13,'$'
MSG0 DB 'НАЧАЛО РАБОТЫ',13,10,'$'
MSG1 DB 'КОНЕЦ РАБОТЫ',13,10,'$'
DSEG ENDS
SUBTTL ОСНОВНАЯ ПРОГРАММА
PAGE
CSEG SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CSEG,DS:DSEG,SS:SSTACK
BEGIN PROC FAR
; занести в стек такие начальные значения, чтобы программа
; могла возвратить управление MS DOS (отладчику) по RET.
PUSH DS ; поместить в стек номер параграфа адреса возврата
MOV AX,0
PUSH AX
; загрузить адрес сегмента данных DS
M1: MOV AX,DSEG
MOV DS,AX
; вывод текста "НАЧАЛО РАБОТЫ"
M2: MOV AH,9
MOV DX,OFFSET MSG0
INT 21H
; вывод стоки "СИМВОЛ 'A' имеет код 65"
MA: MOV AL,CA
MOV C$,AL
MOV AX,WORD PTR KA
MOV WORD PTR KCH1,AX
MOV AH,9
MOV DX,OFFSET TXT
INT 21H
; вывод стоки "СИМВОЛ 'B' имеет код 66"
MB: INC C$
INC KCH1+1
INT 21H
; вывод стоки "СИМВОЛ 'C' имеет код 67"
MC: INC C$
INC KCH1+1
INT 21H
; вывод текста "КОНЕЦ РАБОТЫ"
M3: MOV AH,9
MOV DX,OFFSET MSG1
INT 21H
; возвратить управление MS DOS (отладчику)
RET
BEGIN ENDP
CSEG ENDS
END BEGIN
шаг 2 (МЕНЮ CV И ФУНКЦИОНАЛЬНЫЕ КЛАВИШИ)
- Вызвать отладчик CV и загрузить программу.
- Опробовать режимы отображения исходного, смешанного и ассемблерного текстов; установить режим исходного текста.
- Опробовать включение/выключение окна регистров; включить окно регистров.
- Выполнить программу.
- Включить экран программы и вернуться к экрану отладчика.
- Перезагрузить программу и повторить все действия, используя функциональные клавиши.
- Перезагрузить программу и выполнить ее в медленном режиме, периодически останавливая и запуская вновь.
- Перезагрузить программу и проследить за ее выполнением, используя F10 ("шаг программы").
- Перезагрузить программу, установить режим ассемблерного текста и выполнить ее, используя клавиши F8 ("шаг трассировки") и F7 ("выполнить до курсора").
шаг 1
Установить командой W слежение:
- за переменной С$,
- за выражениями KCH1-'0', KCH2-'0',
- за верхней частью стека (двумя способами).
Команды установок записать в соответствующих пунктах a), б), в) задания 3.
Проследить за их изменениями по шагам.
Удалить точки слежения.
шаг 2
Установить условные точки останова так, чтобы останов был:
- при изменении переменных KCH1 и KCH2;
- когда переменная C$ имеет значение 'B'.
Проверить останов при этих условиях.
шаг 3
Установить безусловные точки останова на строках программы с метками MB, MC и M3. Обеспечить в них вывод в окно диалога байтов из диапазона от TXT до MSG0 и продолжение выполнения программы с задержкой в 3 секунды. Перед вводом команд установить вывод информации в окно диалога.