Яковлев Л.А., Тимченко В.И. Вычислительная техника. Методические указания к лабораторным работам - файл n1.docx

Яковлев Л.А., Тимченко В.И. Вычислительная техника. Методические указания к лабораторным работам
скачать (298.5 kb.)
Доступные файлы (1):
n1.docx299kb.07.07.2012 02:54скачать

n1.docx

1   2   3   4   5   6   7   8

Кроме того, необходимо поменять метку (адрес возврата) в последней команде программы JMP с M1 на M5.

Входные значения, имитирующие сигналы управления, записываются в файл входных данных. Этот файл подключается к порту ввода (примеры подключения см. в работе 3). Для проверки работы счетчика необходимо создать файл входных значений, позволяющий проверить нормальное изменение состояния счетчика на полном периоде его работы при значении входного сигнала 3 - (r1= r2=1) и возможность установки начального состояния и остановки счета - комбинации 1 - (r2=0 r1=1) и 2 - (r2=1 r1=0). Таким образом, в файле должна быть последовательность значений 3, число которых не меньше коэффициента пересчета счетчика, и произвольная последовательность значений 0, 1, 2, 3. В качестве образца командного файла подключения входных/выходных файлов можно воспользоваться приведенным ниже файлом count2.cmd, изменив при необходимости имя загружаемого файла основной программы.

lacount2

IOindat.dat

N

oI:1h,IN

IO

outdat.dat

oI:2h,OUT

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

Отчет должен содержать:



Лабоpатоpная pабота 5

Система прерываний процессора 1821ВМ85 (I8085)

5.1. Цель работы

Изучение системы прерываний микропроцессора и организации программного обеспечения режима работы с прерываниями.

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

Результаты выполнения каждого пункта работы необходимо показывать преподавателю.

5.3. Задание на работу в лаборатории

5.3.1. Программа реализации прерываний

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

defseg TABLE_INTER, ABSOLUTE
seg TABLE_INTER


; Сегмент программы формирует таблицу векторов прерывания,
; вектора прерываний должны располагаться по определенным
; адресам и сегмент является абсолютным: команды перехода
; привязываются к абсолютным адресам директивой org <адрес>


org

0

; прерывание RESET

JMP

INIT

;

org

24h

; прерывание TRAP

JMP

TR

 

org

2Ch

; прерывание RST5.5

JMP

RST5

 

org

34h

; прерывание RST6.5

JMP

RST6

 

org

3Ch

; прерывание RST7.5

JMP

RST7

 

 

 

 

defseg MAIN, class=code

seg

MAIN

 

; Сегмент с основной (фоновой) программой
; Инициализация процессора


INIT:

 

 

 

LXI

SP,STACK

; организация стека

; По умолчанию после сброса все прерывания запрещены

 

MVI

A,00001000b

; задание маски для маскируемых прерываний -

 

SIM

 

; разрешение всех маскируемых прерываний

 

EI

 

; общее разрешение прерываний

; Бесконечная петля основной программы -
; инкремент содержимого аккумулятора


 

MVI

A,0

 

BEGIN:

 

 

 

INR

A

 

 

JMP

BEGIN

 

 

 

 

 

 

defseg PPROGRAMM, class=code

 

seg PPROGRAMM

; Сегмент с подпрограммами обработки прерываний
; Подпрограмма обработки прерывания TRAP,
; реализующая перемещение на экране символа F по кругу


TR:

 

 

 

 

PUSH

PSW

; Сохранение контекста

 

PUSH

B

 

 

PUSH

D

 

 

PUSH

H

 

;

EI

 

; Разрешение прерывания (вложенного)

 

MVI

B,8

 

 

LXI

H,D1

 

M2

LDA

S

 

 

MOV

M,A

 

 

MVI

C,1Fh

; Реализация временной задержки для удобства наблюдения

; Основная часть подпрограммы, реализующая перемещение символа, не
; приводится


…………………………..

POP

H

; Восстановление контекста

POP

D

 

POP

B

 

POP

PSW

 

EI

 

; Разрешение прерываний

RET

 

; Возврат в основную программу

; Подпрограмма обработки прерывания RET5.5,
; реализующая перемещение на экране символа F по кругу
RST5:


 

PUSH

PSW

 

PUSH

B

 

PUSH

D

………………………..

; Подпрограммы обработки различных прерываний отличаются только областью
; памяти, в которой происходит перемещение символа

…………………………………..

defseg RAM, CLASS=DATA

seg RAM

; Сегмент данных, содержащий директивы резервирования места в
; памяти под стек и перемещение символа

D1:

 

 

 

ds

32

 

ds

100

STACK:

 

 

ds

10

D2:

 

 

 

ds

32

; Задание символов, перемещаемых в подпрограммах

ST:

 

 

 

DB

"TT"

S7:

 

 

 

DB

"77"

S6:

 

 

 

DB

"66"

S5:

 

 

 

DB

"55"

 

end

 

5.3.2. Выполнение программы реализации прерываний

1. Скопируйте в свой рабочий директорий файлы

int. asm

рабочие программы

int. lnk
int. bat
int. cmd


 

avmac85.exe

транслятор

avlink.exe

компоновщик

avsim85 exe

программы имитатра

setcolor exe
avsim85 hlp
avsim85 ovr
avsim85 reg


 

2. Произведите трансляцию и компоновку программы, набрав соответственно команды

avmac85     int.asm si     allpublic

avlink         @int.lnk

3. Запустите на выполнение командный файл int.bat (выделив его курсором и нажав Enter). После выполнения команд этого файла в имитатор загружается исполняемая программа.

4. Переведите курсор в область отображения окон имитатора (клавиша Esc) и установите его в область ввода запроса на прерывание TRAP (клавиши Ctrl I и ). Область ввода запросов на прерывания и фиксации маски прерываний приведена на рис. 6.1. В слове RIM три младших разряда отражают запрет/разрешение маскируемых прерываний RST7.5, RST6.5, RST5.5, три старших разряда - наличие необслуженных запросов на прерывание, средний разряд - наличие общего разрешения на прерывания, устанавливаемого командами EI/DI. Формат слова RIM приведен на рис. 6.2. Прерывание TRAP является не маскируемым.

5. Клавишей F5 установите LOW – низкую скорость работы имитатора. (Скорость работы имитатора зависит от конкретного компьютера, и в процессе работы приемлемую скорость изменения состояния имитируемого процессора можно подобрать клавишей F5).

http://dvo.sut.ru/libr/tcos/i200yakt/5-1.gif

http://dvo.sut.ru/libr/tcos/i200yakt/5-2.gif

6. Запустите программу на автоматическое выполнение, нажав клавишу F1 (остановка выполнения программы производится клавишей Esc). При этом будет выполняться основная программа, состоящая из двух повторяющихся команд, в соответствии с которыми содержимое аккумулятора меняется по “пилообразному” закону.

7. Введите с клавиатуры запрос на прерывание TRAP, нажав последовательно символы 1 и 0. Процессор перейдет к выполнению подпрограммы обработки прерывания TRAP, в соответствии с которой будет происходить перемещение символа T между ячейками с адресами 200h - 20Fh. После окончания выполнения подпрограммы произойдет возврат в основную программу.

8. Введите с клавиатуры запрос на прерывание RST7.5, нажав последовательно символы 1 и 0. (Курсор должен быть установлен в область ввода запроса на прерывание RST7.5.) Процессор перейдет к выполнению подпрограммы обработки прерывания RST7.5, в соответствии с которой будет происходить перемещение символа 7 между ячейками с адресами 210h – 215h. После окончания выполнения подпрограммы произойдет возврат в основную программу.

9. Аналогичным образом проверьте выполнение подпрограмм обслуживания прерываний RST6.5 и RST5.5. При их выполнении будут перемещаться соответственно символы 6 и 5. При вводе запросов на эти прерывания необходимо иметь в виду следующее. По входам TRAP и RST7.5 МП реагирует на перепад напряжения 01, поэтому при подаче 1 происходит однократный ввод запроса на прерывание. По входам RST6.5 и RST5.5 МП реагирует на высокий уровень сигнала (на значение 1), поэтому, если сразу же не "снять" 1 с входа запроса на прерывание, будет происходить повторный запрос на прерывание. Сигнал 1 необходимо "снять" до выполнения команды EI (разрешение прерываний) в подпрограмме обработки прерывания.

10. Проверьте влияние общего запрета на прерывания.

Для этого во время выполнения основной программы (или временной остановки ее выполнения клавишей ESC) установите 0 в разряды D3 слова RIM (см. рис. 6.2) и вводите запросы на различные прерывания. Запишите в отчет полученное слово RIM и результат – выполняется или нет соответствующая подпрограмма обслуживания прерывания после ввода каждого запроса. После ввода запроса на прерывание TRAP необходимо снова установить 0 в разряд D3 слова RIM.

11. Проверьте влияние запрета (маскирования) на прерывания.

