Как выполнить программу в пошаговом режиме

Действие: Прибавляет единицу к содержимому третьего РОН.

2. Команда сложения содержимых регистров R2 и R4.

Обозначение Восьмеричный код Наименование команды
ADD R2, R4 0600204 Сложение

Действие: складывается содержимое R2 с содержимым R4.

Состояние ячеек памяти

до выполнения операции: После выполнения:

R2) 000002 R2) 000002

R4) 000004 R4) 000006

3. Команда инвертирования байта

Обозначение Восьмеричный код Наименование команды
COMB R4 105104 Инвертирование байта

Действие: Заменяется содержимое разрядов 07 — 00 в R4 их обратным кодом. (байтовые команды, использующие регистры общего назначения, оперируют только с младшим байтом информации, содержащимся в РОН).

До выполнения операции: После выполнения операции:

R4) 022222 R4) 022155

FLProg. Пошаговое выполнение программы с фиксированным временем шага.

4. Команда очистки с автоинкрементной адресацией операнда

Обозначение Восьмеричный код Наименование команды
CLR (R5) + 005025 Очистка

Действие: Содержимое ячейки, адрес которой содержится в R5, очищается, после чего адрес (содержимое R5) увеличивается на 2.

До выполнения операции: После выполнения операции:

20000) 005025 R5) 030000 20000) 005025 R5) 030002

30000) 111116 30000) 000000

5. Команда очистки байта с автоинкрементной адресацией операнда

Обозначение Восьмеричный код Наименование команды
CLR B (R5) + 105025 Очистка байта

Действие: очищается выбранный байт, адрес которого содержится в R5, после чего адрес (содержимое R5) увеличивается на 1.

До выполнения операции: После выполнения операции:

20000) 005025 R5) 030000 20000) 105025 R5) 030001

30000) 111116 30000) 111000

6. Команда сложения с автоинкрементной адресацией операнда через регистрR2

Обозначение Восьмеричный код Наименование команды
ADD (R2) +, R4 062204 Сложение

Действие: операнд, адрес которого содержится в R2, складывается с содержимым R4. Результат заносится в R4, а содержимое R2 (адрес операнда источника) наращивается на 2.

До выполнения операции: После выполнения операции:

100) 062204 R2) 000204 100) 062204 R2) 000206

R4) 001000 R4) 003000

204) 002000 204) 002000

7. Команда прибавления 1 с автодекриментной адресацией операнда

Обозначение Восьмеричный код Наименование команды
INC — (R0) 005240 Прибавление единицы

Автодекрементный метод адресации также используется для обработки табулированных данных. Однако, в отличие от автоинкрементного метода, адресация к ячейкам массива идет в противоположном направлении. При этом методе содержимое выбранного РОН уменьшается (для байтовых команд на единиц, для команд с полными словами — на два), а затем используется как исполнительный адрес.

PYCHARM ДЛЯ PYTHON. 2 ЧАСТЬ. DEBUGGER

Действие: Содержимое R0 уменьшается на 2 и используется как исполнительный адрес. К содержимому, выбранному из ячейки по этому адресу, Прибавляется единица.

До выполнения операции: После выполнения операции:

100) 005240 R0) 017776 100) 005240 R0) 017774

17774) 000000 17774) 000001

8. Команда байтовая прибавления 1 с автодекрементной адресацией операнда

Обозначение Восьмеричный код Наименование команды
INC B — (R0) 105240 Прибавление единицы к байту

Действие: содержимое R0 уменьшается на 1 и используется как адрес операнда. К выбранному байту прибавляется единица.

До выполнения операции: После выполнения операции:

100) 105240 R0) 017776 100) 105240 R0) 017775

17774) 000000 17774) 000400

9. Команда сложения с автодекрементной адресацией операнда через РОН R3

Обозначение Восьмеричный код Наименование команды
ADD — (R3), R0 064300 Сложение

Действие: Содержимое R3 уменьшается на 2 и используется как адрес операнда источника, который складывается с содержимым R0 (операнд приемника). Результат записывается в R0.

До выполнения операции: После выполнения операции:

120) 064300 R0) 000020 120) 064300 R0) 000070

R3) 001776 R3) 001774

1774) 000050 1774) 000050

