Skip to content
This repository has been archived by the owner on Feb 11, 2020. It is now read-only.
wcdbmv edited this page Feb 22, 2019 · 2 revisions

Лабораторная работа 3. Изучение отладчика CV: продолжение

Задание 1

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

  1. Скопировать текст программы в файл LAB03.ASM
  2. Выполнить трансляцию: MASM /Zi LAB03.ASM,,;
  3. Выполнить программу: LINK /CO LAB03.OBJ;
     SSTACK     SEGMENT PARA STACK 'STACK'
                DB   64 DUP('СТЕК____')
     SSTACK     ENDS

     DSEG       SEGMENT PARA PUBLIC 'DATA'
     X          DB    0,1,2,3,4,5,6,7
     B          DB    1B
     K          DB    ?
     DSEG       ENDS

SUBTTL          ОСНОВНАЯ ПРОГРАММА
PAGE
     CSEG       SEGMENT PARA PUBLIC 'CODE'
                ASSUME  CS:CSEG,DS:DSEG,SS:SSTACK

     START      PROC FAR
                MOV  AX,DSEG
                MOV  DS,AX

     M1:        MOV  K,2
                MOV  SI,0
                MOV  CX,8
                MOV  AL,B
     M2:        TEST X[SI],AL ; ZF:=!(X[SI] & AL)
                JNZ  M3
                DEC  K
                JZ   M4
     M3:        INC  SI
                LOOP M2       ; CX-- и переход на M, если CX<>0
     M4:        ADD  SI,'0'
                MOV  AH,2
                MOV  DX,SI
     M5:        INT  21H
     M6:        MOV  AH,4CH
                MOV  AL,0
                INT  21H
     START      ENDP

     CSEG       ENDS
                END  START

Задание 2

Проследить за выполнением команд от M1 до M6 и изменением переменных и регистров. Сформулировать условие задачи, решаемой программой. (Вывод индекса k-го чётного числа в массиве X)

Задание 3

Составить файл LAB03.INP с командами CV так, чтобы его выполнение привело к созданию файла LAB03.OUT, содержащего весь вывод в окно диалога. Этот вывод должен быть на метках M1 ... M6 следующую информацию:

  1. значения регистров, флагов и текущую команду программы,
  2. значения переменной K.
; LAB03.INP
T>>LAB03.OUT
BP M1 "R;? K,d;E"
BP M2 "R;? K,d;E"
BP M3 "R;? K,d;E"
BP M4 "R;? K,d;E"
BP M5 "R;? K,d;E"
BP M6 "R;? K,d;E"

; CV
<LAB03.INP