РефератыИнформатика, программированиеПрПрограммирование в двоичных кодах

Программирование в двоичных кодах

Санкт-Петербургский
государственный
технический
университет


Кафедра
системного
анализа и управления

ЛАБОРАТОРНАЯ
РАБОТА

Дисциплина:
организация
ЭВМ


Тема:
организация
микропроцессоров
(МП К580)


“__”___________2001г.

Санкт-Петербург


2001

Цель
работы.

Практическое
ознакомление
с отдельными
БИС микропроцессорного
комплекта серии
К580, методикой
построение
МП-систем на
его основе и
структурой
программного
обеспечения.


Описание
рабочего стенда.

Лабораторный
стенд ТУМ1
предназначен
для изучения
функциональных
возможностей
и внутренней
структуры
(организации)
МП различных
типов, а так же
для изучения
системы команд
(микрокоманд)
этих МП и принципов
проектирования
и отладки
микроконтроллеров
на основе МП.



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



В
стенде использованы
два клавишных
регистра входной
информации.
Первый клавишный
регистр предназначен
для ввода данных,
а второй клавишный
регистр выполняет
функции регистра
микрокоманд
для микропроцессоров
с микропрограммным
управлением
или функции
регистра адреса
для микропроцессоров
с фиксированной
разрядностью.
Кроме того, на
панели управления
так же размещен
ряд переключателей
отдельными
режимами работы.
Светодиодные
индикаторы
выведены на
вертикальную
лицевую панель
стенда. Независимо
от типа исследуемого
МП стенд может
работать либо
в пошаговом
режиме, либо
в автоматическом.



На
плате памяти
размещены БИС
ОЗУ. Применение
оперативных
запоминающих
устройств в
качестве программной
(микропрограммной)
памяти определено
спецификой
использования
стенда, предназначенного
для решения
разнообразных
задач различных
пользователей.
В качестве
памяти МП-системы
на основе
микропроцессора
К580 использована
БИС статического
ОЗУ К565РУ2А емкостью
1024х1 бит. Параллельное
включение
восьми БИС
этого типа
позволило
организовать
программную
память и память
данных объемом
1024 восьми разрядных
слов.



При
исследовании
модульных
(секционных)
МП используется
плата памяти,
основу которой
составляет
две секции по
5 параллельно
включенных
БИС ОЗУ типа
К155РУ2 емкостью
16х4 бит. Использование
десяти БИС ОЗУ
обеспечило
реализацию
памяти микропрограмм
объемом в 32
двацатиразрдных
слова.



Управление
режимами работы
ОЗУ (Чтение,
Запись или
хранение информации)
в стенде осуществляется
с помощью управляющих
клавиш ЗУ/КЛАВ
и ЗАП, которые
соединены с
управляющими
входами БИС
ОЗУ «Выбор
кристалла»
и «Запись». В
общем случае
при работе с
ЗУ необходимо
переключить
тумблер ЗУ/КЛАВ
в положение
ЗУ. При этом
информация
(данные, команда,
микрокоманда),
записанная
по индицируемому
адресу, автоматически
считывается
и высвечивается
на соответствующих
одноименных
индикаторах.
Для записи
требуемой
информации,
предварительно
набранной на
клавишном
регистре данных
(микрокоманд),
необходимо
нажать на клавишу
ЗАП. Алгоритм
и органы управления
памятью конкретных
МП-устройств
могут несколько
отличатся от
рассмотренных
и будут представлены
дополнительно
при описании
соответствующих
режимов работы
лабораторного
стенда.

Рис.1


В состав
микроЭВМ (рис.2)
на базе МПК
входит:



-плата
центрального
процессора,
включающая
кроме БИС К580ИК80А
(К580ВМ80А) ряд БИС
и СИС, с помощью
которых реализованы
тактовый генератор
двухфазных
последовательностей
импульсов Ф1и
Ф2, системный
контроллер,
формирующий
внешние сигналы
управления
обменной информации
в МП-системе,
и шинные формирователи
адреса и данных,
предназначенные
для повышения
нагрузочной
способности
шин адреса и
данных;



-плата
памяти, включающая
оперативное
ЗУ емкостью
1024 восьмиразрядных
слова на основе
БИС К565РУ2А,
предназначенное
для записи
хранения учебных
программ и
данных, а так
же результатов
выполнения
программ;



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