10. Команда очистки с индексной адресацией.

Индексный метод адресации, при котором исполнительный адрес определяется как сумма выбранного РОН с индексным словом позволяет осуществлять произвольный доступ к элементам структуры данных. Индексное слово содержится в следующей за командным словом ячейке памяти. При индексном методе адресации содержимое выбранного регистра может быть использовано в качестве базы для вычисления серии адресов.

Обозначение Восьмеричный код Наименование команды
CLR 200 (R4) 005064 000200 Очистка

Действие: Адрес операнда определяется прибавлением к содержимому R4 код 200, после чего ячейка с вычисленным адресом очищается.

До выполнения операции: После выполнения операции:

1020) 005064 R4) 001000 1020) 005064 R4) 001000

1022) 000200 1022) 000200

1200) 177777 1200) 000000

11. Команда байтовая инвертирования с индексной адресацией

Обозначение Восьмеричный код Наименование команды
COMB 200 (R1) 105161 000200 Инвертирование байта

Действие: адрес операнда определяется прибавлением к содержимому R1 кода 200. После чего содержимое ячейки с вычисленным адресом заменяется его обратным кодом.

До выполнения операции: После выполнения операции:

1020) 105161 R1) 017777 1020) 105161 R1) 017777

1022) 000200 1022) 000200

20176) 011000 20176) 1664300

Адрес операнда был вычислен прибавлением к содержимому R1 кода 200, в результате чего команда СОМВ произвела свое действие над старшим байтом ячейки с адресом 20176.

12. Команда сложения с индексной адресацией

Обозначение Восьмеричный код Наименование команды
ADD 30 (R2), 20 (R5) 066265 000020 000030 Сложение

Действие: Содержимое ячейки, адрес которой вычисляется сложением кода 30 с содержимым R2 (операнд источника), складывается с содержимым ячейки, адрес которой вычисляется сложением кода 20 с содержимым R5 (операнд приемника). Результат записывается по адресу операнда приемника.

До выполнения операции: После выполнения операции:

1020) 066265 R2) 001100 1020) 066265 R2) 001100

1022) 000030 R5) 002000 1022) 000030 R5) 002000

1024) 000020 1024) 000020

1130) 000001 1130) 000001

2020) 000001 2020) 000002

Порядок выполнения работы

— на задней стенке системного блока тумблер «СЕТЬ» установить в верхнее положение;

Читайте также:
Как узнать пароль и логин от ВК без программ

— на блоке управления монитора нажать кнопку «СЕТЬ»;

— на системном блоке клавишу ПИТ/ВЫКЛ перевести в верхнее положение;

— клавишу ПРОГРАММА / ПУЛЬТ перевести в нижнее положение (режим пультового терминала). На клавиатуре клавиши ДУП, ЛИН, РЕД и ЛАТ должны быть нажаты.

4.1. Освоить правила работы в пультовом режиме ЭВМ для загрузки и отладки программы

1) Процедура1-чтение данных из памяти, из РОН и из регистра состояния программы RS. Для чтения данных на экран дисплея надо задать адрес в восьмеричном коде или имя регистра и нажать «/», ЭВМ выводит содержимое ячейки или регистра в восьмеричном коде. Для окончания режима — нажать «ВК», но при необходимости прочитать следующий адрес ячейки памяти или РОН, то надо нажать “ПС».По сигналу ПС микроЭВМ выводит адрес следующего слова и через пробел число по этому адресу. Далее можно вновь нажать ПС, а по окончании чтения массива — ВК.

Пример чтения содержимого с 600-го по 604-й адрес:

000602/ 177777 ПС

000604/ 000000 ВК

Пример чтения из РОН со 2-го по 3-й адрес:

Чтение регистра состояния программы:

2) Процедура2-запись чисел в память и в РОН.

Режим записи включает действия режима чтения, только после вывода данных из ЭВМ надо набрать новое число. Старшие нули в адресе и в данных могут быть опущены. В ячейку или РОН записываются последние 6 цифр.

Выполнить примеры записи массива данных с 600-го по 604-й адрес:

600/ 177777 2700 ПС

000602/ 177777 676 ПС

000604/ 000000 12701 ВК

Запись чисел в РОН R0, R1

