LO
SAMPLE AD
RB5,B,1
ST SAMPLE AD RB4,B,1
SR X AD RB3,B,1
ZP AD RB2,B,1
ZR AD RB1,B,1
ZT AD RB0,B,1
RE
P 54
NV
AD mulcnd
AD mulpr
AD H_byte
AD L_byte
AD count
AD portb
AD RB7,B,1
AD RB6,B,1
Рис. 2
Если в файле инициализации есть команда ‘LO’, то загрузка объектного файла производится автоматически. Если бы команды ‘LO’ в файле SAMPLE.INI не было, то Вы должны были бы ввести команду
45
По умолчанию формат объектного файла INHX8M. Если формат файла иной, то команда имеет формат
LO <имя файла> <формат>
Загружаются также файлы листинга и таблицы идентификаторов, если они существуют.
Стимулирующий файл содержит входные величины на штырьках (выводах) процессора. Когда выполняется загруженная программа, то для каждой инструкции, которая отмечена в стимулирующем файле в виде шага STEP, MPSIM отыскивает входные данные и вводит их на “штырьках”. Загрузка стимулирующего файла осуществляется по команде:
ST <имя файла>
Эту команду целесообразно включать в файл инициализации. В нашем примере в файле инициализации имеется команда ‘ST sample.sti’, которая автоматически вводит стимулирующий файл с именем ‘sample.sti’. Пример стимулирующего файла приведен на рис. 3.
STEP RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0! PortB x PortB
5 0 0 0 0 1 0 0 1 ! 9 x 5
7 0 0 0 0 0 1 0 1
84 0 0 0 0 1 0 1 0 ! 10 x 5
86 0 0 0 0 0 1 0 1
163 0 0 0 1 1 0 1 1 ! 27 x 3
165 0 0 0 0 0 0 1 1
242 0 0 0 1 0 0 0 1 ! 17 x 7
244 0 0 0 0 0 1 1 1
321 0 1 0 0 0 0 0 0 ! 64 x 63
323 0 0 1 1 1 1 1 1
Рис. 3
Стимулирующий файл на рис. 3 содержит величины пар данных (в данном примере это сомножители), вводимых через имитируемый порт - PortB. Через этот порт вводятся восьмибитные данные для множимого и множителя, максимальные значения которых могут быть 11111111B или 0xFF.
46
Файл трассировки (следа) содержит имена выполненных инструкций, шаг процессора, время, изменяемые инструкциями значения переменных или регистров. Использование файла трассировки особенно полезно там, где осуществляется ввод данных через стимулирующий файл. Таким образом, файл трассировки создает “распечатку” процесса выполнения программы на заданных участках. В MPSIM имеется пять команд, связанных с трассировкой:
TF - открыть (создать)/закрыть файл для записи трассировки;
TC - трассировка (прослеживание) определенного количества инструкций;
TR - трассировка инструкций, имеющих дело с определенными регистрами и величинами;
TA - печать трассировки всех инструкций между двумя определенными адресами;
DX - отображение параметров трассировки текущего следа.
Точки прерываний используются для того, чтобы искусственно остановить выполнение программы с целью анализа промежуточных данных в критических точках программы, просмотра содержимого регистра статуса и т. д.. Имеются три команды, которые работают с точками прерываний и обеспечивают организацию этого режима:
DB - отображает все точки прерываний, установленные к настоящему времени;
BC - очищает одну или все точки прерываний, установленные к настоящему времени;
B - устанавливает точку прерывания.
Выполнение Объектного Кода
Кроме команд трассировки, есть ещё три команды, которые можно использовать для выполнения объектного кода:
E - выполняет объектный код до тех пор, пока не встретится точка прерывания или до нажатия любой клавиши;
SS - пошаговое выполнение программы;
С - выполняет объектный код и игнорирует “n” точек прерывания.
В MPSIM имеется четыре типа команд, которые позволяют модифицировать объектные коды и сохранять их после модификации:
47
Команды поиска кодов и их адресов по заданным параметрам.
Команды отображения/модификации содержимого ячеек (регистров).
Команды удаления кодов.
Команды вывода и сохранения модифицированных кодов.
4.1.3. Описание команд
1 AB - отказ от сеанса эмуляции
Синтаксис: АВ
Описание: прерывает сеанс эмуляции MPSIM. Выдаёт одно или два итоговых сообщения и осуществляет выход в OC. MPSIM сохраняет журнальный файл.
Связанные команды:
Q-выход.
2 AD - дополнение пунктов экрана просмотра
Синтаксис: AD signal {,система счисления }{,цифра}
Описание: команда добавляет объекты или регистры экрана просмотра. Кроме того, Вам предоставляется возможность задания системы счисления и/или количество выводимых разрядов. Команда при дополнении некоторых объектов не уничтожает исходный экран, а
отображает дополнительные пункты, наряду с текущими. По умолчанию система счисления – шестнадцатеричная.
Связанные команды:
V-отображает объект или регистр ;
NV-полностью стирает отображение пунктов экрана ;
GE-загружает файл инициализации.
Примечание: при обращении к регистрам используется шестнад- цатеричная система. Пример: файловый регистр 10 будет записы - ваться в виде “0А”.
3 В
- установка точки прерывания
Синтаксис: В [адрес/ножка вывода] {заданное значение}
Описание: команда устанавливает точку прерывания на
указанный адрес или позицию указанного вывода или регистра, сопоставляет заданное значение с текущим. Можно определить адрес с явной числовой
48
позиции или с помощью символа. Оператор может быть следующим: =, >, <, >=, <=, !=.
Примеры:
В LOOP <Enter>- установка точки прерывания на метку LOOP;
В F2>80- прерывание, если F2 больше 80.
Связанные команды:
ВС- очистка всех точек прерывания.
ДВ- отображение всех точек прерывания.
Замечание: при определении номеров регистров используется десятеричная система.
4 ВС- сброс точки прерывания
Синтаксис: ВС{address/data_area}
Описание: удаление определенной точки прерывания или всех точек сразу (по умолчанию).
Примеры: ВС LOOP- отмена прерывания точки LOOP;
ВС F3- отмена прерываний применения регистра F3.
Связанные команды:
В- установка точек прерывания;
ДВ- отображение всех точек прерывания.
5
С-
продолжение выполнения
Синтаксис: С{n}
Описание: команда начинает выполнение с адреса в РС. Если n определено, то MPSIM игнорирует n первых точек прерывания. По умолчанию n равно нулю.
Связанные команды:
В- установка точек прерывания;
DВ- отображение всех точек прерывания;
ВС- очистка всех точек прерывания.
6 Ск - часы
Синтаксис: Ск pin, high- cycles, low- cycles.
49
Описание: команда позволяет пользователю связать часы с I/O выводом, определяет период часов, указывая количество циклов, в течение которых вывод должен быть активен и пассивен. Pin- имя любого существующего I/O вывода.
Пример: Ск RCO, 5, 4- связывает часы с выводом RCO, число активных циклов 5, число пассивных- 4.
7
DВ
- отображает все активные точки прерывания
Синтаксис: DВ.
Описание: команда выделяет все активные точки прерывания. MPSIM поддерживает только одну точку условного прерывания на область данных.
Пример: ДВ.
При этом на экран выводится:
В LOOP- установка прерывания в месте LOOP;
В F2>80- установка условного прерывания.
Связанные команды:
В- установка точек прерывания;
ВС- очистка всех точек прерывания.
8 DЕ - удаление в памяти программы
Синтаксис: DЕ address 1, address2.
Описание: команда удаляет информацию между двумя адресами включительно в программной памяти и сдвигает данные в удаленную область из стираемых адресов.
9 DI - отображение содержимого программной памяти
в мнемонико- символическом формате
Синтаксис: DI address 1, address2.
Описание: команда отображает программную помять с адреса 1 по адрес 2, причем адрес 2 должен быть больше адреса 1, и оба адреса должны иметь корректные значения. По умолчанию при отсутствии адреса 2 отображается только ячейка с адресом 1. Можно приостановить выдачу данных нажатием любой клавиши клавиатуры.
Связанные команды:
DM- также отображает память между двумя адресами, но только в цифровом формате.
50
10 DК - определение кнопки
Синтаксис: DК {AltFxkey, pin, event}
Описание: AltFxkey- целое от 1 до12;
Pin- любой существующий I/O вывод;
Event (событие) принимает одно из четырех значений- H, L, T, P
(high- высокий уровень, low- низкий уровень, toggle- переключатель, pulse-
пульсация). Команда эмулирует асинхронное событие с помощью нажатия Alt - кнопки и очень эффективна для эмуляции внешних прерываний и сброса. Кроме того, при определенном синтаксисе могут выполняться следующие функции:
DK- отображает назначение всех функциональных клавиш;
DK AltFxkey- отображает назначение определенной функциональной клавиши;
DK AltFxkey;- блокирует соответствующую функцию;
DK;- блокирует все функции.
Пример: DK 12, MCLR, P
Нажатие Alt-F12 приводит к одному циклу на выходе MCLR при выполнении; нажатие Alt-F12 симулирует сброс ДК3, RTCC, T. При нажатии Alt-F3 будет осуществляться переключение входа RTCC.
11 DL - удаление символа из таблицы идентификатора
Синтаксис: DL symbol.
Описание: эта команда удаляет определенный символ из таблицы идентификаторов.
Пример: DL MULPLE.
MPSIM удаляет “mulple” из таблицы идентификаторов. Для доступа к данным из этой области необходимо использовать номер фактического регистра F10.
Связанные команды:
GS- создает символ и устанавливает его таблице идентификаторов;
LS- загружает новую таблицу;
DS- отображает текущую таблицу идентификаторов;
RA- очищает таблицу идентификаторов.
51
12 DМ - отображение программной памяти в виде опреде-
ленной системы счисления
Синтаксис: DМ address1, address2.
Описание: команда отображает программную память с адреса 1 по адрес 2. Следует вводить корректные значения адресов (адрес 1 < адрес2, и оба имеют действующие значения). Для прекращения выдачи нажать любую клавишу.
Связанные команды:
DI - также отображает память, добавляет мнемокоды.