С
помощью двух
внешних разъемов,
расположенных
на торцевых
стенках стенда,
предусмотрена
возможность
подключения
двух модулей
программируемого
параллельного
интерфейса
ввода-вывода
К580ВВ55, обеспечивающий
двунаправленный
обмен с внешними
устройствами.



Основным
режимом работы
микроЭВМ является
режим ВЫПОЛНЕНИЕ
ПРОГРАММЫ.
Однако, прежде
чем приступить
к работе, микроЭВМ
необходимо
запрограммировать.
Поэтому наряду
с основным
режимом микроЭВМ
также предусмотрен
режим записи
и коррекции
программ (команд),
который в
соответствии
с одноименным
режимом работы
МП КР580ВМ80 назван
режимом ПРЯМОГО
ДОСТУПА К ПАМЯТИ
(ПДП).



Режим
ПДП предназначен
для записи
информации
в ОЗУ, а также
использования
системной шины
другими внешними
устройствами.



Режим
ВЫПОЛНЕНИЯ
ПРОГРАММЫ
обеспечивает
работу микроЭВМ
по программе,
предварительно
записанной
в память, в шаговом
или автоматическом
режиме.



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



ЗУ/КЛАВ
– переключатель
(тумблер), определяющий
источник данных
и команд. В положении
ЗУ осуществляется
чтение команд
и данных из
памяти или в
память, в положении
КЛАВ – с клавиатуры
(без обращения
к содержимому
ЗУ);



ЗПД
– тумблер, с
помощью которого
обеспечивается
формирование
сигнала «Запрос
прямого доступа
к памяти». Реагируя
на этот сигнал,
МП переходит
в режим ПДП,
при котором
ША и ШД МП отключается
от системных
шин. Благодаря
этому, появляется
возможность
непосредственного
обращения к
элементам ОЗУ
микроЭВМ с
помощью клавишных
регистров
адреса и данных.
Установление
режима ПДП
необходимо
контролировать
по светодиодному
индикатору
ППД (подтверждение
прямого доступа).
Если при включенной
клавише ЗПД
индикатор ППД
не горит, необходимо
нажать кнопки
НУ и ПУСК;



КЦ/МЦ
– тумблер, задающий
работу МП по
командным или
машинным циклам
в пошаговом
режиме.



Тумблер
НЕПР/ШАГ и кнопка
ПУСК обеспечивают
работу МП в
непрерывном
или пошаговом
режиме при
выполнении
программы. При
этом зависимости
от положения
переключателя
КЦ/МЦ в пошаговом
режиме реализуется
выполнение
одного командного
или машинного
цикла.


Рис.
2


Изучение
простейших
технических
средств организации
интерфейса
микропроцессорных
систем выполняется
на стенде ТУМ1
с помощью четырех-
или шестиразрядного
дисплеев на
семи сегментных
индикаторах
(ДСИ).



В
большинстве
МП-систем обмен
информации
между МП и
периферийными
устройствами
осуществляется
через специальные
схемы сопряжения
(интерфейсные
схемы), выполненные
на основе
интегральных
схем малой
степени интеграции
или в виде
специальных
БИС. В простейшем
случае роль
промежуточного
устройства
сопряжения
между МП и
устройством
ввода-вывода
выполняет
регистр часто
называемый
портом. Работу
подобного порта
можно изучить
с помощью
четырехразрядного
дисплея, в состав
ДСИ входят
четыре восьмиразрядных
регистра с
соответствующими
схемами управления
и четыре семи
сегментных
индикатора.
К системным
шинам адреса,
данных и управления
МП-системами
ДСИ подключается
через внешний
разъем. Семи
сегментные
индикаторы
позволяют
отображать
все десятичные
цифры и ряд
букв русского
и латинского
алфавитов.
Кодирование
отображаемых
символов
осуществляется
восьмиразрядным
двоичным кодом:
сегменту b0
соответствует
установка в
«1» разряда d0
аккумулятора,
сегменту b1 –
установка в
«1» d1 и т.д. принцип
кодирования
показан на рис.
3.Вывод информации
осуществляется
по команде Out
Port,
т.е. вывода
содержимого
аккумулятора.




Рис.
3

В общем
случае в качестве
буферного
устройства
сопряжения
между МП и
устройствами
ввода-вывода
используют
БИС программируемого
параллельного
интерфейса
КР580ВВ55 (ППИ).
Программируемое
устройство
ввода-вывода
параллельной
информации
КР580ВВ55 представляет
собой набор
из трех 8-разрядных
двунаправленных
портов (каналов)
А, В и С, предназначенных
для подключения
периферийных
устройств к
системным шинам
(Рис. 4)



Структурная
схема ППИ включает
в себя двунаправленный
буфер ШД, три
информационных
регистра каналов
А, В, С и схему
выбора канала
и управления,
содержащую
регистр управляющего
слова. Связь
БИС с ШД МП-системы
осуществляется
через тристабильный
8-разрядный
буфер ШД. Входы
А0 и А1 подключаются
к одноименным
линиям шины
адреса и используются
для выбора
внутреннего
регистра ППИ


Рис.
4

1.Выполнение
типовых заданий
1-12 из методических
указаний


Программа
№1

Загрузка
в регистры B
и C
данных 010 и 001

Адреса Команды Мнемоника
команд Комментарии


L=000 041 LXIH Загрузка
начального



Адреса
памяти.


001 200 B2 мл.
байт памяти.


002 000 В3 ст.
байт памяти.


003 001 LXIB Запись
исходных данных


в
регистры В и
С


004 001 В2 В2(С)


005 010 В3 В3(В)


006 160 MOV
M,B Запоминание
(В)


007 043 INX
H Формирование
следующего



адреса
памяти.


010 161 MOV
M,C Запоминание
(С)


011 166 HLT Останов.



После
выполнения
программы
сегмент данных
будет иметь
следующий



вид:


Адрес Содержимое



001



010


Программа
№2

Позволяет
занести содержимое
регистров В
и С в стек(выбранный
участок памяти).


Адреса Команды Мнемоника
команд Комментарии


000 061 LXI
SP Установка
указателя


стека.


001 202 В2 мл.байт
адреса.


002 000 В3 ст.байт
адреса.


003 001 LXI
B Запись
исходных данных


в
регистры В и
С.


004 001 В2


005 010 В3


006 305 PUSH
B Запоминание
содержимого


регистров
В и С в стеке.


007 166 HLT Останов.


Содержимое
ячеек после
выполнения
программы:

Адрес Содержимое


001


010


Программа
№3

Извлечение
данных из стека,
их изменение
и занесение
обратно в стек.


Запишем
в стек (H=000,
L=200
и H=000,
L=201
) числа 001 и 200 .

Адрес Команды Мнемоника
команд Комментарии


000 061 LXI
SP


001 200 В2


002 000 В3


003 301 POP
B Извлечение
данных



из
стека и загрузка
их



в регистровую
пару В и С


004 004 INR
B Увеличение
на единицу



регистра
В


005 015 DCR
C Уменьшение
на единицу


содержимого
регистра С


006 305 PUSH
B Запоминание
в стеке


007 166 HLT


Содержимое
ячеек до выполнения
программы:















Адрес



Содержимое



200



001



201



200


Содержимое
ячеек после
выполнения
программы:














Адрес



Содержимое



200



000



201



201



Программа
№4

Сложение
содержимого
регистра с
содержимым
ячейки памяти





























































Адреса



Команды



Мнемоника
команд



Комментарии



000



041



LXI
H



001



200



B2



002



000



B3



003



076



MVI
A



Непосредственная
загрузка А
одним


одним
из слагаемых



004



010



B2



005



206



ADD
M



Сложение
содержимого
А с содержимым
ячейки памяти



006



167



MOV
M,A



007



166



HLT


Содержимое
ячеек до выполнения
программы:











Адрес



Содержимое



200



100


Содержимое
ячеек после
выполнения
программы:











Адрес



Содержимое



200



110


Программа
№4.1

Сложение
двоично-десятичных
чисел.






























































Адреса



Команды



Мнемоника
команд



Комментарии



000



041



LXI
H



001



200



B2



002



000



B3



003



076



MVI
A



004



010



B2



005



206



ADD
M



(A)+(M)(A)



006



047



DAA



Десятичная
коррекция



007



167



MOV
M,A



010



166



HLT


Содержимое
ячеек до выполнения
программы:











Адрес



Содержимое



200



051
(29)


Содержимое
ячеек после
выполнения
программы:











Адрес



Содержимое



200



067
(37)



Программа
№4.2

Вычитание
двоично-десятичных
чисел













































































Адреса



Команды



Мнемоника
команд



000



041



LXI
H



001



200



