РЕФЕРАТ
на тему:
«МП
В1801ВМ1, его структура и система команд»
Структура микропроцессора В1801ВМ1Однокристальный 16-разрядный микропроцессор К1801ВМ1 предназначен
для выполнения следующих функций: · вычисление адресов операндов и
команд; · обмен информацией с другими
устройствами; подключенными к системной магистрали; · обработка операндов; · обработка
прерываний от
клавиатуры и устройств пользователя, подключенных к разъему порта
ввода-вывода. Процессор
является единственным активным устройством микроЭВМ,
управляющим циклами обращения к системной магистрали и обрабатывающим прерывания от пассивных устройств, которые могут
посылать или принимать информацию только под управлением процессора. Микропроцессор
К1801ВМ1 работает в БК с
тактовой частотой 3 МГц и содержит
следующие основные функциональные блоки : · 16-разрядный операционный блок, служащий для формирования адресов команд и
операндов, выполнения логических и арифметических
операций, хранения операндов и результатов; · блок микропрограммного управления, вырабатывающий последовательность
микрокоманд, Соответствующую
коду принятой машинной
команды. Этот блок построен на базе программируемой логической матрицы (ПЛМ) содержащей 250 логических произведений; · блок прерываний, организующий
приоритетную систему прерываний (прием и предварительная обработка внешних и внутренних запросов
на прерывание); · интерфейсный блок, обеспечивающий обмен информацией между микропроцессором
ром и прочими устройствами, подключенными к системной
магистрали. Этот же, блок осуществляет арбитраж при операциях прямого доступа к
памяти, формирует · последовательность.
управляющих сигналов: · блок системной магистрали, связывающий внутреннюю магистраль
однокристального микропроцессора с внешней,
управляющий усилителями приема и передачи информации
на совмещенные выводы адресов и данных; · схема тактирования, обеспечивающая
синхронизацию работы внутренних блоков микропроцессора. Система команд, реализованная в ПЛМ блока микропрограммного
управления микропроцессора К1801BM1, совпадает с системой команд наиболее
распространенных отечественных мини- и микро-ЭВМ типа
«Электроника 60» (ДВК-2. 3, 4 и т.п.) и практически аналогична принятой
для компьютеров серии DEC. Предусмотрен также ряд специальных команд,
предназначенных для работы с системным ПЗУ К1801РЕ1. Сигналы AD0-AD15
представляют собой адреса и данные, передаваемые по совмещенной системной
магистрали. Передача адресов и данных по одним и тем же линиям связи
обеспечивается путем разделения этих операций во времени. Группа сигналов SYNC, DIN, DOUT, WTBT, RPLY служит для управления передачей
информации по системной магистрали: ·
SYNC- вырабатывается процессором как
указание, что адрес находится на выводах системной магистрали, и сохраняет
активный уровень до окончания текущего цикла обмена информацией; ·
RPLY- вырабатывается пассивным устройством
в ответ на сигналы DIN и DOUT. При отсутствии сигнала RPLAY (т. е. когда
выбранное устройство- регистр или ячейка памяти
- не отвечает) процессор отсчитывает 64 такта синхрогенератора и затем идет прерывание по зависанию
(вектор 4); ·
DIN- предназначен для организации ввода
данных (когда микропроцессор во время действия сигнала SYNC готов принять данные от пассивного
устройства) и ввода адреса вектора прерывания (DIN вырабатывается
совместно с сигналом IAK0 при
пассивном уровне SYNC); ·
DOUT- означает,
что данные, выдаваемые микропроцессором, установлены на выводах системной
магистрали; ·
WTBT- указывает на работу с отдельными байтами
и вырабатывается при обращении по нечетному адресу (операнд -
старший байт) или при отработке байтовых команд. Сигнал VIRQ является запросом на прерывание
от внешнего устройства, информирующим микропроцессор
о готовности устройства передавать адрес вектора прерывания. Если прерывание
разрешено, то в ответ на этот сигнал процессор вырабатывает сигналы DIN и IAK0. Сигналы IRQ2 и IRQ3 вызывают прерывания по фиксированным векторам 1008 и 2708 соответственно (при переходе из высокого уровня в
низкий) . Сигнал
предоставления прерывания IAK0 процессор вырабатывает в ответ на внешний сигнал VIRQ. Сигнал IAK0 передается по очереди, начиная с устройства с
максимальным приоритетом, ретранслируясь от одного устройства к другому в
порядке уменьшения приоритетов. Устройство с наибольшим приоритетом из числа
выставивших запрос на прерывание (сигнал VIRQ)
запрещает дальнейшее распространение сигнала IAK0, таким образом запрещая на время
обработки данного прерывания запросы от устройств с тем же или более низким
приоритетом. Однако устройства с более высоким приоритетом могут прервать
обработку повторным («вложенным») прерыванием. Сигнал
DMR вырабатывается внешним
активным устройством, требующим передачи ему системной магистрали (режим
прямого доступа к памяти). В ответ па него процессор устанавливает сигнал DMGO, предоставляющий системную магистраль внешнему устройству с
наивысшим приоритетом из числа запросивших прямой доступ (механизм реализации
приоритетов - тот же, что и для
прерываний). Это устройство прекращает дальнейшее распространение сигнала DMGO и выставляет сигнал SACK, означающий, что устройство прямого
доступа к памяти (ПДП) может производить обмен
данными, независимо от процессора используя стандартные циклы обращения к
системной магистрали. Низкий
уровень сигнала BSY означает,
что микропроцессор начинает обмен по магистрали (т.е. что она занята для других
устройств). Переход сигнала из низкого
уровня в высокий указывает на окончание обмена. Сигнал
аварии источника питания DCLO вызывает установку микропроцессора в исходное состояние и появление
сигнала INIT. Сигнал аварии сетевого питания ACLO вызывает переход
микропроцессора на обработку прерывания по сбою питании (высокий уровень свидетельствует о нормальном сетевом
напряжении). Сигнал
SEL1
инициализирует обращение к регистру управления системными внешними
устройствами, а сигнал SEL2 - к регистру
порта ввода-вывода. Направление обмена данными между микропроцессором и
регистрами определяется сигналами DIN или DOUT
соответственно. Выставление сигнала RPLY от этих регистров не требуется.
Длительности сигналов SEL1 и SEL2 совпадают с длительностью сигнала BSY. Сигнал
INIT является
ответом микропроцессора на сигнал DCLO и используется, как правило, для
установки периферийной части системы в исходное состояние. Общие
характеристики микропроцессора К1801ВМ1
Система
команд микропроцессора К1801ВМ1 Данный
процессор содержит 8 регистров общего назначения (РОН, обозначение в описании
команд RN, N=0..7)один внутренний регистр состояния процессора PSW в котором задействовано 5 битов,
каждый из которых имеет свои имена: · C-бит переполнения · T-бит трассировки · V-бит арифметического переполнения · Z-бит равенства 0 · N-бит отрицательного числа Два регистра из РОН (R6 и R7) отвечают за следующие функции: · R6
(SP)-Указатель стека · R7
(PC)-Счетчик команд. При описании команд, используются
следующие обозначения: · «SS»
- поле адресации
операнда-источника · «DD»
- поле адресации
операнда-приемника · «XXX»-
смещение (-128,...,+128;
8 бит) ·
«N» - число, 3 бита · «NN»
- число, 6 бит · «(N)» -содержимое ячейки или регистра N · «s»
- операнд -источник · «d»
- операнд -приемник · «r» - содержимое регистра · «<=»
- становится равным · «X» - относительный адрес · «%» - определение регистра · «/\» - логическое И · «\/» - логическое ИЛИ · «\\» - исключающее ИЛИ · «|»
- НЕ Операции над разрядами PSW · «*»
- установка/сброс по
результату · «-»
- состояние разряда не
меняется · «0»
- сброс · «1» - установка Методы адресации
Метод мнемоника 0. регистровая R 1. косвенная регистровая ( R) или @R 2. автоинкрементная ( R)+ 3. косв. автоинкрементная @( R)+ 4. автодекрементная -( R) 5. косв. автодекрементная @-( R) 6. индексная X( R) 7. косв. индексная @X( R) Команды работы с программами 000000 HALT останов 000001 WAIT пауза -
ожидания прерывания 000002 RTI возврат
из прерывания ( PC <=(SP)+) 000003 BPT отладочное
прерывание (-(SP) <=PSW <=(16)) 000004 IOT вызов
системы ввода вывода ( -(SP) <=PC <= (22)) 000005 RESET сброс
магистрали и процессора 000006 RTT возврат,
с запретом прерывания по Т-разряду до исполнения следующей команды ( PC<=(SP)+ PSW<=(SP)+) 0001DD JMP безусловный
переход ( PC
<= d) 00020R RTS возврат
из подпрограммы ( PC <= R <=(SP)+ 000240 NOP нет
операции 004RDD JSR вызов
подпрограммы (-(SP) <= R <= PC <= d) 0064NN MARK восстановление
стека ( -(SP)<=PC +(2 x NN) PC<=R5 <=(SP)+ 077RNN SOB выч. 1 и ветвл., если (R#) не 0 ( R# <= R#-1 PC<=PC=( 2xNN)) 104000-104277 EMT вызов
подпрограммы ПЗУ (-(SP)<= PSW <= (32) -(SP)<= PC <= (30)) 1064SS MTPS запись
PSW ( PSW
<= s) 1064Dd MFPS чтение
PSW ( d <=
PSW) Переходы по условию (ветвления)
Если условие выполняется, то (PC) <= (PC) + (2 x NN) 000400
+ XXX BR безусловный
переход 001000
+ XXX BNE нет
равенства ( нулю) Z=0 001400
+ XXX BEQ равенство
( нулю) Z=1 102000
+ XXX BVC арифм.переп. отсутствует V=0 102400
+ XXX BVS произошло
арифм.переп. V=1 103000
+ XXX BCC перенос
отсутствует C=0 103400
+ XXX BCS произошел
перенос С=1 Переход по знаку 100000
+ XXX BPL знак
плюс N=0 100400
+ XXX BMI знак
минус N=1 002000
+ XXX BGE больше
или равно (нулю) N\\V=0 002400
+ XXX BLT меньше
(нуля) N\\V=1 003000
+ XXX BGT больше
(нуля) Z\/(N\\V)=0 003400
+ XXX BLE меньше
или равно(нулю) Z\/(N\\V)=1 Переход без знака 101000
+ XXX BHI больше C\/Z=0 101400
+ XXX BLOS меньше или
равно C\/Z=1 103000
+ XXX BHIS больше
или равно C=0 103400
+ XXX BLO меньше C=1 Одно-операторные команды
Условные обозначения:
«*»=0 операции над
словами 1 операции над байтами N Z C V 0003DD SWAB перестановка байтов * * 0 0 *050DD CLR(B) очистка (d) <=0 0 1 0 0 *051DD COM(B) побитная
инверсия (d) <= (|d) * * 0 0 *052DD INC(B) прибавление
1 (d) <=(d)+1 * * *- *053DD DEC(B) вычитание
1
(d) <=(d)+1 * * *- *054DD NEG(B) изменение
знака (d) <=-(d) * *
* * *055DD ADC(B) прибавить
перенос (d)<=(d)+C * *
* * *056DD SBC(B) вычесть
перенос (d)<=(d)-C * *
* * *057DD TST(B) проверка (d)<=(d) *
* 0 0 *060DD ROR(B) циклич. сдвиг вправо
=> C,d * *
* * *061DD ROL(B) циклич. сдвиг влево C,d <= * * * * *062DD ASR(B) арифм. сдвиг вправо (d)<=(d)/2 * *
* * *063DD ASL(B) арифм. сдвиг влево
(d)<=(d)*2 * *
* * *067DD SXT расширить
знак N=0 (d)<=0 0 1 0- N=1 (d)<=177777 1 0 0- Двух операторные команды
N S V C *1SSDD MOV(B) переслать (d)<=(s) *
* 0- *2SSDD CMP(B) сравнить (s)-(d) *
* * * *3SSDD BIT(B) проверить
разряды (s)/\(d) *
* 0 - *4SSDD BIC(B) очистить
разряды (d)<=(|s)/\(d)
* * 0 - *5SSDD BIS(B) установить
разряды (d)<=(s)\/(d) * * 0 - 06SSDD ADD сложить (d)<=(s)+(d)
* * * * 074RSS XOR исключающее
или (s)<= (r)\\(s)
* * 0 - 16SSDD SUB вычесть (d)<=(d)-(s) * *
* * Операции с разрядами PSW
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||