IntAn EQU 61h ;номер программного прерывания 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

IntAn EQU 61h ;номер программного прерывания



CmdProc MACRO;обработка шага команды ЕС ЭВМ, предполагая,

;что адрес в ES:DI

SAR WORD PTR ES:[DI],1;сдвиг двух 32-битных

RCR WORD PTR ES:[DI+2],1;регистров на 1 бит

RCR WORD PTR ES:[DI+4],1; вправо

RCR WORD PTR ES:[DI+6],1

ENDM

PshReg MACRO ListReg;сохранить указанные в списке регистры

IRP Reg,<ListReg>

PUSH Reg

ENDM

ENDM

PopReg MACRO ListReg;восстановить указанные регистры

IRP Reg,<ListReg>

POP Reg

ENDM

ENDM

prg_cod SEGMENT PARA PUBLIC 'code'

ASSUME CS:prg_cod,DS:prg_cod

ASSUME SS:prg_cod,ES:prg_cod

ORG 100h;программа для.com-файла

Start: JMP main

RegIm DD 6 DUP (?);регистры ЕС ЭВМ 0 - 5

DD -14; регистр 6

DD 00h; регистр 7

DD 8 DUP (?); регитры 8 - 15

OldInt DD 0

Main PROC NEAR;основная процедура

CALL Init;установка обработчика прерывания

INT IntAn; префикс

DB 8Eh; код команды SRDA

DB 60h; r1=6-операнд, r3=0 - игнорируется

DB 0; база b2=0, смещение d2=0 - игнорируется

DB 32; непосредственное число сдвигов

CALL Restore;восстановление обработчика прерывания

RET

Main ENDP

OurInt PROC FAR; обработчик прерывания-префикса

PshReg <AX,BX,CX,DI,BP>

MOV BP,SP

ADD BP,10;5 регистров по 2 байта до CS:IP

MOV BX,[BP];читаем смещение команды

MOV ES,[BP+2];ЕС ЭВМ и ее сегмент

ADD WORD PTR [BP],4;модифицируем адрес возврата

MOV AL,BYTE PTR ES:[BX+1]; номер регистра,

ROR AL,1; прочитанный в старшей

ROR AL,1; тетраде получили

CBW; в регистре AX

LEA DI,CS:RegIm; номер регистра как смещение

ADD DI,AX; в таблице двойных слов

MOV AL,BYTE PTR ES:[BX+3];число сдвигов

CBW; устанавливаем в

MOV CX,AX; регистре CX

CyclES: CmdProc;выполнение одного сдвига

LOOP cyclES

PopReg <BP,DI,CX,BX,AX>

IRET

OurInt ENDP

Init PROC NEAR;установка обработчика прерывания

MOV ah,35h

MOV AL,IntAn;получить в ES:BX адрес

INT 21h;старого обработчика

MOV WORD PTR OldInt, BX;сохраняем адрес

MOV WORD PTR OldInt+2,ES;этого обработчика

MOV AH,25h; и устанавливаем новый

MOV AL,IntAn

MOV DX,CS

MOV DS,DX

LEA DX,OurInt

INT 21h

RET

Init ENDP

Restore PROC NEAR;восстановление старого обработчика

MOV AH,25h

MOV AL,IntAn

LDS DX,CS:OldInt

INT 21h

RET

Restore ENDP

prg_cod ENDS

END start

 

 

Лабораторная работа №4

ИССЛЕДОВАНИЕ АРИФМЕТИЧЕСКОГО СОПРОЦЕССОРА

 

1. Цель и задачи работы

 

Изучение архитектуры и основ системы команд арифметического сопроцессора К1810ВМ87 (i8087). Получение навыков программирования сопроцессорной системы.

 

2.Теоретические положения

 

Арифметический сопроцессор (АСП) К1810ВМ87 является сопроцессором центрального процессора (ЦП) К1810ВМ86 (i8086) [1], ориентированным на выполнение арифметических операций над числами с плавающей точкой. Назначение и наименование большинства его выводов полностью совпадает с соответствующими выводами ЦП в максимальном режиме [2] (см. лаб. раб. №4). Остальные выводы имеют следующее назначение:

BUSY – выходной сигнал занятости – соединяется со входом TEST ЦП;

INT – выходной сигнал прерывания.

Выводы QS1, QS2 служат АСП для получения информации о состоянии очереди команд ЦП.

