Skip to content

Лабораторная работа №2

Anton Sorokin edited this page Feb 26, 2020 · 1 revision

Отладчик CV: вывод строк

ЗАДАНИЕ 1

шаг 1

Подготовить приведенную ниже программу к отладке:

  1. скопировать текст программы в файл KR_1.ASM;
  2. выполнить трансляцию: MASM /Zi KR_1.ASM,,;
  3. выполнить компоновку: 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 ("выполнить до курсора").

ЗАДАНИЕ 2

шаг 1

Установить командой W слежение:

  1. за переменной С$,
  2. за выражениями KCH1-'0', KCH2-'0',
  3. за верхней частью стека (двумя способами).

Команды установок записать в соответствующих пунктах a), б), в) задания 3. Проследить за их изменениями по шагам.
Удалить точки слежения.

шаг 2

Установить условные точки останова так, чтобы останов был:

  1. при изменении переменных KCH1 и KCH2;
  2. когда переменная C$ имеет значение 'B'.

Проверить останов при этих условиях.

шаг 3

Установить безусловные точки останова на строках программы с метками MB, MC и M3. Обеспечить в них вывод в окно диалога байтов из диапазона от TXT до MSG0 и продолжение выполнения программы с задержкой в 3 секунды. Перед вводом команд установить вывод информации в окно диалога.