Для этого во время выполнения основной программы (или временной остановки ее выполнения клавишей ESC) установите 1 в разряд D3 и 0 в разряды D2 - 0, затем последовательно устанавливайте 0 в разряды D2, D1, D0 слова RIM (см. рис. 6.2) и вводите запросы на различные прерывания. Запишите в отчет полученное слово RIM и результат – выполняется или нет соответствующая подпрограмма обслуживания прерывания после ввода каждого запроса.

12. Продемонстрируйте результаты работы преподавателю.

13. Остановите выполнение программы и выйдите из имитатора.

5.3.3. Реализация вложенных прерываний

1. Скорректируйте в исходном тексте программы int.asm подпрограммы обслуживания прерываний таким образом, чтобы разрешались вложенные прерывания. Для этого в каждой подпрограмме превратите строку

EI ; Разрешение прерывания (вложенного)

из комментария в команду (уберите точку с запятой в начале строки).

2. Произведите трансляцию и компоновку скорректированной программы и загрузите ее в имитатор (командный файл int.bat). Установите скорость работы LOW клавишей F5.

3. Запустите программу на автоматическое выполнение, нажав клавишу F1. При этом будет выполняться основная программа. Введите с клавиатуры запрос на прерывание TRAP, нажав последовательно символы 1 и 0. Процессор перейдет к выполнению подпрограммы обработки прерывания TRAP. До окончания ее выполнения введите с клавиатуры запрос на прерывание RST7.5. Процессор перейдет к выполнению подпрограммы обработки прерывания RST7.5, в соответствии с которой будет происходить перемещение символа 7. После окончания выполнения подпрограммы RST7.5 процессор вернется в подпрограмму TRAP и затем в основную программу.

4. Аналогичным образом проверьте выполнение других комбинаций вложенных прерываний.

5. Выйдите из имитатора, превратите снова в исходном тексте строки подпрограмм с командой EI в комментарий, произведите трансляцию и компоновку программы и загрузите ее в имитатор.

6. Повторите п. 3 и зафиксируйте в отчете слово RIM и отличия хода выполнения программы от предыдущего случая.

7. Продемонстрируйте результаты работы преподавателю.

8. Остановите выполнение программы и выйдите из имитатора.

5.3.4. Приоритет прерываний

1. Запустите на выполнение командный файл int.bat (выделив его курсором и нажав Enter). После выполнения команд этого файла в имитатор загружается исполняемая программа.

2. Переведите курсор в область отображения окон имитатора (клавиша Esc) и установите его в область ввода запроса на прерывание TRAP (клавиши Ctrl-I и ) и запустите программу на выполнение.

3. Введите запрос на прерывание TRAP и затем запросы на все остальные. Вложенные прерывания запрещены, поэтому до окончания выполнения подпрограммы TRAP обслуживание всех остальных будет отложено. Отложенные запросы будут отражены в слове RIM.

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

Следует отметить, что в процессоре I8085 при возникновении запроса на вложенное прерывание механизм приоритетов не используется.

4. Продемонстрируйте результаты работы преподавателю.

5.3.5. Индивидуальные задания

Напишите и выполните по заданию преподавателя на основе программы int.asm ее вариант в соответствии со следующими заданиями:

1) организовать ввод в подпрограмме прерывания заданного числа через заданный порт ввода и перемещение его в определенную ячейку памяти;

2) организовать вывод в подпрограмме состояния А через заданный порт вывода;

3) организовать ввод в подпрограмме прерывания заданного числа через заданный порт ввода, выполнение заданных арифметических вычислений над ним и вывод результата.

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

Отчет должен содержать значения полученных слов RIM , результаты работы программы с пояснениями.

Программный имитатор МП КР1821 (I8085)

В данном разделе использованы материалы, приведенные в [3].

П.1.1. Запуск программы

Запуск программы осуществляется из командной строки DOS следующей командой:

avsim85 -с1 [param] ,

где -c1 определяет режим дисплея , совместимый с EGA (цветной режим),

param – последовательность символов, которая определяет режим
работы имитатора:

A - режим "голого" МП 8085;
B - режим МП 8085 с микросхемой 8155 (ПЗУ с портами ввода/вывода);
C - режим МП 8085 с микросхемой 8355 (параллельный интерфейс);
D - режим МП 8085 вместе с ИМС 8155 и 8355.

П.1.2. Режимы работы имитатора

Имитатор может находиться в любой момент времени в одном из двух основных режимов: работа с меню (режим меню) и работа с экраном имитатора (режим экрана).

Режим меню определяет режим выбора команд из меню имитатора. Выбор команды меню осуществляется клавишами курсора или по "горячей" клавише, символ которой показан прописной буквой, например: "Quit" - символ "Q", "setUp" - символ "U". Если таких в названии несколько, то выбор по первой букве. Отказ от выбора пункта меню (в любом месте) производится по сочетанию [Ctrl-C], что приводит к выходу в главное меню.

Режим экрана позволяет изменять любые доступные значения окон трассировки. Под окном трассировки понимается любая ячейка памяти, регистр или флаг, находящийся в данный момент на экране. Все значения, которые можно изменять, подсвечены (здесь есть небольшой нюанс: в окнах фрагментов памяти можно менять лишь те значения, которые определены как доступная память). Выбор окна трассировки производится клавишами курсора или горячими клавишами.

Память имитатора имеет адреса с 0000h по FFFFh. Любая ячейка может быть описана как доступная для записи/чтения (ОЗУ), как доступная лишь для чтения (ПЗУ), или быть недоступной, т.е. по данному адресу в физической ЭВМ отсутствует любое ЗУ. В последнем случае в части экрана, где отражаются операции, будет строка no memory. На фрагментах памяти будет отражено значение FFh для этих ячеек, но изменить содержимое таких ячеек с помощью фрагмента памяти нельзя. Объявление памяти как доступной осуществляется или заданием областей памяти из меню, или вводом команды/значения по адресу ячейки (также с помощью меню).

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

СКОРОСТЬ эмулирования. Может принимать одно из значений: высокая (HI), средняя (MID), низкая (LOW). Значения переключаются клавишей [F5] и отображаются в области режимов эмуляции (значение SPD).

ПОКАЗ МЕТОК. Данная опция определяет, показываются ли в области операций адреса ячеек памяти (опция имеет значение ADDR) или название метки, соответствующие данному адресу (значение LABEL). В последнем случае метка отображается лишь в том случае, когда она определена в символьной таблице (можно загрузить из файла с расширением SYM). Если метки не определены, показывается адрес ячейки. Значения переключаются клавишами [Alt–F5] и отображаются в области операций над значениями адресов.

ОБНОВЛЕНИЕ ЭКРАНА. Данная опция отвечает за обновление окон трассировки во время прогона программы. Значение ее отображается в области режимов эмуляции (DSP) и принимает значения включено (ON) или выключено (OFF). Переключение осуществляется клавишей [F6]. При включенном режиме обновления все окна трассировки непрерывно обновляют свои значения во время прогона программы, а также курсор в окне операций указывает всегда на текущую операцию (ячейку памяти, куда указывает счетчик команд PC), а остальные обновляются лишь при останове выполнения программы. При выключенной опции обновляются лишь те окна трассировки, для которых трассировка включена.

ТРАССИРОВКА ОКНА. Данная опция устанавливается для каждого окна трассировки отдельно. Переключение осуществляется клавишами [Alt–F6], значение отображается в строке состояния в области меню. Значение можно менять лишь в режиме экрана. Отображение осуществляется после каждого изменения. Если опция включена (Trace ON), то обновление данного окна трассировки будет непрерывно вестись во время прогона программы вне зависимости от значения опции обновления экрана. При отключенном значении (Trace OFF), используемом по умолчанию при запуске программы, обновление зависит от опции обновления экрана.

ПРОПУСК ВЫЗОВА ПОДПРОГРАММ. Эта опция переключается клавишей [F8] и принимает значение включено (ON) или выключено (OFF), которое отображается в области режимов эмуляции (SKP). Включение данной опции позволяет форсировать вызов подпрограмм (CALL ADDR). Форсирование заключается во включении режима прогона с установкой точки останова на следующей команде, следующей за вызовом. Данное форсирование осуществляется лишь при пошаговом выполнении программы.

РЕЖИМ СКРОЛЛИРОВАНИЯ. Данный режим определяет, будет осуществляться прокрутка окон трассировки (скроллирование) клавишами курсора или нет. Режим может быть включен (ON) или выключен (OFF), что отображается в области режимов эмуляции (SCL). Переключение осуществляется с помощью комбинации [Ctrl–PageUp] только в режиме экрана. При включенном режиме клавиши курсора осуществляют прокрутку окна трассировки, при выключенном – переход между окнами.