R0/ 177777 676ПС

4.2. Выполнить программы из одной команды с видами адресации операндов согласно вариантов задания.

ВАРИАНТ ЗАДАНИЯ НОМЕР КОМАНДЫ (по материалам раздела 3)
ПРИМЕРЫ 4, 6, 11
1 ПРИМЕРЫ 1, 5, 12
2 ПРИМЕРЫ 2, 7, 10
3 ПРИМЕРЫ 3, 6, 9
4 ПРИМЕРЫ 4, 8, 11
5 ПРИМЕРЫ 1, 6, 9
6 ПРИМЕРЫ 4, 8, 11
7 ПРИМЕРЫ 2, 6, 10
8 ПРИМЕРЫ 3, 6, 11
9 ПРИМЕРЫ 4, 8, 12

Задание1. Ввести начальный адрес программы, состоящей из одной исследуемой команды, и нажатием клавиши “G» запустить программу.

По выполнении программы просмотреть массив ячеек памяти и регистров и сравнить их с состоянием соответствующих ячеек до выполнения команды.

4.3. Выполнить программу с прямой регистровой адресацией.

Предложено исследование применения методов адресации на примере программы последовательного сравнения чисел А, В, С. В качестве операндов А, В, С необходимо взять произвольные восьмеричные числа, которые до запуска программы должны быть загружены в регистры соответственно РОН R1, R2, R3. Для хранения результата выполнения программы (большего из трех чисел) используется регистр результата R0, который должен быть предварительно очищен.

Программа на языке Ассемблера:

MOV R1, R0; засылка операнда А в регистр результата Р0

CMP R0, R2; сравнение числа А с числом В

BGT M1; условный переход на метку М1 по условию больше нуля разности чисел А-В по результату сравнения

MOV R2, R0; засылка операнда В в регистр результата Р0

М1: CMP R0, R3; условный переход на метку М2 по условию больше нуля разности чисел В-С по результату сравнения

MOV R3, R0; засылка операнда С в регистр результата Р0

Программа в машинных кодах имеет вид:

Начальное значение счетчика команд (СК) принято равным 600.

Задание2. Выполнить программу в пошаговом режиме:

— записать каждую команду программы в память, начиная с ячейки 600;

-записать операнды А, В, С соответственно в РОН R1, R2, R3.

— выполнить программу по шагам (положение клавиши «ПУЛЬТ / ПРОГРАММА» в нижнем положении). Для этого ввести начальный адрес программы и нажать символ “G». При пошаговом режиме после выполнения каждой очередной команды на экране дисплея высвечивается адрес следующей. При нажатии клавиши “Р» выполняется очередная команда и выводится на экран значение счетчика команд. После останова программы можно выполнить чтение регистра состояния.

Занести в отчет последовательность выполнения команд с учетом ветвлений программы.

2) Выполнить программу в автоматическом (циклическом) режиме (положение клавиши «ПУЛЬТ/ПРОГР» в верхнем положении ПРОГРАММА). В циклическом режиме выполняются все программы с заданного адреса до команды «ОСТАНОВ», после чего — выводится значение счетчика команд.

Содержание отчета

5.2. Результаты выполнения команд с видами адресации операндов согласно вариантов задания.

5.3. Результаты выполнения программы сравнения чисел в пошаговом и автоматическом режимах.

Литература

Центральный процессор М2. Техническое описание и инструкция по эксплуатации.

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

Источник: cyberpedia.su

Средства получения справки и отладки программ

Это окно используется для отслеживания значений переменных или выражений. Можно одновременно задавать несколько контрольных выражений. Можно использовать контрольные значения для задания моментов останова программы.

Определяемое пользователем контрольное выражение позволяет следить в процессе пошагового выполнения программы за изменением значения этого выражения.

Чтобы определить новое контрольное выражение, выполните команду Add Watch (Добавить контрольное значение) из меню Debug. Кнопка панели инструментов

Добавление нового контрольного значения


Рис. 3.12. Добавление нового контрольного значения

Вводимое в строку Expression (см. рис. 3.12) выражение может быть переменной, свойством или любым другим допустимым в Visual Basic выражением. Если в окне модуля перед выполнением команды Add Watch было выделено некоторое выражение, то оно автоматически отображается в строке Expression.