АСП может работать только совместно с ЦП, разделяя с ним общий поток команд, выбираемый из памяти центральным процессором и поступающий в оба процессора. ЦП имеет в своей системе команд команду ESC, которая содержит код внешней операции для АСП и (если необходимо) адрес операнда в памяти. Выполнение ЦП команды ESC заключается в вычислении, если необходимо, адреса операнда и фиктивном считывании слова данных по этому адресу. АСП контролирует выполняемый ЦП поток команд и, встретив команду ESC, запоминает ее физический 20-разрядный адрес операнда и первое слово данных. После этого АСП выполняет операцию параллельно с работой ЦП. Если АСП требуется операнд, то он выбирает оставшиеся слова из памяти посредством запросов цикла шины у ЦП по сигналу RQ/GT.

С начала выполнения команды АСП выставляет уровень BUSY=1, который используется для синхронизации с ЦП. Параллельная работа ЦП и АСП продолжается до тех пор, пока ЦП не потребуется получить результаты выполнения текущей операции в АСП или выполнить новую команду ESC. Перед выполнением соответствующего действия ЦП должен выполнить команду WAIT, которая переводит ЦП в состояние ожидания до тех пор, пока не будет получен сигнал TEST=0. Команда WAIT вставляется компилятором в программу автоматически.

АСП оперирует с числами в семи форматах (рис.1).

 

Формат директива определения данных

Целое слово (ЦС) 15 0

s |________ DW

Короткое целое (КЦ) 31 0

s |__________________ DD

Длинное целое (ДЦ) 63 0

s |____________________________________ DQ

Двоично-десятичное (ДД)79 0

s |0000000|d17 … _______________________…d0 DT

Короткое веществ. (КВ) 31 23 0

s |__E__|_____m______ DD

Длинное веществ. (ДВ) 63 52 0

s |____E____|_____________m____________ DQ

Временное веществ (ВВ)79 64 0

s |_____E_____|_______________m______________ DT

Рис.1. Форматы данных арифметического сопроцессора

 

Все форматы вещественных чисел имеют бит знака (s), поле порядка (E) и мантиссы (m). Обычно числа представлены в АСП в нормализованной форме, когда мантисса лежит в пределах от 1 до 2. Например, число, объявленное как короткое вещественное определяется как:

(-1)S ´(1, m1 m2 m3 …. m23 )´2 E-127 .

Для объявления некоторого числа в вещественном формате в программе оно должно быть приведено с точкой. Например, переменные

var1 DQ - 4.0256

и var2 DQ 4.0

будут числами с плавающей точкой, а

var3 DQ 4

будет задано в целочисленном формате ДЦ.

В процессе обработки данных все операнды АСП хранятся в формате ВВ; в него они переводятся при загрузке в АСП и переводятся из него в исходный формат при сохранении в памяти.

АСП имеет стековую организацию блока регистров. Группа рабочих 80-битовых регистров заполняется операндами по стековому принципу (рис.2). Регистр ST(0) первым получает загружаемое число и передает предыдущее значение в ST(1) при загрузке следующего значения. Большинство арифметических операций используют вершину стека ST(0), этот регистр адресуется во многих командах неявно (по умолчанию). Команды с двумя операндами оперируют с регистрами ST(0) и ST(1), помещая результат в ST(0), если это не определено дополнительно.

79 64 0

ST(0) ________|_______________________

ST(1) ________|_______________________

ST(2) ________|_______________________

ST(3) ________|_______________________

.. ________|_______________________

.. ________|_______________________

ST(6) ________|_______________________

ST(7) ________|_______________________

Рис.2. Рабочие регистры арифметического сопроцессора

 

АСП имеет регистр управления CR (16-бит) и регистр состояния SR (16-бит). В регистре управления можно задавать режимы работы АСП с помощью установки бит управления бесконечностью (IC), управления округлением (RC), точностью (PC). В младшем байте CR содержатся общая маска запроса прерывания (IEM) и отдельные биты маскирования различных причин прерывания АСП: PM – неточный результат, UM – антипереполнение, OM - переполнение, ZM – деление на ноль, DM – денормализованный операнд, IM – недействительная операция. Регистр состояния служит для проверки условий по результату операций АСП. Его формат приведен на рис.3.

15 0

B | C3 | ‘ST’ | C2 | C1 | C0 || IR | ´ | PE | UE | OE | ZE | DE | IE

Pис.3. Регистр состояния арифметического сопроцессора

 