ТИП КУРСОРА. Данный режим определяет, какой тип курсора установлен в данный момент. Тип курсора может иметь значения MENU (выбор команды меню), HEX (16-ричное значение), BINARY (двоичное значение), ASCII (символ). Эти значения отображаются в области режимов эмуляции (CURSOR). Переключение осуществляется клавишей [F7]. Значение MENU курсор имеет при работе с меню. В этом режиме его смена невозможна. При переходе в режим экрана значение курсора можно менять (меняются оставшиеся три значения). Смена типа курсора приводит к смене позиции курсора, если это возможно (например, курсор на аккумуляторе будет переходить между двоичным, 16-ричным и символьным представлением его содержимого). ВНИМАНИЕ! Смена значения курсора происходит даже в случае, когда нет других представлений значения окна трассировки (например, во фрагментах памяти установка режима бинарного курсора не приводит ни к каким изменениям). Также значение курсора не меняется автоматически при переходе между вариантами представления значения ячейки в окне трассировки. Установка типа курсора предназначена только для быстрого перехода между типами представления ячейки.

П.1.3. Меню имитатора

Содержит следующие пункты:

Меню имитатора состоит из команд, большинство которых содержат в себе подменю. Рассмотрим работу каждого пункта в отдельности (в описании меню принято следующее обозначение: жирным строчным шрифтом обозначаются пункты меню и пункты подменю, относящиеся к данному меню, светлым строчным - другие меню, а светлым прописным шрифтом обозначаются значения, которые необходимо ввести, что отображается в строке состояния при вводе). Все имена файлов вводятся с расширением (кроме особо оговоренных случаев).

Меню Memory. Работа с памятью. Включает подменю:

Clear. Очистка памяти. Заполнение нулями памяти с начального адреса (LOWER ADDRESS) по конечное значение (UPPER ADDRESS). Работает только с доступной памятью.

Fill. Заполнение памяти с адреса LOWER ADDRESS по адрес UPPER ADDRESS значением FILL VALUE. Работает только с доступной памятью.

Move. Перемещение области памяти с адреса LOWER ADDRESS по адрес UPPER ADDRESS, начиная с адреса DESTINATION ADDRESS. Также работает только с доступной памятью.

Search. Поиск в памяти с адреса LOWER ADDRESS по адрес UPPER ADDRESS значения SEARCH DATA. В случае успеха курсор в области операций устанавливается на ячейку с первым значением. Это значение заносится и в регистр счетчика команд PC.

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

Меню Patch. Ввод команд ассемблера. Включает подменю:

Patch code. Ввод команд. Команды ассемблера вводятся последовательно в ячейку памяти, на которую указывает курсор в области операций (или счетчик команд). После ввода курсор перемещается на ячейку, следующую за введенной командой. Команда вводится в формате: [метка:] операция [;комментарий]. Если при вводе указана метка, она заносится в таблицу символов и может быть использована в дальнейшем вместо адреса ячейки (имя метки будет отражено вместо адреса, если включен показ меток в области операций).

Open output file. Открывает на запись файл, в который будут заноситься все введенные команды. Если файл существовал, он перезаписывается. После открытия файла автоматически вызывается предыдущий пункт меню для ввода директив ассемблера. ВНИМАНИЕ! Уже введенные до открытия файла в память команды в файл не записываются.

Close file. Закрывает открытый для записи команд файл. Последующие вводимые команды в файл заноситься не будут до тех пор, пока заново не будет открыт файл (его содержимое будет уничтожено).

Меню Quit. Выход из программы. Содержит лишь один пункт:

Exit. Подтверждение выхода из программы.

Меню Reset. Сброс параметров имитатора. Содержит подменю:

Cpu. Сброс процессора. Означает переход к нулевому адресу в памяти (в счетчик команд заносится 0).

Disptrace. Сброс режима трассировки окна для всех окон трассировки. Это означает, что для всех окон трассировки устанавливается режим TRACE OFF, т.е. обновление их не происходит при выключенном режиме обновления экрана в процессе прогона программы.

cYcles. Установка счетчика тактов МП в выключенное состояние. Счет тактов не будет производиться пока счетчик не будет включен командой меню Set.

Меню Set. Установка точек останова, памяти и др. параметров имитатора. Содержит подменю:

Memory-map. Настройка карты памяти. Объявление памяти как доступной. Можно объявить память как ОЗУ (random-Access) или как ПЗУ (read-Only). Объявление памяти осуществляется по областям с адреса UPPER ADDRESS до адреса LOWER ADDRESS.