Допускается перетаскивание мышью выделенного выражения из окна модуля в окно контрольных значений Watches.

Контекст контрольного выражения ( Context ) — это область определения контрольного выражения:·поле Procedure отображает имя процедуры, в которой вычисляется введенное выражение. Допускается выбор всех процедур модуля либо отдельной процедуры.

Поле Module отображает имя модуля, в котором вычисляется выражение. Допускается выбор всех модулей либо отдельного модуля.

Читайте также:
Подготовка по программе 1с

Строка Project отображает имя текущего проекта. Вычисление выражений вне текущего проекта невозможно.

  • При выборе контекста контрольного выражения всегда следует задавать самую узкую область определения вычисляемого выражения, удовлетворяющую поставленной задаче. Выбор всех процедур или всех модулей может значительно замедлить выполнение, поскольку контрольное выражение вычисляется после выполнения каждой инструкции.

В области Watch Type (Тип контрольного значения) можно задать реакцию Visual Basic на значение контрольного выражения:

  • Watch Expression (Контрольное выражение) отображает в окне контрольных значений заданное выражение и его значение.
  • Break When Value is True (Останов, если значение выражения истинно) — выполнение программы автоматически прерывается, когда значение выражения становится истинным или ненулевым (недопустимо для строковых выражений).
  • Break When Value Changes (Останов при изменении значения выражения) — выполнение программы автоматически прерывается при изменении значения выражения в указанном контексте.

Введенное выражение и его значение отображаются в окне Watches ( рис. 3.13).

Окно контрольных значений


Рис. 3.13. Окно контрольных значений

Значения автоматически обновляются в этом окне при прерывании программы, при переходе к следующему шагу, а также после выполнения каждой инструкции в окне Immediate. В окне контрольных значений выводится значение выражения , которое оно имеет в контексте, определенном процедурой и модулем.

Команда Edit Watch (Изменить контрольное значение) из меню Debug позволяет отредактировать или удалить контрольное выражение.

Команда доступна только при установленном контрольном значении, даже если окно контрольных значений закрыто.

Окно диалога Edit Watch ( рис. 3.14)похоже на окно Add Watch и элементы окна Edit Watch устанавливаются точно также как элементы окна Add Watch. Кнопка панели инструментовФункциональные клавиши Ctrl+W.

Добавление контрольного выражения


Рис. 3.14. Добавление контрольного выражения

Команда Quick Watch (Контрольное значение) из меню Debug выводит окно диалога Quick Watch с текущим значением выделенного в тексте процедуры выражения. Эта команда служит для просмотра текущего значения переменной, свойства объекта или другого выражения, для которого не задано контрольное выражение.

Окно контрольных значений Quick Watch


Рис. 3.15. Окно контрольных значений Quick Watch

Для добавления просматриваемого в окне Quick Watch ( рис. 3.15) выражения в список контрольных выражений следует нажать кнопку Add. Кнопка панели инструментовфункциональные клавиши Shift+F9.

  • Контрольные выражения не сохраняются вместе с программой.

Контрольные точки или точки останова

Точка останова ( Breakpoint ) представляет собой строку процедуры, на которой разработчик во время отладки планирует остановить выполнение программы. Обычно точки останова используются в больших программах с целью определения их поведения. Имеет смысл устанавливать контрольные точки там, где предположительно может возникнуть ошибка, или в местах, которые отмечают прохождение логических частей программы, например, окончание ввода данных, расчет промежуточных результатов и т.п.

Для установки контрольной точки переместитесь на нужную строку процедуры и нажмите пиктограммуМожно выполнить команду Debug-Toggle Breakpoint (Отладка-Точка останова) или нажать клавишу F9. Можно сделать щелчок на вертикальную полосу слева от строки процедуры. Строка подсвечивается цветом точки останова ( Breakpoint Text ), задаваемым на вкладке Editor Format команды Tools-Options. Обычно это коричневый цвет.

При достижении точки останова программа не прерывается, а переходит в режим отладки , который позволяет посмотреть возможное место ошибки и исправить его. Продвижение от одной точки останова к другой в режиме выполнения программы производится нажатием кнопки Runклавишей F5 или командой Run.

