Добавил:
Студент, если у тебя есть завалявшиеся работы, то не стесняйся, загрузи их на СтудентФайлс! Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_лаб4.docx
Скачиваний:
5
Добавлен:
16.07.2022
Размер:
2.23 Mб
Скачать

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

Работа выполняется в следующей последовательности:

1. Изучение структуры и принципов функционирования программы In_Param, Внесение в её исходный файл изменений, соответствующих индивидуальному заданию;

2. Ассемблирование отредактированного исходного файла в среде ассемблера Аsm85. Получение объектного файла и файла протокола.

3. Подготовка данных, моделирующих потоки параметров непрерывных процессов. Их преобразование в формат ххх.dat, для обработке на программном имитаторе AVSIM85

4. Изучение принципов построения командных файлов управления средой AVSIM85. Внесение изменения в типовой командный файл In_Par.cmd применительно к индивидуальному заданию

5. Отладка программы с помощью симулятора AVSIM85 и исследование принципов взаимодействия функциональных блоков микроЭВМ и МП I8085A (1821ВМ85) при реализации процедуры безусловного программного ввода.

6. Анализ полученных результатов и оформление отчета.

2.1. Программа In_Scan. Структура и принцип работы. Внесение изменений

Этап 1. Изучение программы In_Param.

Исходным является текст программы, написанный на языке Ассемблер ASM85.

Такой текст существует в виде файла In_Param.asm. Текст файла.

; Программа In_Param для ввода отсчетов Xij процессов Process0,

; Process1, Process2, Process3 в микроЭВМ для хранения и обработки

;---------------------------------------------------------------------------------------------------

org 200H ; начальный адрес программы

baze0 equ 0800h ; начальный адрес первой строки x0j (j=0÷7)

; массива Xij (i=0÷3; j=0÷7)

baze1 equ baze0+08h ; начальный адрес второй строки x1j (j=0÷7)

; массива Xij (i=0÷3; j=0÷7)

baze2 equ baze0+10h ; начальный адрес третьей строки x2j (j=0÷7)

; массива Xij (i=0÷3; j=0÷7)

baze3 equ baze0+18h ; начальный адрес третьей строки x3j (j=0÷7)

; массива Xij (i=0÷3; j=0÷7)

offset equ 0000h ; смещение

;---------------------------------------------------------------------------------------------------

lxi b,offset ; смещение элемента в строке

vvod: lxi h,baze0 ; инициализация регистра базы первой строки

dad b ; исполнительный адрес очередного элемента первой

; строки

in 00h ; ввод очередного элемента первой строки

mov m,a ; очередной элемент первой строки – сохранить

lxi h,baze1 ; инициализация регистра базы второй строки

dad b ; исполнительный адрес очередного элемента первой

; строки

in 01h ; ввод очередного элемента второй строки

mov m,a ; очередной элемент первой строки – сохранить

lxi h,baze2 ; инициализация регистра базы третьей строки

dad b ; исполнительный адрес очередного элемента первой

; строки

in 02h ; ввод очередного элемента третьей строки

mov m,a ; очередной элемент третьей строки – сохранить

lxi h,baze3 ; инициализация регистра базы четвертой строки

dad b ; исполнительный адрес очередного элемента четвертой

; строки

in 03h ; ввод очередного элемента четверто строки

mov m,a ; очередной элемент четвертой строки – сохранить

inx b ; index+1, смещение для очередного элемента

mov a,c ; счетчик циклов в ACC

ana a ; флаг переноса в ноль

cpi 08h ; циклы все?

jc vvod ; ввод окончен? Если нет – повторить

nop

end

На этом этапе работы необходимо проанализировать текст программы и разобраться с её функционированием.

Программа использует косвенную адресацию со смещением для адресации ячеек оперативной памяти, в которых сохраняются отсчеты сканируемых процессов. Исполнительный адрес j-го элемента i-ой строки (i=0÷3; j=0÷7) формируется путем сложения базового адреса bazei строки со смещением j (offset). элемента в строке, т.е. bazi+j.

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

На ассемблерном уровне формирование исполнительного адреса очередного элемента xij обеспечивается путем сложения (HL) +(BC), выполняемое командой dad b . Она формально описывается, как (HL)← (HL) +(BC). Заполнение массива выполняется по столбцам по схеме x0j → x1j→ x2j → x3j (j=0÷7).

Программа имеет циклический характер. Первый цикл обеспечивает заполнения первого столбца матрицы ||X|| отсчетами x00 → x10→ x20 → x30. Затем реализуются еще семь циклов для заполнения оставшихся столбцов .

Контролируется запоминание последнего отсчета процесса Process3. Это осуществляется командой сравнения сравнения cpi 08h. Она возвращает активный признак C (carry), если выполнено восемь циклов. Выход из цикла обеспечивается командой условного перехода JC vvod.

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

Этап 2. Внесение изменений в текст программы в соответствии с заданием.

На этом этапе необходимо:

  1. Разместить программу в заданном кодовом сегменте CS

  2. Выделить в заданном сегменте данных массив для сохранения отсчетов процессов Process0, Process1, Process2, Process3.

Изменение положения программы в CS обеспечивается директивой ORG.

Указав в поле операнд/адрес директивы ORG начальный адрес программы, можно обеспечить компилирование программных кодов с указанного адреса. Например, первый байт первой команды , базового варианта программы In_Param размещается по адресу 0200h (ORG 0200h).

;---------------------------------------------------------------------------------------------------

org 200H ; начальный адрес программы

baze0 equ 0800h ; начальный адрес первой строки x0j (j=0÷7)

; массива Xij (i=0÷3; j=0÷7)

и т.д.

Далее необходимо выделить в DS массив для хранения 32 отсчетов

процессов Process0, Process1, Process2, Process3.

Для этого составляется следующая таблица базовых адресов.

Таблица 1 – Разбиение адресного пространства DS

Назначение ячеек

Начальный–конечный адрес

Объем (байт)

DS.Строка 1 матрицы Xij

(i=0; j=0÷7)

0800h – 0807h

8

DS.Строка 2 матрицы Xij (i=1; j=0÷7)

0808h –080fh

8

DS.Строка 3 матрицы Xij

(i=2; j=0÷7)

0810h –0817h

8

DS.Строка 4 матрицы Xij

(i=3; j=0÷7)

0818h –081fh

8

В таблице приведены данные характерные для базовой программы In_Par. Базовые адреса должны быть изменены применительно к заданному адресному пространству.

Далее составляется 2D–модель адресного пространства системы.

Для базовой программы она имеет следующий вид (Рисунок 7).

Таблицу 1 и рисунок 7 применительно к своим данным необходимо включить в отчет по лабораторной работе.

Далее, руководствуюсь данными Таблицы1, необходимо внести изменения в текст базовой программы In_Par.asm с целью ее адаптации к адресному пространству данных. Для этого в блоке инициализации необходимо изменить базовый адрес baze0 ( выделен красным)

baze0 equ 0800h ; начальный адрес первой строки x0j (j=0÷7)

; массива Xij (i=0÷3; j=0÷7)

baze1 equ baze0+08h ; начальный адрес второй строки x1j (j=0÷7)

; массива Xij (i=0÷3; j=0÷7)

baze2 equ baze0+10h ; начальный адрес третьей строки x2j (j=0÷7)

; массива Xij (i=0÷3; j=0÷7)

baze3 equ baze0+18h ; начальный адрес третьей строки x3j (j=0÷7)

; массива Xij (i=0÷3; j=0÷7)

Соседние файлы в предмете Основы микропроцессорной техники