Passpoint. Установка точек слежения. При обращении по указанному адресу (или адресам) или к заданному регистру в счетчике фиксируется количество обращений к данному адресу. Общее число обращений ко всем точкам можно увидеть с помощью меню View. Для каждой ячейки памяти или регистра (регистровой пары) можно установить фиксирование чтения/записи (A-R/W point) или только записи (C-Write point). Значение адреса (можно указать метку) или название регистра (например, аккумулятор АСС или регистровая пара HL) указывается вводом R/W PASS ADDRESS OR REGISTER. Также можно установить слежение за областью памяти. Установка также может быть произведена на чтение/запись (B-R/W range) или только на запись (D-Write range). Область памяти задается от LOWER ADDRESS до UPPER ADDRESS.

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

Примечание 2. Счетчик не сбрасывается командами меню Reset.

opTions. Позволяет устанавливать соединение между выводами МП и выводами порта С и таймера МС 8155. Позволяет установить соединение между выводом 0 порта С (1: A INTR), выводом 3 порта С (2: B INTR) и выходом таймера (3: TIMER OUT) с одним из входов МП: Trap, RST 7.5 (7), RST 6.5 (6), RST 5.5 (5), INTR или отключить (/). При выборе вывода МП в строке состояния будет указано, куда подсоединен в настоящее время выбранный выход МС 8155.

cYcles. Запуск счетчика тактов МП. Счет будет вестись до тех пор, пока не будет останов командой меню Reset. Счетчик тактов отражает количество тактов МП, прошедших с момента его установки до текущего момента. Увеличение его происходит после выполнения очередной команды.

V-drive. Задает диск, на котором будет отражена виртуальная память имитатора. После выбора меню выводится список доступных дисков (включая НГМД).

Conditional. Задает условную точку останова (breakpoint). Возможно четыре варианта. Косвенная (Indirect) означает прерывание, если с указанным значением (VALUE OF BYTE) совпадет значение байта по адресу точки прерывания + смещение (OFFSET VALUE). Далее предлагается выбор типа точки останова: точка слежения (Passpoint), что аналогично по типу точке слежения Passpoint из предыдущего меню; динамическая (Dynamic), что означает ее сброс после выполнения останова (прерывание выполняется по адресу лишь однажды); постоянная (Sticky), которая очищается лишь командой из меню Reset. После выбора типа точки останова появляется приглашение на ввод адреса точки типа обращения к ячейке (может быть указана группа ячеек), аналогичное меню Passpoint предыдущего меню. Поясним на примере работу этого типа точки останова. Пусть введено значение байта: - 5, смещение - 3, тип - динамический, тип обращения - только на запись, адрес точки - 20h. Тогда останов процесса прогона осуществиться при записи в память по адресу 20h в случае, если по адресу 20h+3=23h находится значение, равное 5.

Следующим вариантом условной точки останова является совпадение значения по маске (Mask). После выбора команды появится приглашение для ввода маски. Маска представляет собой набор символов 1,0 и Х, которые определяют значение бита (Х - произвольное число бит, имеющих любое значение). Маска является битовым представлением содержимого ячейки или регистра (регистровой пары) и состоит из 16 битов (для регистра или ячейки памяти первые 8 должны быть нулевыми или Х, т.е. задаваться максимум 8 символами). При вводе маски считается, что введена младшая часть слова, дополняемая справа Х. Останов происходит, когда при операции чтения или записи в ячейку (регистр или регистровую пару) ее значение подходит под введенную маску. После ввода маски появляется выбор типа точки останова, аналогичный предыдущему пункту.

Третий тип условной точки - попадание значения в интервал (Range). Останов происходит, если значение в ячейке (регистре) при чтении или записи попадает в границы указанного интервала. Границы интервала вводятся после выбора команды меню: нижняя граница (LOW LIMIT VALUE OF BYTE), затем верхняя (HIGH LIMIT VALUE OF BYTE). После ввода интервала появляется запрос на ввод типа точки и типа обращения к ячейке (см. предыдущие пункты).

Последний тип условной точки - совпадение по значению (Value). Останов происходит, когда значение в ячейке или регистре при записи или чтении из нее совпадает с введенным. Ввод значения осуществляется после выбора команды меню (VALUE OF BYTE). Далее появляется запрос на ввод типа точки, а затем типа обращения (см. выше).

Dynamic. Ввод динамической точки останова. Это означает сброс этой точки останова после первого прерывания на ней. После выбора пункта меню появляется запрос на ввод типа обращения к ячейке или регистру (регистровой паре). Запрос аналогичен запросу при выборе меню Passpoint.

Opcode. Означает прерывание при выполнении определенной инструкции ассемблера. После выбора меню появится запрос на ввод директивы ассемблера (ENTER MNEMONIC:). При каждом выполнении в программе введенной директивы будет происходить останов.

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

Меню setUp. Предназначен для установки истории команд. Имеет один пункт