Если точка останова задана в строке, содержащей несколько операторов, разделенных двоеточием (:), останов происходит в первой инструкции такой строки.

Если точки останова больше не нужны, их надо снять. Отмена всех точек останова производится командой Clear All Breakpoints (Снять все точки останова) из меню Debug или клавишами Ctrl+Shift+F9. Отменить действие этой команды нельзя.

Для снятия одной точки останова выполните команду Toggle Breakpoint из меню Debug для строки процедуры, содержащей точку останова. Можно нажать клавишу F9 или пиктограммуМожно сделать щелчок на установленную точку на вертикальной полосе слева от строки процедуры. Точка останова удаляется и подсветка строки снимается.

  • Нельзя установить точку останова на пустой строке или на строке, содержащей неисполняемые инструкции, например комментарии, объявление переменных .
  • Точки останова не сохраняются вместе с программой.

Трассировка или пошаговое выполнение программы

Поскольку последовательность выполнения операторов программы не всегда очевидна, можно выполнять программу по шагам — команду за командой или процедуру за процедурой. При таком способе отладки можно отследить порядок выполнения операторов и наблюдать реакцию программы на выполнение каждого оператора.

Для запуска пошагового режима можно нажать одну из кнопокпанели инструментов Debug или выполнить соответствующие команды из меню Debug. Трассировку можно выполнять с начала программы или с точки останова после прерывания программы. При трассировке на вертикальной полосе слева от выполняемого оператора расположена стрелка — указатель выполняемого оператора .

Источник: intuit.ru

Отладка, использование среды для отладки программ

Поскольку идеальных программистов не существует, в большинстве систем разработки программ имеются инструменты, с помощью которых можно решить проблемы, возникающие в процессе программирования. В VBA также есть средства, которые позволяют либо исключить ошибки при разработке, либо задать обработку ошибок при выполнении программ.

Отладка программ – это проверка и внесение исправлений в программу при её разработке. Отладка позволяет идентифицировать ошибки, допущенные при программировании (синтаксические – ошибки в выражениях и именах, и логические – в логике работы программы).

Обработка ошибок – это задание реакции на ошибки, которые возникают при выполнении программы. Их причиной могут быть как ошибки программиста, так и внешние факторы – отсутствие нужных файлов, отказы аппаратуры, неправильные действия пользователя.

Типы ошибок. Ошибки в программе делятся на три категории:

Ошибки компиляции – возникают, когда компилятор не может интерпретировать введённый текст. Некоторые ошибки компиляции обнаруживаются при вводе, а другие – перед выполнением программы. Такие ошибки легко определить и исправить, поскольку VBA выявляет их автоматически, а сами ошибки очевидны.

Читайте также:
Установка и удаление программ archlinux

Примечание. VBA автоматически компилирует программу каждый раз при запуске на выполнение после внесения изменений. Можно также запустить компиляцию командой Отладка – Компилировать.

Ошибки выполнения – возникают при выполнении программы после успешной компиляции. Их причиной обычно является отсутствие данных или неправильная информация, введённая пользователем. Такие ошибки идентифицируются VBA с указанием инструкции, при выполнении которой произошла ошибка. Для исправления таких ошибок обычно приходится выводить значения переменных или другие данные, которые влияют на успешное выполнение программы.

Логические ошибки трудно заметить и устранить. Они не приводят к прекращению компиляции или выполнения, однако являются причиной того, что программа не выдаёт желаемых результатов. Выявление таких ошибок производят путём тщательной проверки с помощью средств отладки VBA.

Средства отладки. В VBA имеется большое количество средств, предназначенных для отладки программ. К ним относятся: использование оператора Option Explicit, пошаговое выполнение программы, работа в режиме прерывания, использование точек останова, вывод значений переменных.

Использование Option Explicit. Данный оператор описания требует явного задания переменных в программах. При его использовании возникает ошибка компиляции при неправильном написании имени переменной или использовании неописанной переменной. Кроме того, явное описание переменных позволяет обойтись без использования типа данных Variant и связанных с его использованием ошибок при неявном приведении типов данных.

Пошаговое выполнение программы. Этот режим служит для локализации ошибок в теле программы. Для его запуска используются команды меню, клавиатура или панель инструментов Отладка, отображаемая командой Вид — Панели инструментов — Отладка. В меню и на панели инструментов имеются четыре команды (кнопки) для выполнения программы в пошаговом режиме.

· Команда Отладка – Шаг с заходом (клавиша < F8 >) позволяет выполнить одну строку программы и перейти к следующей. Если следующая строка – вызов процедуры, то происходит переход к первому выполняемому оператору этой процедуры.

· Команда Отладка – Шаг с обходом (клавиши < Shift+F8 >) также выполняет одну строку программы, но если строкой является вызов процедуры, то она выполняется как одна инструкция. Данная команда используется, если известно, что эта процедура работает правильно.

· Команда Отладка – Шаг с выходом (клавиши < Ctrl+Shift+F8 >) заканчивает выполнение текущей процедуры и останавливается на следующей после вызова текущей процедуры инструкции в вызывающей подпрограмме.

· Команда Отладка – Выполнить до текущей позиции (клавиши < Ctrl+F8 >) выполняет программу от текущей до выбранной инструкции. Перед выбором данной команды требуется установить курсор в окне модуля на требуемую позицию.

Работа в режиме прерывания. Переход в данный режим выполняется:

· При нажатии кнопки Отладка в окне сообщения об ошибке выполнения.

· При прерывании работы программы нажатием клавиш < Ctrl+Break >. Текущая строка программы выделяется в окне модуля.

· По достижении точки останова.

· По достижении оператора Stop.

· При пошаговом выполнении программы.

В режиме прерывания можно:

· Вывести значение переменной.

· Вычислить выражение в окне отладки.

· Выполнить программу в пошаговом режиме.

· Продолжить выполнение программы.

Для выхода из режима прерывания используется команда Запуск – Сброс.

Использование точек останова. Точка останова – это строка в процедуре, на которой приостанавливается выполнение программы. Все команды, находящиеся выше точки останова, выполняются с обычной скоростью, а по достижении контрольной точки программа переходит в режим прерывания.

Затем можно отлаживать процедуру в пошаговом режиме, либо использовать различные способы вывода значений переменных. Кроме того, имеется возможность остановить выполнение или сбросить процедуру командами меню Запуск или кнопками панели инструментов Отладка. В одном проекте можно задать несколько точек останова, причём в различных процедурах.

Чтобы установить или снять точку останова, используется команда Отладка – Точка останова или клавиша < F9 >, либо кнопка Точка останова панели инструментов Отладка. Можно также установить или снять точку останова, щелкнув левой кнопкой мыши на полосе индикатора против требуемой строки. Точка останова отмечается коричневой жирной точкой на полосе индикатора, а сама строка выделяется коричневым цветом.

Чтобы быстро удалить все точки останова открытого проекта, используется команда Отладка – Снять все точки останова или комбинация клавиш < Ctrl+Shift+F9 >. Для данной команды не предусмотрена кнопка на панели инструментов Отладка.

Вывод значений переменных. При наличии тестового примера вывод значений переменных позволяет сравнить ожидаемые и полученные значения переменных. Для отображения значений переменных в режиме прерывания необходимо:

· При установленном флажке Подсказки значений переменных в окне Сервис – Параметры достаточно переместить указатель мыши на требуемую переменную для отображения имени и значения переменной во всплывающей подсказке.

· Выбрать команду Отладка – Контрольное значение (нажать клавиши ) для вывода диалогового окна Контрольное значение. При этом курсор должен находиться возле переменной, значение которой надо контролировать. В окне Контрольное значение отображается контекст (имя модуля и процедуры), выделенное выражение (переменная) и кнопки Добавить и Отмена. При нажатии кнопки Добавить откроется окно Контрольные значения, содержащее имена переменных (выражения), их значения, тип данных и контекст.

· Для добавления других контрольных значений используется команда Отладка – Добавить контрольное значение.

· Выбрать команду Вид – Окно локальных переменных. Откроется окно Локальные переменные, в котором в режиме прерывания отображаются имена, значения и типы всех переменных модуля.

Выбрать команду Вид – Окно отладки. В нем немедленно выполняется введённая в него инструкция, обычно операция отображения значения выражения вида Print имя, или операция присваивания значения переменной.

Источник: megalektsii.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru