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

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

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


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


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


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


Тема: организация микропроцессоров (МП К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.Вывод информации осуществляется по команде OutPort, т.е. вывода содержимого аккумулятора.





Рис. 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 MOVM,B Запоминание (В)


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


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


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


011 166 HLT Останов.


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


вид:


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


200 001


201 010


Программа №2


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


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


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


стека.


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


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


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


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


004 001 В2


005 010 В3


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


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


007 166 HLT Останов.


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


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


200 001


201 010


Программа №3


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


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


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


000 061 LXISP


001 200 В2


002 000 В3


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


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


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


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


регистра В


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


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


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


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 LXIH
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 LXIH
001 100 B1
002 000 B2
003 016 MVI C Загрузка переменной цикла
004 005 B2
005 176 MOV A,M Загрузка в А первого элемента
006 043 INXH Переход к следующему элементу
007 276 CMPM

Если А>М С=0


А<М С=1


010 332 JC Если А<М меняем местами
011 014 B2
012 000 B3
013 176 MOV A,M Перенос в А нового максимума
014 015 DCRC Уменьшение переменной цикла
015 302 JNZ

Если переменная цикла не равна 0 то все сначала


016 006 B2
017 000 B3
020 062 STA Сохранение результата в памяти
021 150 B2
022 000 B3
023 166 HLT Конец

2.Выполнение индивидуальных заданий


Программа №1


Упорядочить пятнадцать элементов массива по возрастанию.




































































































































Адрес Команды Мнемоника команды Комментарии
000 016 MVIC Число прохождений внешнего цикла 15-1=14=16(8)
001 016 B2
002 041 LXIH Загрузка адреса первого элемента массива
003 100 B2
004 000 B3
005 026 MVID Число сравнений внутри главного цикла
006 016 B2
007 106 MOV B,M Сохр. Первый из сравниваемых элементов в B
010 043 INXH Формирование адреса второго ср-ого элемента
011 176 MOV A,M Сохранение второго элемента в аккумуляторе
012 270 CMPB Сравнение аккумулятора с регистром B.A>B => флаг C=0 и наоборот
013 322 JNC Если C=1, то элементы расположены по возрастанию и выполнять перемену их местами не нужно(ком 016-021)
014 022 B2 След. Ячейка
015 000 B3 Делитель из памяти в В
016 160 MOVM,B Перезапись первого элемента по адресу второго
017 053 DCXH Сформировали адрес первого элемента
020 167 MOV M,A Сохранили под адресом первого элемента второй
021 043 INXH Адрес первого из сравниваемых в следующем цикле
022 025 DCR D Уменьшение переменной внутреннего цикла
023 302 JNZ Если переменная не равна нулю переход к следующей итерации
024 007 B2
025 000 B3
026 015 DCRC Уменьшение переменной внешнего цикла
027 302 JNZ Если переменная внешнего цикла не равна нулю то переходим к следующей итерации
030 002 B2
031 000 B3
032 166 HLT Конец программы.

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


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



















































































































































































































































Адрес Команда Мнемоника команд Комментарии
000 076 MVIA Предварительная инициализация ППИ блока статической индикации
001 200 B2
002 323 OUT port
003 003 B2
004 323 OUT port
005 007 B2
006 004 INRB Инициализация стека
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 CALLaddr Вызов подпрограммы
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 OUTport
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 JMPaddr Безусловный переход к команде по адресу, указанному в B2,B3
064 006 B2
065 000 B3

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































































Адрес Команды Мнемоника команды Комментарии
153 001 LXIB Запись исходных данных в регистры 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 DCRC Уменьшение переменной внешнего цикла
163 302 JNZaddr Если переменная цикла не равна нулю переход к следующей итерации
164 156 B2
165 000 B3
166 311 RET Безусловный возврат из подпрограммы

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




















А 167
Б 175
Г 061
Е 171
Р 163
П 067

Выводы.


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

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

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

Слов:3056
Символов:36959
Размер:72.19 Кб.