B2



002



000



B3



003



006



MVI
B



004



B2



005



076



MVI
A



006



231



99



007



220



SUB
B



010



074



INR
A



011



206



ADD



012



047



DAA



013



167



MOV
M,A



014



166



HLT


Содержимое
ячеек до выполнения
программы:











Адрес



Содержимое



200



045
(25)



Содержимое
ячеек после
выполнения
программы:











Адрес



Содержимое



200



007
(07)



Программа
№5

Логическая
операция, сдвиг
числа и запоминание
слова состояния















































































Адреса



Команды



Мнемоника
команд



Комментарии



000



006



MVI
B



001



200



B2



002



076



MVI
A



003



001



B2



004



250



XRA



Сложение
по mod2
содержимого
А и В.



005



027



RAL



Циклический
сдвиг влево
через перенос.



006



061



LXI
SP



007



202



B2



010



000



B3



011



365



PUSH
PSW



Запоминание
в стеке Слова
Состояния
Программы.



012



166



HLT


Анализ
значений Слова
Состояния
Программы
















































Мнемоника
команды



Значение
PSW



(A)



РгF



MVI
B 200



xxxxxxxx



xx0x0x1x



MVI
A 001



00000001



xx0x0x1x



XRA
B



10000001



10000110



RAL



00000010



10000111



LXI
SP 202 000



00000010



10000111



PUSH
PSW



00000010



10000111



HLT



00000010



10000111


Содержимое
ячеек после
выполнения
программы:



















Адрес



Содержимое



200



207



201



002



Программа
№6

Обнуление
области памяти.
Программа
пересылает
нулевое содержимое
какого либо
регистра в
ячейку памяти.



































































Адреса



Команды



Мнемоника
команд



Комментарий



000



227



SUB
A



Обнуление
А



001



041



LXI
H



002



011



B2



003



000



B3



004



167



MOV
M,A



Обнуление
ячейки памяти
по адресу HL



005



043



INX
H



Адрес
следующей

ячейки



006



303



JMP



Безусловный
переход по
адресу



007



004



B2



мл.байт



010



000



B3



ст.байт


Содержимое
ячеек до выполнения
программы:























Адрес



Содержимое



011



Xxx



...



Xxx



040



Xxx


Содержимое
ячеек после
выполнения
программы:























Адрес



Содержимое



011



000



...



000



040



000



Программа
№7

Режим
задания команд
с клавиатуры













Адреса



Команды



Мнемоника
команд



100
200



166



HLT


Задание
с клавиатуры





















Команды



Мнемоника
команд



303



JMP



200



B2



100



B3



Программа
№8

Условные
переходы. Программа
позволяет
изучить действие
условных переходов.
По адресу
H=000,L=200
запишем число
002(соответствует
нулевому значению
всех флагов
в регистре
признаков), а
по адресу
H=000,L=004
– число 302(код
команды условного
перехода по
ненулевому
результату
JNZ).













































































Адреса



Команды



Мнемоника
команд



Комментарии



000



061



LXI
SP



001



200



B2



002



000



B3



003



361



POP
PSW



Извлечение
из стека ССП



004



*



*



(JNZ,JZ,JNC,JC,JPO,JPE,JP,JM)



005



000



B2



006



000



B3



007



166



HLT



200



**



-



201



000



-



Варианты
выполнения
программы





















































































Признак



Данные
по адресу 004



Данные
по адресу 200



Переход
к адресу 000



302
(JNZ)



002
(z=0)



Есть



ноль



302
(JNZ)



102
(z=1)



Нет



312
(JZ)



102
(z=1)



Есть



322
(JNC)



002
(c=0)



Есть



перенос



322
(JNC)



003
(c=1)



Нет



332
(JC)



003
(c=1)



Есть



342
(JPO)



002
(p=0)



Есть



Четность



342
(JPO)



006
(p=1)



Нет



352
(JPE)



006
(p=1)



Есть



362
(JP)



002
(s=0)



Есть



Знак



362
(JP)



202
(s=1)



Нет



372
(JM)



202
(s=1)



Есть



Программа
№12


Выбор
максимального
элемента массива.


















































































































































































Адрес



Команда



Мнемоника
команды



Комментарий



000



041



LXI
H



001



100



B1



002



000



B2



003



016



MVI
C



Загрузка
переменной
цикла



004



005



B2



005



176



MOV
A,M