Здесь младший байт отображает разные случаи причин прерывания от АСП (например, при делении на ноль ZE=1, при переполнении OE=1, и т.п.) Бит IR соответствует активному состоянию вывода INT (выход запроса прерывания от АСП, который соединяется обычно с одним из входов запроса контроллера прерываний).

В старшем байте 3-битовое поле ST указывает физический регистр, являющийся в данный момент вершиной стека. Бит В соотвествует выходному сигналу сопроцессора BUSY (занятость). Биты C3 – C0 показывают тип результата операции. В первую очередь необходимо запомнить значение битов C0 и C3, т.к. они часто используются для определения результата сравнения (таблица 1).

Таблица 1 Значения бит состояния АСП

Отношение операндов C3 C0
ST(0) > X    
ST(0) < X    
ST(0) = X    
ST(0) и X не сравнимы    

Чтобы использовать сопроцессор в программе, достаточно включить команды АСП в ее текст. Все эти команды имеют мнемоническое обозначение, начинающееся с буквы ‘F’ (“floating-point”). Если следующая буква команды - ‘I’, следовательно, операция выполняется с целочисленным форматом. Другие буквы указывают на конкретную операцию. Например, команда FADD складывает два вещественных операнда; FISUB – вычитает одно целое число из другого. Базовая модель АСП i8087 имеет 68 мнемокодов, которые можно разделить на четыре группы: команды перемещения данных, арифметические команды, специальные вычислительные команды и команды управления. Обычно мнемокоды легки для понимания:

FLD – “load” (загрузка стека из памяти),

FST – “store” (сохранение из регистра в память),

FCOM – “compare”, (сравнение)

FSQRT – вычисление квадратного корня («square root») числа в ST(0)),

FSTSW – «store state word», (сохранить слово состояния) и т.д.

В конце команды может стоять суффикс ‘P’. Он означает, что операция выполняется с извлечение значения (pop) из регистра ST(0). После мнемокода операции записываются имена операнда получателя (destination) и источника (source). При отсутствии одного из них, он по умолчанию содержится в регистре ST(0), как было указано выше. Суффикс ‘R’ означает, что команда выполняется с переменой направления (reverse) источника и получателя. Например,

FDIV src: ST(0) ST(0) / src,

FDIVR src: ST(0) src / ST(0).

Большинство современных процессоров с архитектурой х86 имеют встроенный арифметический сопроцессор, который программно совместим с АСП i8087.

 

3. Оборудование

IBM – совместимая ПЭВМ, операционная система, поддерживающая MS-DOS, интегрированный отладчик Turbo Debugger, компилятор Ассемблера tasm.exe.,компоновщик tlink.exe.

4. Задание на лабораторную работу

4.1. Изучить теоретические положения.

4.2. Разобрать программу, приведенную в приложении, которая выводит на экран номер ветви алгоритма вычисления функции v=f(x,y,z):

ì x2 - y2 +z, если x > y и z > 0; (1)

v = í , если x < y и z > 0; (2)

î x + y + z, если z < 0. (3)

4.3. Изменить программу в соответствии с вариантом задания (таблица 2).

Таблица 2 Варианты заданий

Вариант          
f(x,y,z)

Выполнить программу в отладчике и записать результаты для команд АСП в таблицу:

Таблица 3 Результаты исследования арифметического сопроцессора

№ п/п Адрес команды Мнемокод команды Машинный код Операнд (имя и значение регистра или переменной в памяти) Значение операнда после выполнения команды
           

 

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

5.1. Прочитать теоретические положения и ответить на контрольные вопросы.

5.2. Набрать текст программы, приведенный в приложении, откомпилировать и компоновать его в exe-файл.

5.3. Выполнить программу в пошаговом режиме. Состояние АСП в отладчике контролируется при выводе на экран специального окна «Numeric processor» в меню «View». Обратить внимание на выполнение условного перехода в соответствии со значением регистра SR.

5.4. Изменить текст программы в соответствии с вариантом задания, выполнить ее в пошаговом режиме и записать результаты в таблицу 3.

5.5. Изменить значения исходных операндов так, чтобы выполнялась другая ветвь алгоритма и повторить для них п.5.4.

 

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

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

 

7. Контрольные вопросы

7.1. Как включается АСП в вычислительную систему?

7.2. С какими форматами чисел работает АСП?

7.3. Какие регистры содержит в своем составе сопроцессор?