Undo. Настройка числа команд (HISTORY HOLDS xxx STEPS), которые будут сохранены в памяти для возврата по ним операцией Undo (клавиша [F9]). Кратность установки - 20 команд.

Меню View. Просмотр настроек, точек останова и т.д. Если список занимает несколько экранов, переход к следующему осуществляется по нажатию любой клавиши. Возврат в меню по комбинации [Ctrl–C]. Содержит подменю.

Bkpts. Просмотр всех точек останова.

IOfiles. Просмотр параметров файлов ввода и вывода.

Memory-map. Просмотр карты памяти, т.е. всех доступных в данный момент ячеек памяти.

Opc-traps. Просмотр всех точек останова по команде (см. Set/ Opcode). Выводится окно со списком всех инструкций ассемблера, при выполнении которых произойдет останов прогона программы.

Passpts. Выводится список всех точек слежения (см. Set/ Passpoint). Отражается адрес (название регистра), тип доступа к ячейке, число зафиксированных обращений.

Symbols. Просмотр таблицы символов, доступных в данный момент. Доступен вывод списка всех названий (меток), сопоставленных определенным ячейкам памяти и адресам ввода/вывода (меню Alphabetic); вывод всех названий регистров (Registers); вывод всех названий констант, объявленных через EQU (или подобные команды) (Numbers); вывод всех названий меток адресов памяти (Memory); вывод всех названий адресов портов ввода/вывода (IO).

Меню eXecute. Команда выполняет директиву ассемблера, введенную с клавиатуры без заноса в память. Ввод осуществляется сразу после выбора пункта меню (Execute Instruction).

Меню Dump. Настройка окон фрагментов памяти. После выбора команды необходимо выбрать номер окна (1 или 2). Настройки аналогичны. Можно указать отображение в окне фрагмента участка памяти (Absolute), начиная с указанного адреса, который вводится по приглашению START ADDRESS. Или косвенное отображение (Indirect), т.е. отражение участка, где находится ячейка с определенным адресом, значение которого считывается либо из памяти, либо с регистра. Значение адреса ячейки памяти, из которой будет браться адрес для отображения, или название регистра (регистровой пары) вводится по приглашению INDIRECT ADDRESS OR REGISTER. Затем необходимо ввести и смещение (INDEX OFFSET), которое будет прибавлено к значению, взятому из указанной ячейки. После установки косвенного отображения его значение будет выведено в названии окна фрагмента памяти.

Меню Expression. Ввод значения по курсору. По этой команде введенное значение (число) будет выведено в ячейку, на которую указывает курсор в режиме экрана. Т.е. при переключении клавишей [Esc] режимов экрана и меню запоминается последнее местонахождение курсора при выходе из режима экрана. Название ячейки или регистра (регистровой пары) будет отражено в приглашении на ввод значения: EXPRESSION WILL BE STORED AT XXXX, где ХХХХ означает название ячейки.

Меню commandFile. Работа с командным файлом. Командным файлом называется файл, содержащий в себе последовательность кодов клавиш, которые будут нажаты (были нажаты) при работе имитатора. Содержит подменю.

Load. Загружает и выполняет командный файл. На приглашение необходимо указать имя файла.

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

Close. Закрывает командный файл. Прекращается фиксация в файле вводимых команд.

Restart. Начинает заново процесс фиксирования команд. Все предыдущие стираются. ВНИМАНИЕ! Файл должен быть открыт. С закрытым файлом данная команда не производит изменений.

Меню Help. Вывод различной помощи, справки и информации. Содержит подменю:

Commands. Вывод справки по режиму меню. Здесь доступна информация о клавишах управления и форматах записи (например, двоичные числа можно отображать как %111 или 111B; 8-ричные - @377 или 377Q; 16-ричные - $FF или FFH).

Display. Справка по режиму дисплея. Описание режима см. выше.

Simulation. Справка по выполнению эмуляции и установке ее режимов горячими клавишами. Описание см. ниже.

Avocet. Информация о производителе имитатора.

Меню IO. Настройка файлов ввода и вывода. Содержит подменю:

