Ассемблирование и отладка программы, страница 2


После запуска эмулятора на экране дисплея выводятся 4 окна: сегменты регистров «RSEG & SFR», файла программы «ФАЙЛ : », сегмента памяти данных «DSEG» и комментарий, а также строки состояния, занимающую нижнюю часть экрана (рис.1). В строке состояния указаны клавиши, активные для данного состояния. Содержание строки состояния зависит от состояния эмулятора.

Кроме фиксированных окон в режиме редактирования выводятся окна программного кода «CSEG», внешней памяти данных «XSEG» и регистров управления.

Эмулятор может находиться в основном режиме или в режиме редактирования содержимого окон. В основном режиме функциональные клавиши выполняют следующие действия:

F1 – вызов контекстной помощи,

F3 – перезагрузка эмулятора,

F4 – переход в режим редактирования содержимого окон,

F5 – ввод адреса в программный счетчик,

F6 – непрерывный или пошаговый режим работы эмулятора,

F7 – включить или выключить отображение данных в окнах,

F8 – выполнение команды, выделенной курсором в окне «ФАЙЛ: »,

F10 – выход из эмулятора

В данном эмуляторе отключен режим перезагрузки файла (F3).

В окно «КОММЕНТАРИИ» выводятся сообщения о работе эмулятора. После запуска эмулятора в это окно выводится приглашение ввести имя исполняемого файла с расширением. Расширение отделяется от имени файла точкой и должно быть .tsk или .obj.

На рис.1 показан ввод файла test.tsk. После завершения ввода имени файла и исправления возможных ошибок в его имени или расширении, необходимо нажать клавишу ENTER. Имя введенного файла появится в окне «ФАЙЛ: test.tsk» и окно заполнится содержимым введенного исполняемого файла.

Все числа в эмуляторе представлены в шестнадцатеричной системе счисления.

Загруженную программу можно выполнить либо в пошаговом (F8), либо в непрерывном (F6) режиме. Для выхода из непрерывного режима нажать повторно F6. Для ускорения вычисления в непрерывном режиме отображение процесса вычисления в окнах можно отключить, нажав F7. Для включения окон повторно нажать F7.

В окне «ФАЙЛ: » после загрузки исполняемого файла отображаются в шестнадцатеричной системе счисления текущие 16 адресов команд и сами команды, а также их мнемоника. Имя окна дополнится именем загружаемого файла. Курсором окна выделяется команда, которая будет выполнена после нажатия клавиши F8 - «Шаг».

При выполнении программы в окне регистров «RSEG & SFR» отображается состояние регистров R0..R7 текущего регистрового банка, номер которого указан в окошке RB. Содержимое аккумулятора A, портов P0, P1, P2, P3 и буфера последовательного порта SBUF представлено как в байтовом, так и битовом форматах. Отображается состояние программного счетчика PC, указателя вершины стека SP и регистра-указателя DPTR. В окошко СТЕК выводится текущее состояние 4 соседних ячеек стека, начиная с вершины стека TS, на которую указывает SP. Стек заполняется в сторону увеличения адресов.

Слово состояния PSW представлено байтом и отдельными битами в поле «ФЛАГ»:

C

AC

F0

OV

P

–  флаг переноса из старшего разряда аккумулятора,

–  флаг переноса из младшей тетрады аккумулятора в старшую,

–  флаг общего назначения, определяемый пользователем,

–  флаг переполнения в арифметических операциях,

–  флаг паритета (четность числа единиц в байте).

Кроме того, в этом поле выведено содержимое младшего (RS0) и старшего (RS1) бита номера регистрового банка, указанного в окошке RB.

В нижней части окна показано содержимое младшего (TL) и старшего (TH) байтов таймеров/счетчиков TC0 и TC1.

В окне «DSEG» отображается текущее состояние 64 ячеек памяти. Окно содержит две области: область адресов и область данных. В каждой строке области адресов показывается адрес первой в данной строке ячейке памяти. В режиме редактирования памяти указывается адрес ячейки памяти, в которой находится курсор.

Редактирование содержимого регистров и памяти.


Для входа в режим редактирования содержимого окон надо нажать клавишу F4. Строка состояния принимает следующий вид (рис. 2):

Для редактирования сегмента программного кода (CSEG) нажать клавишу С, сегмента данных (DSEG) – D, сегмента регистров (RSEG) - R, сегмента внешней памяти данных (XSEG) - X, регистров управления (IP, IE, TMOD, TCON, SCON, PCON) – K.

Строка состояния в режиме редактирования указывает на способы навигации в редактируемом окне и на действия для ввода или отмены введенных изменений:

¬

- на позицию влево,

HOME

- в начало строки,

®

- на позицию вправо,

END

- в конец строки,

­

- на строку вверх,

PgUp

- на страницу вверх,

¯

- на строку вниз,

PgDn

- на страницу вниз,

ENTER

- ввод изменений,

Ctrl+PgUp

- в начало памяти,

ESC

- отмена изменений,

Ctrl+PgDn

- в конец памяти.

Новые значения вводятся в позицию курсора и выделяются инверсным цветом. После ввода (ENTER) или отмены (ESC) выделение снимается, а содержимое окна обновляется.


Редактирование сегмента регистров (в режиме редактирования нажать клавишу R). Курсор находится в окне регистров. Для перемещения курсора из поля шестнадцатеричного представления содержимого регистров в двоичное, а также в поле «ФЛАГ» нажать клавишу табуляции (Tab).

В окне сегмента регистров (рис.3) содержимое регистра R1 изменено на 1F, регистра R5 на 55, младшей тетрады регистра R3 на A, старшей тетрады регистра R6 на 6. Курсор находится в позиции младшей тетрады регистра R6. После ввода (ENTER) или отмены (ESC) выделение снимается и содержимое окна обновляется.

Содержимое программного счетчика PC, указателя стека SP, номера регистрового банка RB и окошка стека редактированию не подлежат. Курсор в их позициях не устанавливается. Необходимый регистровый банка можно установить изменением содержимого младшего (RS0) или старшего (RS1) бита его номера в поле «ФЛАГ».

Редактирование сегментов данных (DSEG, XSEG) и программного кода (CSEG) становится доступным при нажатии клавиши D, XилиC. Окно «DSEG» постоянно находится на экране, а окна «XSEG» и «CSEG» появляются только при их редактировании. Каждое окно состоит из двух областей: области адресов и области данных, разделенных символом двоеточия (:). Если курсор находится в одной из этих областей и в ней записаны, но не введены изменения (имеются выделенные инверсным цветом изменения), то перейти в другую область можно лишь после их ввода (ENTER) или отмены (ESC).

При отсутствии изменений, выделенных инверсным цветом, перейти из области адресов в область данных можно клавишами смещения вправо и «END», а назад - в область адресов клавишей «HOME». При наличии изменений клавишей END курсор смещается в последнюю, а клавишей HOME – в первую позицию строки в области данных.