7.4. Каково значение префиксов и суффиксов в мнемокодах команд АСП?

7.5. Напишите мнемокод команды, АСП, выполняющей действие над целыми числами:

ST(0) mem - ST(0) (mem – операнд в памяти).

7.6. Какие биты содержит регистр состояния АСП и каково их значение?

 

Библиографический список

1. Абель П. Ассемблер. Язык и программирование для IBM PC / П. Абель. – 5-е изд. – Киев: Вектор. – М.: Энерго: Корона-Вектор, 2007. – 736 с.

2. Микропроцессорный комплект К1810: Структура, программирование, применение: Справочная книга / Под ред. Ю.М. Казаринова. - М.: Высшая школа, 1990. - 269 с.

 

Приложение


sts1 segment para public 'stack'

DB 30 dup ('stack')

Sts1 ends

ds1 segment para public 'data'

X dq 1.0

Y dq 3.0

Z dq -4.0

Stat dw (?)

V dq (?)

Ds1 ends

cs1 segment para public 'code'

Main proc far

Assume cs:cs1,ds:ds1

Push ds

Xor ax,ax

Push ax

Mov ax,ds1

Mov ds,ax

Fld qword ptr z

Ftst

Fstsw word ptr stat

Fwait

mov ah,byte ptr stat+1

Sahf

Ja label1

Fld qword ptr y

Fadd

Fld qword ptr x

Fadd

Fstp qword ptr v

mov dx,'3'

Jmp label3

Label1: fld qword ptr y

Fcom x

Fstsw stat

Fwait

mov ah,byte ptr stat+1

Sahf

Ja label2

Fmul st(0), st(0)

Fsub st(1),st(0)

Fld qword ptr x

Fmul st(0),st(0)

Fadd st(0),st(2)

Fstp qword ptr v

mov dx,'1'

Jmp label3

Label2: fld qword ptr z

Fmul st(0),st(0)

Fld qword ptr x

Fmul st(0),st(0)

Fsub st(0),st(1)

Fabs

Fsqrt

Fstp qword ptr v

mov dx,'2'

Label3: mov ah,2

Int 21h

Ret

Main endp

Cs1 ends

End main

 

Лабораторная работа №5

ИССЛЕДОВАНИЕ БЛОКА ЗАПОМИНАЮЩИХ УСТРОЙСТВ СТАТИЧЕСКОГО ТИПА

1. Цель и задачи работы

Изучение принципов построения модулей полупроводниковых запоминаю­щих устройств (ЗУ) на БИС ЗУ статического типа и вопросов сопряжения с мик­ропроцессором (МП) КР580ИК80А. Овладение системой адресации МП и навы­ками проектирования аппаратно-программных средств систем памяти.

2. Теоретические положения

Микропроцессор КР580ИК80А является центральным процессорным элемен­том учебно-отладочного устройства (УОУ) "Электроника 580". Это устройство ис­пользуется в качестве лабораторной установки.

При проектировании функционально и конструктивно законченных модулей ЗУ на полупроводниковых БИС ЗУ решаются следующие основные задачи [1, 2]:

- выбор БИС ЗУ с оптимальной организацией модуля, отвечающей требованиям на технические характеристики (быстродействию, емкости памяти, потребляемой мощности, конструктивным параметрам и помехоустойчивости);

- включение модуля ЗУ и размещение его в адресном пространстве;

- согласование работы модуля. ЗУ с системной шиной процессора по временной диаграмме и нагрузочной способности.

Используемые микросхемы ЗУ в устройстве "Электроника 580" - асинхронные БИС ЗУ статического типа (СТ) КР565РУ2А (1К х 1) в качестве основной памяти (рис.1 я) и БИС ПЗУ КР573РФ2(2К х 8) (рис. Id}. Последние представляют собой перепрограммируемые ПЗУ со стиранием информации ультрафиолетовым облучением [3 - 5].

Любая БИС ЗУ имеет организацию памяти Ni x ni бит, где Ni - число адре­суемых слов (если БИС имеет число адресных входов Ao,A}...,Am-i, то Ni =2 в сте­пени mi); ni - число двоичных разрядов в слове (определяется числом выводов входных данных DI или числом выводов выходных данных DO).

На временных диаграммах (рис.16, 26) представлены динамические параметры микросхем памяти [3]. Наиболее важными из них являются:

- tCY - длительность цикла обращения к памяти - это минимальный промежуток времени, по истечении которого можно вновь обращаться к памяти (обычно это относится к адресным входам, поэтому цикл обращения чаще обозначается как tCY(A));

- tA - время выборки данных (например, t A(A)-это промежуток времени от момен­та подачи адреса до появления данных на выходе при условия, что все остальные сигналы поданы). Как видно из рисунков, в некоторых случаях индекс «А»;

- t su - интервал времени между началами двух сигналов на входах микросхемы;

- tDIS - интервал времени, в течение которого происходит восстановлении ис­ходного состояния на выходе данных БИС.

Указанные динамические параметры БИС ЗУ являются справочными данными [3]. Они характеризуют условия работоспособности схемы и, кроме тогo, явля­ются верхними значениями: и tA(A), и tcs отсчитываются в режиме чтения от са­мого последнего сигнала на входе БИС до появления данных на выходе.

Рассмотрим задачу покрытия адресного пространства основной памяти МП КР580ВМ80А (Рис. 3 а). Решение этой задачи на; БИС ПЗУ КР573РФ2 (2К х 8) и БИС ОЗУ СТ КР565РУ2А(1Кх1) показано на (рис, 36).

Дешифратор адреса выполнен двухступенчатым: первая ступень - микросхема К155ИДЗ, на нее поступают 4- старших разряда ША, а каждый выход адресует пространство в 4 Кбайт. Вторая ступень выполнена на двух микросхемах К155ИД4. Эта ступень дешифрует разряды; А10, А11 ША, непосредственно фор­мируя сигналы выбора микросхем памяти CS ROMi,. Каждый выход дешифра­тора адресует пространство в 1 Кбайт. По входам S1 и S2 эти микросхемы пробируются сигналом MEMW & MEMR.

Нулевой выход ИДЗ адресует 4К с адреса OOOOh no OFFFh. Разделение лю­бого 4К на два блока по 2К производится с помощью адресного разряда А11 (если А11=0 - младшие 2К, если А11=1, то старшие 2К). Конструкция устройства «Электроника - 580» предусматривает возможность более полного перекрытия ад­ресного пространства за счет использования дополнительных выходов дешифра­тора CS ROM i, CS RAM i. В этом случае в существующий блок ЗУ могут быть установлены ПЗУ 2 - ПЗУ 4 (адреса 0800h - IFFFh), а за счет установки платы расширения ЗУ используются сигналы выбора кристалла ОЗУ 3, ОЗУ 4, адре­сующие область памяти 8800h - 8FFFh.

Особенностью асинхронных БИС ЗУ КР565РУ2А статического типа, как вид­но из рис. 1, является то, что на выходе микросхемы будет информация при записи в нее данных со входа [2]. Эта особенность не позволяет подключить ОЗУ непосредственно к шине данных. Разделение двунаправленной ШД на две одно­направленные шины - шину записи в ОЗУ и шину считывание из ОЗУ осуществляется с помощью двух микросхем шинных формирователей КР589АП16 (рис. 4). Эти шинные формирователи отпираются только на время обращения к ОЗУ, т.е. на время существования сигналов выбора кристалла ОЗУ, а направление передачи определяется сигналом DBIN. Входной сигнал DMAEN (разрешение прямого доступа к памяти) также позволяет считывать данные из ОЗУ.

Другие варианты сопряжения блоков ЗУ с системными шинами приведены в [2,3].

Решение третей задачи - согласование во времени работы блока ЗУ с систем­ной шиной (расчет ТCY и ТA и решение вопроса о синхронном или асинхронном режиме работы системной шины с формированием сигнала внешней готовности ЗУ - сигнала RDY (аппаратная готовность ЗУ)) требует знания шинного цикла чтения и записи памяти микропроцессора КР580ИК80А.

 

Рассмотрим командный цикл на примере команды STA 8234h (рис. 5).

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

Машинные циклы (выборки 1-го, 2-го и 3-го байта, записи или чтения ОЗУ, занесения в стек или извлечения из стека) различаются лишь одним. При выборке команды в такте Т1 значение счетчика команд выдается на ША и его содержимое увеличивается на 1. При чтении - записи ОЗУ на ША выдается исполнительный адрес операнда. При обращении к стеку в первом такте выполняются действия:

- в стек: SP-1 -> SP; SP ->ШA (цикл 1) и SP-1->SP; SP –> ША (цикл 2);

- из стека: SP -> ША; SP+1 -> SP (цикл 1) и SP -> ША; SP+1 ->SP (цикл 2). Поэтому рассмотрим временную диаграмму машинного цикла чтения/записи ОЗУ (рис.6). Временные интервалы здесь приведены в наносекундах.

 

Как показано на рис.6, сигнал аппаратной готовности ОЗУ всегда равен «I». В этих условиях к моменту t* ОЗУ должно выдать данные на шину данных. Для схемы сопряжения блока ОЗУ согласно схемам рис.3 и 4 (цепи входных и выходных данных) задержка появления данных на шине данных составит:

tD(RD-D) = tзлэ + tD(DC)+ tA(cs) + tD(FB) = 10 + 33 + 300 + 30 = 373 нс,

 

где tD(RD_D) - задержка появления данных на шине данных относительно самого последнего из управляющих сигналов, подаваемых на БИС ЗУ;

tЗЛЭ- время задержки одного логического элемента;

tD(DC) - время задержки сигнала на дешифраторе ИД4;

tA(CS) - время выбора микросхемы;

tD(FB)- время задержки сигнала на формирователе КР589АП16 от входов DI до выхода DB.

К полученному значению следует прибавить значение задержки распростра­нения сигнала по системной шине (30 нс). Таким образом, последним на модуль ОЗУ подается сигнал чтения (MEMRD) (фактически последним на БИС ЗУ бу­дет подан сигнал CS) и задержка данных относительно сигнала (MEMRD) составит ~ 400 нс.

Длительность Т* (рис.6) равна:

Т* = Тс+ Тф- TD(T2-MEMRD) = 500 + 220 -140 = 580 нс.

Таким образом, Т* > TD(RD-D) и аналогичным расчетом можно получить, что ТCY(A) > ЗТс. Отсюда следует вывод, что блок ОЗУ будет работать по синхрон­ной системной шине (на входе «аппаратной готовности» - RDY МП должна по­стоянно быть логическая единица).

3. Оборудование

Учебно-отладочное устройство «Электроника 580», двухлучевой осцилло­граф.

4.Задание на работу

4.1. Построить командный цикл команды безусловного перехода JMP анало­гично рис. 5. Снять осциллограмму командного цикла для команды JMP, используя контакты разъемов УОУ (см. приложение).

4.2. В соответствии с вариантом задания (табл.1) выполнить программирование бесконечного цикла с первой командой. Ассемблировать команды вручную.

4.3. Используя порядок работы с программой - монитором, ввести программу в память УОУ. В режиме «Отладка» выполнить программу и убедиться в правиль­ности ее работы.

4.4. Запустив программу на выполнение в автоматическом режиме, снять ос­циллограммы циклов чтения и записи ОЗУ, выделить на осциллограмме основные временные параметры блока ОЗУ.

4.5. Повторить п.п. 4.2 - 4.4. для второй команды.

Таблица 1

Варианты заданий

Вариант Команды обращения к ОЗУ Описание команд Начальный адрес Число байтов Число циклов Число тактов
  MOV m, reg MOV reg, m m[(HL)] <-<reg> <reg><-m[(HL)] 8200h      
  MVI m.data LXI SP.data m[(HL)] <-data SP<-data 8400h      
  PUSHD POP В m[(SP)] <-DE BC<- m[(SP)] 8600h      
  STA adr LDA adr m[adr] <-A A<-m[adr] 8480h     I3
  STAXB LDAXD m[(BC)] <-A A<-m[(DE)] 83FFh      

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

5.1. Ответить на контрольные вопросы, обратив внимание на то, что в системе команд МП отсутствуют команды, у которых оба операнда находились бы в памя­ти; команда занимает от одного до трех байтов; цикл шины микропроцессора со­ставляет три такта; системная шина МП - синхронная; блок ОЗУ работает в режи­ме «чтение - модификация - запись». Подготовить к работе осциллограф.

5.2. Перевести тумблер режима в положение «отладка» и закодировать с ад­реса 8200h команду JMP 8200, используя таблицу кодов на лицевой панели УОУ (старшая шестнадцатеричная цифра находится в столбце, а младшая - в строке, со­ответствующей команде). Необходимый результат кодирования: СЗ 00 82.

Ввести команду JMP 8200 в память, нажав клавиши:

1) -ADDR8200; переход к исходному адресу;

2) - MEMС 3; результат занесения данных в память

3) - NEXTО О; контролируется на индикаторе

4) - NEXT82;

5) - RST; возврат к исходному адресу

5.3. Перевести тумблер режима в положение «прогон» и выполнить програм­му с бесконечным циклом в автоматическом режиме, нажав клавишу RUN. После этого снять осциллограмму команды JMP, используя разъемы Х8, Х9 (см. прило­жение).

Для идентификации шинного цикла Ml - выборки первого байта команды не­обходимо добиться устойчивого изображения 10 тактов с выхода С2ттл (контакт Б8 разъема Х9) соединенного со входом канала Y1. Вход канала Y2 соединить с выходом сигнала цикла Ml (контакт Б11 разъема Х9) (рис.7). В качестве сигналь­ной земли каналов использовать контакты Б21, Б22 разъема Х8.

Для снятия сигналов MEMWR и MEMRD используются соответственно контакты Б2 и БЗ разъема Х8.

5.4. Аналогично п. 5.2 ввести с заданного начального адреса первую команду, указанную в задании, а затем - команду JMP <adr>, запрограммировав бесконечный цикл. Определить по рис.3 и начальному адресу, какой из сигналов выбора кристалла (CS RAM 1 (контакт А17) или (CS ram 2 (контакт А19 разъема Х8) будет использоваться при снятии временных диаграмм.

Занести в регистр данные, содержащие в бите DO единицу, и в режиме «прогон» снять осциллограмму цикла записи в ОЗУ (сигналы MEMWR, CS RAM i, DO). Байт состояния МП в циклах обращения к ЗУ содержит ноль в бите DO, поэтому именно эта линия используется для определения поступления записываемых данных на шину. Выполнить измерения основных временных за­держек в цикле чтения ЗУ (аналогично рис.1).

5.5. Повторить п. 5.4. для второй команды, снять временную диаграмму для шинного цикла записи, измерив необходимые динамические характеристики. |

5.6. Построить командные циклы двух заданных команд аналогично рис. 5.

5.7. Сделать выводы по работе в целом (распределение адресного пространства ЗУ; согласование с системной шиной; понятие командного цикла).

6. Оформление отчета

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

- название курса, название и номер лабораторной работы;

- цель работы и задание на исследование;

- распределение адресного пространства УОУ «Электроника 580» и схему реализации перекрытия адресного пространства;

- временную диаграмму командного цикла JMP;

- временные диаграммы циклов чтения и записи ОЗУ с указанием шинных циклов в командах и основных динамических параметров работы блока ЗУ;

- командные циклы операций обращения к памяти.

7. Контрольные вопросы

7.1. В чем состоит назначение программы - монитора УОУ «Электроника 580»? Назовите команды монитора и порядок их использования.

7.2. Назовите основные режимы адресации операндов в ОЗУ для микропро­цессора КР580ИК80А.

7.3. Какие три задачи приходится решать при проектировании ЗУ микропро­цессорной системы? Каковы общие подходы к их решению?

7.4. Какой объем адресного пространства может быть использован в УОУ с применением схемы дешифратора адреса, показанной на рис.3?

7.5. В чем состоит понятие шинного цикла? Какие имеются виды шинных циклов?

7.6. На рис. 3 покажите все возможные варианты формирования сигнала вы­бора кристалла для определения БИС ЗУ статического типа.

7.7. Назовите основные динамические параметры ОЗУ статического типа, влияющие на согласование циклов работы блока ЗУ и микропроцессора КР580ИК80А.

Библиографический список

1. Хамахер К., Вранешич З., Заки С. Организация ЭВМ. – СПб.: Питер, 2003. – 848 с.

2. Большие интегральные микросхемы запоминающих устройств: Справочник /Ю-А.Гордонов, Н.В. Бекин, В.В. Цыркин и др. - М.: Радио и связь, 1990. -280с.

3. Лебедев. О. Н, Микросхемы памяти и их применение. М.: Радио и связь, - 1990.-160с.

4. Проектирование микропроцессорной электронно-вычислительной аппаратуры: Справочник / В.Г. Астахов, А.А. Буднях, В.Ю. Далий и др. - Киев: Техника, 1988.-263 с:

Приложение

Таблица основных контактов разъемов Х8 и Х9 УОУ «Электроника 580»

Разъем Х8 Разъем Х9
Цепь Контакт ' Цепь Контакг
А1...А15 A1...A1-5 RDYвнеш А8
АО Б1 CSROM3 A3
DO... D7 Б4...Б11 CSROM4 А4
MEMWR, Б2 CSRAM1 A1
MEMRD БЗ CSRAM2 А2
CSROM1 Б15 С2ттл Б8
CSROM2 Б17 М1 Б11
CSROM3 Б16    
CSROM4 Б18    
'CSRAM1 А17    
CSRAM2 A19    
CSRAM3 А18    
CSRAM4   А20    
GND Б21, Б22    

Примечание: контакты А – верхний ряд, Б – нижний ряд на разъеме.

 

Лабораторная работа №6

 

ИССЛЕДОВАНИЕ ВНУТРЕННЕЙ СИСТЕМЫ ПРЕРЫВАНИЙ

МИКРОПРОЦЕССОРА АРХИТЕКТУРЫ x86

 

 

1. Цель и задачи работы

 

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

Вопросы для изучения:

- основные понятия - система прерывания, внутренняя и внешняя;

-какими путями могут быть осуществлены прерывания;

-достоинства и недостатки этих путей.

 

2. Теоретические положения

 

Система прерываний компьютера предназначена для организации быстрой реакции процессора на внутренние и внешние события. Необходимость в появлении прерываний была вызвана следующими причинами:

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

б) необходимостью отклика на сбои и отказы в аппаратуре;

в) необходимостью перехода от задачи к задаче для повышения степени использования ресурсов компьютера;

г) организацией вызовов процедур системного характера.

В Фон-Неймановских компьютерах выполняемая программа целиком определяется счетчиком памяти, состоянием микропрограммного уровня для интерпретации прочитанной из памяти информации и множеством условий перехода из одного состояния в другое. Поэтому обработка прерываний сводилась к перезагрузке счетчика адреса и интерпретации первой единицы информации, полученной из памяти (слово, 6айт), как кода операции программы обработки прерывания (обработчика прерывания). Отличие прерывания от вызова подпрограммы состоит в том, что необходимо по окончании работы обработчика прерывания возобновить работу центрального процессора. Это требует сохранения состояния процессора (регистров программно-доступных - регистров общего назначения, указателей сегментов, регистра флагов) в обработчике прерывания в самом его начале, а в конце его - восстановления состояния процессора..

Прерывание в МП системе может быть осуществлено двумя путями: либо с помощью обращения к стандартным процедурам обработки, находящейся в системной области ПЗУ, либо с помощью вызова подпрограммы. Для первого случае в ассемблере микропроцессора i8086/88 существует специальная команда INT <n>. 0на выполняется так:

1.Помещается в стек регистр флагов (RF); (происходит уменьшение указателя стека SP=SP-2).

2. Обнуляются флаг трассировки TF и флаг маскирования прерываний IF для исключения пошагового режима исполнения команд и блокировки других маскируемых внешних прерываний.

3. Помещается в стек значение сегментного регистра. CS; (изменяется значение SP=SP-2).

4. Вычисляется адрес вектора прерывания (умножается нa четыре номер вектора прерывания EA int =n*4).

5. Второе слово вектора прерывания загружается в CS.

6. Помещается в стек значение указателя команды IP (при уменьшении SP=SP-2).

7. Загружается в указатель команд IP первое слово вектора прерывания.

После исполнения команды INT <n> пара регистров CS: IP будет указывать на начало программы обработки прерывания.

Последней в программе обработки прерывания должна выполняться команда IRET, которая возвращает управление из программы обработки прерываний в исходную программу.Она извлекает из стека три 16-битовых слова и загружает их в указатель команд IP, регистр сегмента команд CS и регистр флагов соответственно.

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

Всего в процессорах i8086/8088 имеется 256 векторов прерывания с номерами 0-255. Обычно номер, например 1, соответствует типу прерывания. Векторы занимают 1 Кбайт оперативного запоминающего устройства. Приведем назначение.некоторых из них.

Тип 0 (деление на нуль) - это прерывание инициируется, если при исполнении команды деления (DIV или IDIV ) получаемое частное не помещается в регистре.

Тип 1 (пошаговый режим исполнения команд процессора) - этот тип прерывания инициируется командой INT 1. Обработчик прерывания (для MS\PC\DR - DOS ) обычно содержит только команду IRET. Поэтому INT 1 - это команда для фиксации точки останова (без возможности продолжения) программы.



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 421; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.111.24 (0.232 с.)