Загрузка
в А первого
элемента



006



043



INX
H



Переход
к следующему
элементу



007



276



CMP
M



Если
А>М С=0


А флаг C=0
и наоборот



013



322



JNC



Если
C=1,
то элементы
расположены
по возрастанию
и выполнять
перемену их
местами не
нужно(ком
016-021)



014



022



B2



След.
Ячейка



015



000



B3



Делитель
из памяти в
В



016



160



MOV
M,B



Перезапись
первого элемента
по адресу
второго



017



053



DCX
H



Сформировали
адрес первого
элемента



020



167



MOV
M,A



Сохранили
под адресом
первого элемента
второй



021



043



INX
H



Адрес
первого из
сравниваемых
в следующем
цикле



022



025



DCR
D



Уменьшение
переменной
внутреннего
цикла



023



302



JNZ



Если
переменная
не равна нулю
переход к
следующей
итерации



024



007



B2



025



000



B3



026



015



DCR
C



Уменьшение
переменной
внешнего цикла



027



302



JNZ



Если
переменная
внешнего цикла
не равна нулю
то переходим
к следующей
итерации



030



002



B2



031



000



B3



032



166



HLT



Конец
программы.


Программа
№2.

Вывод
с задержкой
слов РЕПА И
ГЕРБ на панель
индикатора.





















































































































































































































































































































Адрес



Команда



Мнемоника
команд



Комментарии



000



076



MVI
A



Предварительная
инициализация
ППИ блока
статической
индикации



001



200



B2



002



323



OUT
port



003



003



B2



004



323



OUT
port



005



007



B2



006



004



INR
B



Инициализация
стека



007



002



STAX
B



010



001



LXI
B



011



220



B2



012



230



B3



013



007



RLC



014



006



MVI
B



015



003



INX
B



016



041



LXI
H



Загрузка
начального
адреса в указатель
памяти



017



200



B2



020



000



B3



021



176



MOV
A,M



Вывод
на блок статической
индикации
слова РЕПА



022



323



OUT
port



023



000



B2



024



043



INX
H



022



176



MOV
A,M



023



323



OUT
port



024



001



B2



025



043



INX
H



026



176



MOV
A,M



027



323



OUT
port



030



002



B2



031



043



INX
H



032



176



MOV
A,M



033



323



OUT
port



034



004



B2



035



315



CALL
addr



Вызов
подпрограммы



036



153



B2



037



000



B3



040



043



INX
H



Вывод
на блок статической
индикации
слова ГЕРБ



041



176



MOV
A,M



042



323



OUT
port



043



000



B2



044



043



INX
H



045



176



MOV
A,M



046



323



OUT
port



047



001



B2



050



043



INX
H



051



176



MOV
A,M



052



323



OUT
port



053



002



B2



054



043



INX
H



055



176



MOV
A,M



056



323



OUT
port



057



004



B2



060



315



CALL
addr



Вызов
подпрограммы



061



153



B2



062



000



B3



063



303



JMP
addr



Безусловный
переход к команде
по адресу,
указанному
в B2,B3



064



006



B2



065



000



B3



Подпрограмма,
организующая
задержку.
















































































Адрес



Команды



Мнемоника
команды



Комментарии



153



001



LXI
B



Запись
исходных данных
в регистры
B
и C



154



377



B2



B2(C)



155



377



B3



B3(B)



156



005



DCR
B



Уменьшение
переменной
внутреннего
цикла



157



302



JNZ
addr



Если
переменная
цикла не равна
нулю переход
к следующей
итерации



160



156



B2



161



000



B3



162



015



DCR
C



Уменьшение
переменной
внешнего цикла



163



302



JNZ
addr



Если
переменная
цикла не равна
нулю переход
к следующей
итерации



164



156



B2



165



000



B3



166



311



RET



Безусловный
возврат из
подпрограммы



Коды
букв для вывода
на семи сегментный
индикатор



























А



167



Б



175



Г



061



Е



171



Р



163



П



067



Выводы.

В ходе
выполнения
работы были
получены навыки
программирования
МП-систем, система
команд процессора
комплекта
серии К580 и принципы
проектирования
и отладки
микроконтроллеров
на основе МП.
Программирование
в машинных
кодах позволяет
прозрачно
представить
структуру МП
и программного
обеспечения.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Программирование в двоичных кодах

Слов:5634
Символов:65589
Размер:128.10 Кб.