Open. Открытие файла ввода и/или вывода. Осуществляет настройку файлов на передачу информации. Отказ от ввода того или иного типа файла - ввод пустого имени. Смысл файлов ввода и вывода в том, что они присоединяются к ячейке памяти, порту ввода/вывода или регистру; значения из входного файла последовательно считываются в ячейку, а в выходном файле они фиксируются. Чтение/запись значений производится либо циклично, через заданное число тактов, либо при обращении к ячейке для записи или чтения значения. Последовательность ввода следующая. Вначале задается входной файл (INPUT FILE), указывается, повторять ли ввод файла сначала при достижении его конца (REPLAY INPUT FILE AT EOF Yes – да, No – нет). Затем указывается имя выходного файла (OUTPUT FILE). Можно задать лишь один тип файла, тогда на другом файле просто нажмите [Enter], введя пустое имя. После ввода имен файлов предлагается выбрать тип передачи информации: циклично (Cycles) или по обращению к ячейке (Opcode access). При цикличной передаче требуется затем ввести число тактов, через которые будет осуществляться передача данных (CYCLES PER TRANSFER). Затем необходимо выбрать тип настройки передачи данных: настройка каждого бита (Mapbits) или передача целого байта (mapByte). В случае побитового задания передачи появится приглашение на ввод настройки передачи бита (IO BIT, MEMORY BIT, ADDRESS, DIR:IN/OUT) формата:

бит_входа,бит_ячейки,адрес_ячейки [,направление]

Здесь под направлением понимается ввод в ячейку (IN) или чтение из нее (OUT). Если направление не указано, осуществляется ввод. В качестве ячейки можно указывать адрес (метку) в памяти, порт (название) или регистр (регистровую пару). Ячейка должна быть доступной. Так, например, задание строки "2,0,HL,IN" задаст ввод в нулевой бит HL через заданное число тактов значения бита 2 из входного файла. Ввод продолжается и можно вводить настройку следующего бита. Закончить ввод можно вводом пустой строки.

При задании байтового обмена появится приглашение на ввод адреса ячейки и направления обмена (ADDRESS, DIR:IN/OUT) формата:

адрес_ячейки [,направление]

В этом случае будет осуществляться передача данных между файлом и ячейкой целым байтом (8 бит файла соответствуют 8 младшим битам ячейки).

Передача информации при обращении к ячейке производиться только целыми байтами. Настройка аналогична предыдущей (ADDRESS, DIR:IN/OUT) с форматом:

адрес_ячейки [,направление]

Под направлением здесь понимается направление обмена между ячейкой и файлом, а не тип доступа! Передача информации осуществляется при любой операции доступа к ячейке: как при записи, так и при чтении.

Close. Закрывает и отключает файлы ввода и вывода. В строке состояния последовательно выводятся имена файлов и запрос на закрытие (CLOSE IO FILES:).

Меню Load. Загрузка различных данных. Содержит подменю:

Avocet. Загрузка файлов макроассемблера Avocet. Необходимо как минимум два файла: .PRN и .HEX (формируются с помощью avmac85 и avlink). При наличии файла .SYM происходит загрузка программы и таблицы символов. При этом необходимо указать лишь имя без расширения.

Data. Загрузка файла с расширением .HEX в память, объявленную как ОЗУ.

Program. Загрузка программы из файла .НЕХ в память, объявленную как ПЗУ.

Symbol-table. Загрузка таблицы символов из файла с расширением .SYM.

Варианты заданий к работе 3

Требуется рассчитать несколько значений функции y при различных заданных значениях коэффициента a и произвольных значениях переменной x в соответствии с приведенными выражениями. Номер варианта определяется как номер в списке журнала лаборатории по модулю 15 (остаток от деления нацело номера в списке на 15).

http://dvo.sut.ru/libr/tcos/i200yakt/var1-2.gif

http://dvo.sut.ru/libr/tcos/i200yakt/var3-4.gif 

http://dvo.sut.ru/libr/tcos/i200yakt/var5.gif

http://dvo.sut.ru/libr/tcos/i200yakt/var6-7.gif

http://dvo.sut.ru/libr/tcos/i200yakt/var8-9.gif

http://dvo.sut.ru/libr/tcos/i200yakt/var10.gif

http://dvo.sut.ru/libr/tcos/i200yakt/var11-12.gif

http://dvo.sut.ru/libr/tcos/i200yakt/var13-14.gif

http://dvo.sut.ru/libr/tcos/i200yakt/var15.gif

Литература

  1. Юров В. Ассемблер. - СПб.: Питер, 2000.

  2. Пухальский Г.И. Проектирование микропроцессорных устройств: Учебное пособие для вузов. - СПб.: Политехника, 2001.

  3. Исаев А.В. Методическое пособие по работе с имитатором микропроцессора Intel8085 AVSIM8085 фирмы AVOSET SYSTEM (Сайт МВТУ им. Баумана http://www.bmstu.ru).
1   2   3   4   5   6   7   8


Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации