Эмулятор микропроцессора КР580ВМ80
Если кто-нибудь работал с эмулятором 8-ми разрядного микропроцессора КР580ВМ80, то, пожалуйста, если можно ответьте на несколько вопросов.
1. В популярной форме изложите, что такое регистр процессора.
2. Что такое регистровая пара и зачем она нужна.
3. Что такое аккумулятор и для чего он используется.
4. Что такое PWS?
5. Чем отличаются регистры B, C, D, E, H и L.
6. Пожалуйста, в доходчивой форме объясните про форматы команд: однобайтные, двухбайтные и трехбайтные.
Микропроцессор КР580ВМ80 (Эмулятор)
Задание: Даны три числа, уменьшить каждое на 42(decimal). Нужно написать код для ассамблера.
Массивы в РОН (Эмулятор МП КР580ВМ80)
Есть задача : Записать массив из 6 элементов (1,2,3,4,5,6) в РОН. Если элемент масс. >3 то.
[Микропроцессор КР580ВМ80 (Эмулятор)] Даны три числа, уменьшить каждое на 42
Задание: Даны три числа, уменьшить каждое на 42(decimal). Нужно написать код для ассамблера.
Массивы в эмуляторе МП КР580ВМ80
Здравствуйте, подскажите как разработать программу, которая считает количество старших бит.
Вложения
CPU580.rar (14.0 Кб, 1362 просмотров) |
Кстати, а вот эти команды, вы их просто для наглядности пишете. Я так понял там нет редактора куда их можно вбить, чтобы они сработали.
Я ещё не понял как правильно эти команды читать.
Например: lxi h,0 — это команда 21 LXI H, d16?
И что по этой команде мы записывает в регистровую пару HL? И не понял, почему именно эта команда используется. У нас 60 (3С), зачем ей 16 байт?
Сообщение от alexcoder
Можете более подробно прокомментировать код. Хочется доскональна разобраться.
И останов надо делать в конце программы или он тут сам по себе получается?
Добавлено через 18 минут
Что такое сложение с двойной точностью? Объясните пожалуйста.
Добавлено через 4 минуты
И за чем под 60 мы отводим два регистра? Разве одного не достаточно будет?
Добавлено через 13 минут
И расскажите про флаги. В каких случаях они устанавливаются и что значат.
Добавлено через 6 минут
И не подкинете ссылочку на пример блок-схемы описания подобных алгоритмов. Именно для ассемблеров.
Цель работы: Изучить структуру и получить практические навыки работы с программой эмулятора микропроцессорной системы на базе мп КР580ВМ80 (Intel i8080).
С целью упрощения понимания принципа работы МП, дадим вначале словесное описание его функционирования во время выполнения команд программы:
- Перед выполнением очередной команды МП содержит ее адрес в программном счетчике РС;
- МП обращается к памяти по адресу, содержащемуся в РС, и считывает из памяти первый байт очередной команды в регистр команд IR;
- Дешифратор команд DCU декодирует содержащийся в IR код команды и в результате его декодирования, в частности, “узнает”:
- какова длина этой команды (1, 2 или 3 байта);
- где хранятся ее операнды;
- какие действия нужно выполнить над операндами;
- В соответствии с полученной от DCU информацией устройство управления вырабатывает упорядоченную во времени последовательность микроопераций, реализующих предписания команды, в том числе:
- извлекает операнды из регистров и памяти;
- выполняет над ними предписанные кодом команды арифметические, логические или другие операции;
- в зависимости от длины команды модифицирует содержимое РС на 1, 2 или 3 (при линейном алгоритме);
- передает управление очередной команде, адрес которой снова находится в программном счетчике РС.
2. Функциональные особенности МП КР580ВМ80Аc.Типовые временные диаграммы циклов чтения и записи
Микропроцессор работает следующим образом:
- Подача сигнала высокого Н-уровня на вход RESET длительностью не менее 3-х периодов тактовой частоты устанавливает микропроцессор в исходное состояние. При этом в программный счетчик РС заносятся нули, а схема управления начинает формировать такт Т1 машинного цикла М1;
- В такте Т1 по шине данных выдается информация о типе машинного цикла SW, формируется высокий уровень сигнала SYNC и выдается адрес команды или операнда. Слово состояния SW должно быть зафиксировано во внешнем регистре по условию SYNC*C1 в начале второго такта;
- В такте Т2 по срезу сигнала синхронизации С2 проверяются сигналы готовности READY и подтверждения останова HLTA, и в зависимости от состояния этих сигналов МП переходит в состояние ожидания, останова или к выполнению цикла Т3. Кроме того, в такте Т2 МП устанавливает высокий уровень сигнала DBIN и на шину данных поступает информация для чтения из ВУ или памяти (рис. 5). Если необходимо согласовать во времени работу ЗУ и МП, то можно увеличить длительность приема сигнала DBIN подачей сигнала READY низкого уровня. Тогда МП переходит в состояние ожидания, а шины адреса, данных и сигнал DBIN не изменяют своего состояния. Продолжительность сигнала WAIT определяется длительностью сигнала низкого уровня READY, который контролируется по срезу импульса С2 в каждом такте.
- При обнаружении высокого уровня сигнала READY микропроцессор из такта Tw переходит к выполняющему обмен такту Т3. Такты Т4, Т5, если они присутствуют в данном машинном цикле, используются для завершения МЦ за счет внутренних операций МП. Если команда не завершилась, то МП переходит к такту Т1 следующего МЦ данной команды.
Рис. 1 Диаграмма состояний микропроцессора КР580ВМ80А при выполнении
типового машинного цикла (конечный автомат Мура)
3. Центральный процессор на базе БИС серии КР580g. Процессорный модуль на базе МП КР580ВМ80А
Чтобы выполнить функцию начальной установки МП, ко входу #RESIN тактового генератора необходимо подключить RC-цепочку. Постоянная времени RC-цепочки рассчитывается из требований к длительности импульса RESET. Период следования фазовых сигналов С1 и С2 определяется кварцевым резонатором ZQ1. Емкость С4 компенсирует индуктивную составляющую генератора ГФ24 со стороны входов XTAL1, XTAL2. Генератор формирует также системный сигнал CCLK (ток нагрузки низкого уровня не более 15 мА) и сигнал системного сброса INIT (ток нагрузки низкого уровня не более 15 мА), предназначенный для начальной установки устройств МПС. Он выдается при наличии сигнала, формируемого RC — цепочкой на входе #RESIN генератора. Для приведенных номиналов элементов на схеме рис. 19 длительность сигнала INIT равна 0.35 с. Входы HOLD и INT микропроцессора должны быть подключены к общей шине, если МПС не использует прямой доступ к памяти и прерывания. На рис 2 приведена схемная реализация системного контроллера на ИМС средней степени интеграции.
Рис. 2 Схемная реализация системного контроллера на ИМС средней степени интеграции
Эмуляторы советских процессорных систем
В этой статье я собрал обобщающую информацию по некоторым программным эмуляторам советских компьютерных систем — начиная от больших ЭВМ типа БЭСМ-6 и заканчивая микропроцессорными электронными играми.

