Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Топ:
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Интересное:
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Дисциплины:
2017-11-21 | 280 |
5.00
из
|
Заказать работу |
|
|
Интерпретатор может выполняться в автоматическом или пошаговом режиме. В автоматическом режиме Интерпретатор моделирует выполнение команд программы без остановок до команды типа HALT или до точки останова. В точке останова оператор может вводить команды, управляющие действиями Интерпретатора и выбрать режим продолжения выполнения. В пошаговом режиме Интерпретатор после выполнения каждой команды программы останавливается и предоставляет оператору возможность вводить команды управления. Командами управления работой Интерпретатора могут быть:
u команды на отображение/изменение состояния/содержимого компонентов модели;
u команды задания точек останова;
u команды моделирования прерываний;
u команды установки режима выполнения;
u команда окончания работы.
Отображаться должны состояния и значения всех составляющих программной модели ВС: регистров (РОН, счетчика адреса, состояния), заданных участков памяти и их признаков, счетчика модельного времени, программы поступления прерываний и т.д. Отображаемые значения также должны быть доступны для изменений. Отметим, что для интерактивного отображения/изменения должны быть доступны также байты признаков памяти. Изменение содержимого регистра-счетчика адреса равносильно передачи управления в программе.
Точки останова могут задаваться в исходном для Интерпретатора файле и вводиться/изменяться в ходе интерактивной отладки. Могут быть предусмотрены остановы при:
u передаче управления по заданному адресу;
u чтении данных по заданному адресу;
u записи данных по заданному адресу.
Связь отладки с исходным текстом. Такая связь безусловно удобно и может быть осуществлена относительно несложно, если выход 1-го прохода Кросс-Ассемблера передается на вход Интерпретатора. Выход 1-го прохода связывает операторы исходного текста с адресами памяти. Таким образом, по значению счетчика адреса в каждый момент выполнения программы можно найти в выходе 1-го прохода соответствующий оператор исходного текста. Если на вход Интерпретатора подается также сформированная 1-м проходом таблица символов, то есть возможность обращаться к переменным программы и к точкам передачи управления по символьным именам.
|
Можно ли обеспечить изменение прямо в ходе отладки исходного текста? Схема решения сводится к представленной на рисунке. В схеме остается только 1-й проход Кросс-Ассемблера. Выход его — исходный текст с разметкой адресов и таблица символов является основным входом Интерпретатора. Необходимость во 2-м проходе Кросс-Ассемблера отпадает. В начале выполнения Интерпретатор должен построить модель памяти, в которой он размещает, однако, только данные программы, но не команды. При работе Интерпретатор повторяет многие действия 2-го прохода Кросс-Ассемблера, читает не коды, а исходные тексты и распознает команду не по коду операции, а по мнемонике, и интерпретирует операнды не по кодам, а по исходным текстам. Изменения в исходном тексте оператора программы должны автоматически реплицироваться в соответствующем операторе (только в одном операторе!) результата 1-го прохода, и тогда при следующем выполнении этого оператора будет моделироваться уже выполнение новой команды. Однако, поскольку в результате 1-го прохода каждый оператор уже привязывается к определенному адресу, возможность изменения должна ограничиваться тем, что длина новой команды обязательно равна длине старой команды. Более сложные изменения потребуют повторного выполнения 1-го прохода Кросс-Ассемблера.
Итоговая схема алгоритма функционирования Интерпретатора сводится к следующей:
F Блок1: Запуск Интерпретатора.
|
F Блок2: Открытие исходных файлов — результатов работы Кросс-Ассемблера и файлов с управляющей информацией (описание файлов — внешних устройств, программа поступления прерываний, описание фрагментов памяти и отдельных ячеек и т.п.).
F Блок3: Считывание управляющей информации.
F Блок4: Установка начальных значений для компонентов модели (содержимое памяти, регистры, счетчик модельного времени).
F Блок5: Интерактивное задание/корректировка управляющей информации (режим выполнения, точки останова и т.п.).
F Блок6: Автоматический режим?
F Блок7: Если установлен пошаговый (не автоматический) режим выполнения, выполняется ввод и обработка команд оператора в интерактивном режиме. Эта обработка может заканчиваться либо продолжением выполнения интерпретатора в пошаговом или автоматическом режиме, либо завершением его работы по команде оператора.
F Блок8: Если установлен автоматический режим выполнения, но текущее значение регистра — счетчика адреса совпадает с одной из заданных точек останова, также выполняется ввод и обработка команд оператора в интерактивном режиме.
F Блок9: Проверяется счетчик модельного времени сравнивается с временем поступления первого прерывания в списке прерываний.
F Блок10: Если счетчик модельного времени больше или равен времени поступления первого прерывания в списке, выполняется сохранение текущего состояния и занесение в регистр-счетчик адреса секции обработки прерывания данного типа.
F Блок11: Первый элемент удаляется их списка прерываний и происходит возврат на начало итерации обработки команды.
F Блок12: Если прерывание не поступило, выбирается первый байт команды (при отладке по объектному модулю) или ее мнемоника (при отладке по исходному тексту).
F Блок13: Код операции или мнемоника команды ищется в таблице команд.
F Блок14: При неуспешном поиске Интерпретатор заканчивается с сообщением об ошибке.
F Блок15: Выбор операндов из кода команды или из текста оператора.
F Блок16: Проверка правильности кодирования операндов, проверка корректности обращения к памяти.
F Блок17: При ошибках в операндах или в обращении к памяти Интерпретатор заканчивается с сообщением об ошибке.
F Блок18: Задан ли для адреса операнда останов при обращении? Если да — возврат на выполнение команд в интерактивном режиме.
|
F Блок19: Интерпретация команды и запись результата
F Блок20: Вычисление и занесение в регистр-счетчик адреса следующей команды.
F Блок21: Проверка, является ли адрес в регистре-счетчике адреса адресом 1-го байта команды
F Блок22: Если это не так, Интерпретатор заканчивается с сообщением об ошибке.
F Блок23: Модификация счетчика модельного времени и переход на выполнение следующей команды.
Окончание работы Интерпретатора может происходить:
u при обнаружении ошибки в программе;
u при вводе оператором интерактивной команды завершения работы;
u при обработке команды останова (HALT) в программе.
Лекция 18.
Ошибки программирования
|
|
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!