Скриншот эмулятора калькулятора — записной книжки «Электроника МК-87»
Эмуляция — это воспроизведение работы одного устройства на другом, зачастую полностью не совместимому с ним.
Сейчас сложилась терминология, отличающая термины «эмуляция» от «симуляция». В симуляции происходит приблизительное воспроизведение работы одного устройства на другом. Например, есть популярная в СССР игра «Ну, погоди!». Программист, игравший в игру, может написать симулятор на современном железе, и почти точно её воспроизвести. Однако, он может либо не учесть каких-то особенностей, либо немного изменить геймплей по своему усмотрению. В эмуляции же используется точное воспроизведение оригинала. Это обеспечивается за счёт использования оригинальной прошивки с программным обеспечением и эмуляции работы оригинального процессора. В этом случае игра происходит точно так же, как и в оригинале, потому что программист не вносит каких-то субъективных артефактов.
Сами же прошивки добываются различными способами. Для каких-то можно просто взять микросхему ПЗУ, заботливо установленную производителем на панельку, считать её на программаторе и потом написать эмулятор. Для других извлечение прошивки — это отдельный увлекательный квест, порой очень сложный. Например, для эмуляции микрокалькулятора «Электроника МК-61» пришлось вскрывать микросхему, добираться до кристалла и через микроскоп считывать прошивку.
Фрагмент прошивки микросхемы К145ИК1301
Написание эмуляторов наверно можно отнести к отдельному виду компьютерного искусства. Если с простыми устройствам, например, с x86 или 8080 совместимым процессором всё ясно, то для того же калькулятора архитектура бывает порой настолько загадочной, что не помогают описания в литературе, где она описывается. Да и в создании одного эмулятора может понадобиться помощь не одного человека. Например, коллекционер где-то раздобудет редкий экспонат. Но коллекционер может не быть электронщиком. Электронщик знает как извлечь прошивку, но может не знать, как сделать эмулятор. И наконец, программист делает сам эмулятор. Но чаще эмуляторы делают в одном лице — и коллекционер, и электронщик, и программист — один потрясающе крутой человек.
Итак, на верхней картинке вы видели скриншот калькулятора — записной книжки «Электроника МК 87». Сами машинки довольно редки — их было выпущено что-то около 7000 штук, и все раздарены депутатам очередного съезда КПСС. Для их производства была закуплена в Японии целая линия по штамповке таких корпусов.
Эмулятор этой машинки написан Piotr Piatek. Его очень известный сайт. Сам эмулятор доступен по ссылке. Прошивка для Электроники МК 87 была написана Подоровым А.Н. — тем же программистом, который писал прошивку для Электроники МК 85. Известен факт, что фамилию разработчика можно в МК 85 вывести командой WHO. И только месяц назад мы узнали, что в МК 87 тоже заложена фича, которая выводит эту фамилию. Вы можете это проверить в эмуляторе.
Скриншот эмулятора калькулятора «Электроника МК 85»
Кроме эмулятора для МК 87, Piotr Piatek так же написал эмуляторы для «Электроники МК 85» и «Электроники МК 90».
«Электроника МК-85» — наш ответ Casio с его Casio fx-700P. Ответ на задачу разработчикам «сделать такой же». В итоге наши сделали как бы симулятор fx-700P, повторив внешний вид и принцип работы японского прототипа. Но в то же время, своё железо с 16-битным процессором и оригинальной прошивкой (добавив туда кириллицу и другие прикольные фичи) — сделали сами.
Эмулятор «Электроники МК 85» доступен там.
Скриншот эмулятора микро ЭВМ «Электроника МК 90»
Эмулятор «Электроники МК 90» доступен там.
Три описанных выше машинки работают на микропроцессорах с системой команд, аналогичной системе команд DEC PDP-11.
У калькулятора «Электроника МК-90» было продолжение — «Электроника МК-98». Их было выпущено совсем мало — порядка десяти штук — эту модель не успели довести до серийного изготовления. Зато недавно появился и её эмулятор, и можно посмотреть примерно как она работала. В отличие от МК-90, в МК-98 стоял отечественный микропроцессор, совместимый с Intel 80С86.
Скриншот эмулятора «Электроника МК-98»
Продолжая эмуляторы наших систем нельзя не упомянуть про эмулятор калькуляторов семейства «Электроника МК-61».
Скриншот окна эмулятора калькулятора «Электроника МК 61»
Наверно самый сложный эмулятор, которые я встречал. Сделан благодаря Феликсу Лазареву — он смог извлечь и прошивку из скана кристалла, и понять как работает процессор, и написать основу эмулятора.
Примерно узнать, как работает его процессор, архитектура которого в его предшественнике «Электроника Б3-09» заработала аж в 1973-м году, вы можете в моей статье на Хабре.
В начале статьи я написал об эмуляторе БЭСМ-6. Советский суперкомпьютер 1960-х годов, в своё время конкурировавший с американскими и европейскими компьютерами, ближе всего с CDC 1604 или Atlas. Их архитектурные решения имели общие детали, но БЭСМ-6 не является близкой копией ни того, ни другого.
Эмулятору БЭСМ-6 посвящен целый сайт.
Игры типа «Ну, погоди!» нельзя назвать отечественной микропроцессорной системой из-за того, что внутри неё стоит прошивка от Nintendo. Сейчас пока нет сведений, получена ли технология выпуска этих игр по лицензии от самой Nintendo (как например, в своё время закупили завод по производству калькуляторов у General Instrument или в Японии линию по производству Электроники МК-87) или сами справились.
Однако, и для этого семейства тоже удалось сделать эмулятор. Это оказалось возможным из-за того, что процессор может войти в режим отладки с возможностью считывания прошивки. http://www.emu-land.net/forum/index.php/topic,73493.0.html
Кроме эмулятора семейства «Ну, погоди!» есть даже отладчик.
Скриншот отладчика игр типа «Ну, погоди!»
То ли калькулятор, то ли компьютер «Электроника Д3-28» тоже обзавёлся эмулятором (имитатором, как его называют авторы). Он вышел от Wang 700, но доработан нашими разработчиками до такой степени, что на нём стало возможно запускать интерпретатор языка Бейсик, чем активно и пользовались.
Первый советский персональный компьютер — ПЭВМ «АГАТ» сделан на основе Apple ][. Но из-за того, что там другая графика, другие дисководы на 840 килобайт, другая организация памяти, его можно считать копией Apple ][ суммарно где-то только на 50%. Из-за этих отличий на АГАТе не шли напрямую программы от Apple ][, и их либо приходилось переделывать, либо использовать дополнительные аппаратные платы совместимости, либо режим совместимости с Apple ][, реализованным в модификации «АГАТ-9». Соответственно эмулятор Apple и АГАТ — не одно и тоже.
Лучший ресурс по этому компьютеру находится по этому адресу: http://agatcomp.ru/
Как же без эмуляторов семейства ДВК?
Никита Зимин https://github.com/nzeemin написал несколько эмуляторов для наших оригинальных компьютеров на базе процессоров с системой команд DEC PDP-11.
Эмулятор компьютера «Электроника МС0511» УКНЦ, очень популярного школьного компьютера.
Компьютер «Электроника МС0515» очень нечастый компьютер, и тем интереснее для него посмотреть эмулятор.
Компьютер «Немига» разрабатывался в Белоруссии тоже для школ, и тоже есть для него эмулятор.
Шахматный компьютер «Интеллект 02» сделан на базе процессора КР580ВМ80А (аналог Intel 8080A). Прошивка для игр — шахматы, калах и гран находились в ПЗУ, оформленных в виде картриджей.
И ещё один эмулятор шахматных компьютеров — включает «Электроника ИМ-01», «Электроника ИМ-01Т» и «Электроника ИМ-05». Они выпущены на базе платформы «Электроника С5-41» объединением «Светлана» с использованием микропроцессоров К1801ВМ1 и К1801ВМ2, такими же как в семействе ДВК.
Эмуляторов на самом деле много. Нет возможности все запустить и все описать. Вот несколько ссылок, пройдя по которым вы можете узнать и о других эмуляторах:
Возможно есть и другие источники с эмуляторами типа MESS, MAME и других.
Коллекционирование компьютеров — увлекательное занятие. Хотелось бы конечно, всем показать компьютеры не только в виде сайта. Но хорошо, что есть эмуляторы, и можно «погонять» эти компьютеры в виртуале.
Если у вас есть информация о каком-нибудь интересном эмуляторе, напишите в комментарии. Также можно обсудить их в ретрочате.
1.1 Основные характеристики микропроцессора кр580вм80а
Простейшую 8-разрядную микропроцессорную систему (МПС) можно построить на основе микропроцессорного комплекта (МПК) серии КР580 (табл. 1.1), выполненного по n-МДП и ТТЛШ- технологиям.
МПК серии КР580 характеризуется архитектурным единством и обеспечивает автономность и функциональную законченность отдельных интегральных микросхем (ИМС), унификацию их интерфейса, программируемость, логическую и электрическую совместимость.
Характеристика МПК серии КР580:
– фиксированный набор команд;
– большой выбор периферийных интегральных схем большой степени интеграции (БИС) различного назначения;
– относительно высокое быстродействие;
– умеренное потребление мощности.
Кристалл МП помещен в 40-контактный корпус с двухрядным расположением выводов с шагом 2,5 мм между ними (рис. 1.1). Допустимый диапазон температур для КР580ВМ80А: от -10 до +79°C; необходимое питание – три источника: — 5 В (ток потребления менее 1 мА), + 5 В (ток потребления менее 70 мА), +12 В (ток потребления менее 50 мА). Для синхронизации МП требуется наличие двухфазного внешнего генератора с амплитудой тактовых импульсов 12 В и частотой следования до 2,5 МГц.
1.2 Организация микропроцессора кр580вм80а
Микросхема КР580ВМ80А – функционально законченный однокристальный параллельный 8-разрядный микропроцессор (МП) с фиксированной системой команд, применяемый в качестве центрального процессора в устройствах обработки данных и управления.
В составе МП КР580ВМ80А можно выделить четыре логически разделенные части: блок регистров, арифметико-логическое устройство, устройство управления и буфер данных (рис.1.2).
Таблица 1.1 – Микросхемы серии КР580
БИС общего назначения
Стробируемый неинвертирующий регистр
Стробируемый инвертирующий регистр
Неинвертирующий шинный формирователь
Инвертирующий шинный формирователь
Контроллер магистрали И41
Универсальные интерфейсные БИС
Универсальный синхронно-асинхронный приемопередатчик (УСАП)
Программируемый параллельный интерфейс
Программируемый таймер временных интервалов
Программируемый контроллер прямого доступа к памяти (ПДП)
Программируемый контроллер приоритетных прерываний
БИС контроллеров устройств
Контроллер дисплея на основе электронно-лучевой трубки
Контроллер клавиатуры и матричного дисплея
Интерфейс системы МПИ (магистральный параллельный интерфейс) – КОП канал общего пользования)
Контроллер канала общего пользования
Контроллер динамического ОЗУ
Данная логическая организация процессора – архитектура – была определена в 1946 г. американским ученым Дж. Фон Нейманом.
Обмен информацией между этими частями осуществляется с помощью 8-разрядной внутренней шины. По шине передаются команды, адреса, данные, а также информация SW (Status Word) о состоянии процессора в текущем машинном цикле.
В состав интерфейса МП входят три магистрали (канала или шины): трехстабильная 16-разрядная шина адреса A15–A0 (Address Bus, AB), трехстабильная двунаправленная 8-разрядная шина состояния/данных D7–D0 (Data Bus,DB), две линии двухфазной синхронизации Ф1, Ф2 и десять линий управления (Control Bus, CB) – четыре входных и шесть выходных.
Рисунок 1.1 – Условное графическое обозначение (а) и набор регистров (б) микропроцессора КР580ВМ80А
Рисунок 1.2 – Структурная схема микропроцессора КР580ВМ80А
Функциональное назначение входных линий управления:
RESET – Начальная установка.
READY – Сигнал готовности периферийных модулей к обмену.
INT – Запрос векторного прерывания.
HOLD – Запрос доступа к магистрали.
Функциональное назначение выходных линий управления:
SYNC – Сигнал синхронизации по машинным циклам.
WAIT – Сигнал ожидания готовности.
DBIN – Строб ввода данных.
WR – Строб вывода данных.
INTE – Разрешение прерывания.
HLDA – Подтверждение доступа к магистрали
Все действия МП синхронизированы вложенными друг в друга циклами трех уровней: командными, машинными и микротактами.
Командный цикл состоит из нескольких (от 1 до 5) машинных циклов. Каждый машинный цикл представляет собой цикл обращения к системной магистрали: выборку очередного байта команды или данных из памяти, запись в память, ввод или вывод данных. Исключение составляет команда DAD (сложить HL с парой регистров). Она содержит три машинных цикла, однако только в первом цикле происходит обращение к памяти, а два других служат для выполнения команды без обращения к магистралям. Фазу выборки команды всегда реализует первый цикл.
Машинные циклы выполняются по микротактам, определяемым как интервал времени между соседними фронтами импульсов. При частоте импульсов 2 МГц длительность микротакта составляет 500 нс. Один машинный цикл включает 3 – 5 микротактов, при этом первый машинный цикл длится 4 – 5 микротактов, а последующие – 3 микротакта. В течение одного микротакта исполняется один микроприказ. Сигнал SYNC выдается в первом микротакте каждого машинного цикла.
Блок регистров МП
Блок программно доступных регистров МП КР580ВМ80А отличается большой функциональной неоднородностью (рис. 1.3), практически каждый регистр МП выполняет присущую только ему функцию. Такая реализация была выбрана с целью более короткого кодирования системы команд микропроцессора, однако привела к усложнению программирования МП.
Регистры обшего назначения (РОН)
8-разрядные регистры F и A, вместе с 16-разрядными регистрами HL, SP и PC образуют стандартный регистровый набор микропроцессора с аккумулятором. Этот набор расширен четырьмя 8-разрядными регистрами общего назначения (РОН): B, C, D, E, которые в некоторых командах объединяются в 16-разрядные парные регистры BC и DE. Регистры C и E являются младшими регистрами пары, B и D – старшими. Обращение к парам регистров происходит по первому, старшему регистру пары (B, D, H).
Рисунок 1.3 – Набор регистров микропроцессора КР580ВМ80А
В командах ссылки на регистр выполняются как явно, когда регистр кодируется трехразрядным полем, так и неявно (с помощью кода операции), когда код операции подразумевает и способ использования регистров по умолчанию.
Порядок выполнения команд программы зависит от особенностей (признаков) текущих результатов. Для индикации складывающейся ситуации МП формирует двоичные признаки (флаги), отражающие признаки результатов выполнения команд во флажковом регистре F (Flags). Содержимое аккумулятора и регистра флагов называют словом состояния программы PSW (Program Status Word).