 
        
        - •Електроніка і мікропроцесорна техніка
- •Луцьк 2002
- •Тема 1. Транзистори
- •Тема 2. Логіка.
- •Алгебра логіки Висловлювання і числення висловлювань
- •Закони алгебри логіки
- •Тема 3. Системи числення. Арифметичні дії над числами в двійковій системі числення
- •Тема 4. Вузли еом
- •4.1. Суматор
- •4.2. Послідовний суматор
- •4.4. Дешифратор
- •4.5. Перетворювачі з цифровою індикацією.
- •4.6. Перетворювач коду 8421 в 2421
- •4.7. Програмована логічна матриця (плм)
- •4.8. Накопичуючий суматор
- •Тема 5. Основні принципи програмування мікропроцесора
- •Способи адресації
- •Прапорці
- •Завдання по темі 5
- •Завдання до задачі № 2.
- •Примітка. Всі константи задані в шістнадцятковому коді. Завдання до задачі № 3
- •6. Рішення технологічних задач з допомогою мікропроцесора
- •Нехай необхідно рахувати цифри від 0 до 10. Напрям рахунку може бути від 0 до 10 і навпаки від 10 до 0 з кроком 1. Блок-схема алгоритму (структурна схема / програми зображена на рис. 8.1, а,б.)
- •Тема 7. Опис режиму програмованого вводу/виводу в мікропроцесорному комплекті кр 580
- •Основні операції мікропроцесора
- •2. Структурна схема мпк для виконання операцій.
- •Системний контролер і шинний формувач
- •Завдання на роботу по темі 7.
- •Тема 8. Підключення дисплею та клавіатури до еом
- •Організація вводу інформацій і завдання режиму роботи.
- •Тема 9. Організація пам’яті. Операційна система еом
- •9.1. Організація пам'яті
- •9.2. Операційна система еом.
- •Завдання на самостійну роботу по темі 9.
- •Тема 10. Основи програмування логічної моделі мікропроцесорного контролера Реміконт р-130
- •10.1. Призначення і функціональні можливості логічної моделі р-130
- •3. Принципи програмування
- •4. Основні алгоритми логіко-програмного управління
- •5. Правила побудови програми.
- •Додаток 1.
- •Система команд мп кр580вм80
- •Т а б л и ц а пз. 1. Коды регистров
- •43018, М.Луцьк, вул.Львівська, 75
Додаток 1.
Рис.1.

Рис.2
Додаток 2.
Система команд мп кр580вм80
Система команд данного МП содержит команды всех основных групп— пересылки, арифметические, логические, команды управления, оперативные, связи с подпрограммами и команды ввода-вывода. Для описания системы команд, приведенной в табл. П3.5—П3.10, используются следующие условные обозначения: DDD и SSS—код одного из рабочих регистров ЦПЭ в формате команды, причем D—регистр-приемник; S—регистр-источник (коды регистров приведены в табл. П3.1); М—ячейка памяти, адрес которой указан в регистровой паре HL; rp—регистровая пара (В, D, Н и УС); RP—код регистровой пары в формате команды, имеющий значения, приведенные в табл. П3.2; rh—регистр пары, в котором содержатся -чаршие разряды, n—регистр пары, в котором содержатся младшие разряды; <В> и <Вз> —второй и третий байты команды соответственно; [( ) ( )]— содержимое ячейки памяти, адрес которой указан в скобках
Т а б л и ц а пз. 1. Коды регистров
| Регистр 
 | ЦПЭ 
 | А 
 | В 
 | с 
 | D 
 | Е 
 | Н 
 | L 
 | М 
 | |
| Код 
 | регистра 
 | 111 
 | 000 
 | 001 
 | 010 
 | 011 
 | 100 
 | 101 
 | 110 
 | |
Таблица П3.2. Коды регистровых пар
| Регистровая пара 
 | ВС 
 
 | DE | HL 
 | УС | 
| RP 
 | 00 | 01 | 10 | 11 | 
Для записи команд при программировании используются мнемокоды; операнды записываются , как правило, в 16-ричном коде. Обозначения цифр и чисел от 0 до 15 в различных системах счисления приведённы в таблице П 3.3.
Т я блиц а ПЗ.З. Системы счисления
| Десятичная 
 | Двоичная 
 | Восьмеричная 
 | Шестнадцатеричная 
 | 
| 0 | 0000 | 0 | 0 
 | 
| 1 
 | 0001 
 | 1 
 | 1 
 | 
| 2 
 | 0010 
 | 2 
 | 2 
 | 
| 3 
 | 0011 
 | 3 
 
 | 3 
 | 
| 4 
 | 0100 
 | 4 
 | 4 
 | 
| 5 
 | 0101 
 | 5 
 | 5 
 | 
| 6 
 | 0110 
 | 6 
 | 6 
 | 
| 7 
 | 0111 
 | 7 
 | 7 
 | 
| 8 | 1000 | 10 | 8 | 
| 9 
 
 | 1001 | 11 
 | 9 
 | 
| 10 | 1010 | 12 | А | 
| 11 | 1011 | 13 | В | 
| 12 | 1100 | 14 | С | 
| 13 | 1101 | 15 | D | 
| 14 | 1110 | 16 | E | 
| 15 | 1111 | 17 | F | 
Обозначения флагов и коды условий приведены в таблице П 3.4. Команды МП КР580ВМ80 приведены в табл. П 3.5—П 3.10.
Таблица П3.4. Коды условий и значения флагов
| Условие 
 | (ССС) –код условия в формате команды 
 | Условие 
 | (ССС) – код условия в формате команды 
 | 
| NZ— ненулевой результат текущей,(Z)=0 | 000 
 | Р0 — нечетность числа единиц результата, (Р)=0 
 | 100 
 | 
| Z—нулевой результат текущей операции, (Z)=1 
 | 001 
 | РЕ—четность числа единиц результата, (Р) = 1 
 | 101 
 | 
| NC—отсутствие переноса, (CY)=0 | 010 | Р—результат положительный, (S)=0 
 | 110 
 | 
| С-наличие переноса, (СY)=1 | 011 | М-результат отрицательный, (S)=1 | 111 | 
Таблица П3.5. Команды пересылки, загрузки и хранения
| Мнемони-ческое обозначение 
 | Название 
 | Выполняе-мые операции 
 | Формат команды 
 | Число тактов 
 | Формирование флагов 
 | 
| MOV r1; r2. 
 | Пересылка из регистра в регистр | (r1)←(r2) 
 | 01DDDSSS 
 | 5 
 | Не фор-меруются 
 | 
| MOV r, М 
 | Пересылка из памяти в регистр | (r)←[(H)(L)] 
 | 01DDD110 
 | 7 
 | —»— 
 
 | 
| MOV М, г 
 
 | Пересылка из регистра в память | [(H)(L)]←(r) 
 
 | 01110SSS 
 
 | 7 
 
 | —»— 
 
 | 
| MVI г 
 
 | Загрузка регистра константой 
 | (r)←<В2> 
 
 | 00DDD110<В2> 
 | 7 
 
 | —»— 
 
 | 
| MVI М 
 | Загрузка памяти константой 
 | [(H)(L)]←<B2> 
 | 001100110 <В2> | 10 
 | —»— | 
| LXI rр 
 | Загрузка пары регистров 
 | (гh)←<В3>, (rl)←<В2> 
 | 00RP0001 <В2> <Вз> 
 | 10 
 | —»— 
 | 
| LDA 
 | Загрузка А прямая 
 | (А)←[<Вз><В2>] 
 | 00111010 <В2> <Вз> 
 | 13 
 | —»— 
 | 
| STA 
 | Загрузка памяти прямая 
 | [<Вз><В2>]← (А) 
 | 00110010 <В2> <Вз> 
 | 13 
 | —»— 
 | 
| LHLD 
 | Загрузка регистров Н и Lсодержимым двух ячеек памяти | (L)←[<B3><B2>], (Н)←[<Вз><В2>+1] | 00101010 <В2> <Вз> | 16 
 | —»— 
 | 
| SHLD 
 
 | Запоминание содержимого регистров HL по адресу | [<B3><B2>]←(L), [<Вз><В2>+1]←(Н) | 00100010 <В2> <Вз> 
 | 16 
 
 | —»— 
 
 | 
| LDAX rр (LDAX В, LDAX D) 
 | Косвенная загрузка А 
 | (А)←[(rр)] только для rp=B, rp=D 
 | 00RP1010 
 | 7 
 | 
 
 | 
| STAX гр (STAX В, STAX D) 
 | Запоминание содержимого А по адресу (rp) 
 | [(гр)]←(А) только для rр=В, rp=D 
 | 00RP0010 
 | 7 
 | —»— 
 | 
| XCHG 
 | Обмен между регистрами HL и DE | (H)↔(D), (L)↔(E) 
 | 11101011 
 | 4 
 | —»— 
 | 
Таблица П3.6. Арифметические, инкрементные и декрементные команды
| 
 Мнемо-ническое обозначе-ние | 
 Название 
 
 | 
 Выполняемые операции 
 
 | 
 Формат команды 
 
 | 
 Число тактов 
 
 | Формирование флагов 
 | 
 | ||||
| ADD r 
 
 
 | Сложение содержимого регистра с А 
 
 | (А)←(А)+г 
 
 
 
 | 10000SSS 
 
 
 
 | 4 
 
 
 | Фор миру ются все флаги | 
 | ||||
| ADDМ 
 
 
 | Сложение содержимого памяти с А 
 | (А)←(А)+[(H)(L)] 
 
 | 10000110 
 
 
 | 7 
 
 
 | Toже 
 
 
 | 
 | ||||
| ADI 
 
 | Сложение константы с А 
 | (А)←(А)+<В2> 
 
 | 11000110 <В2> 
 | 7 
 
 | —»— | 
 | ||||
| ADCг 
 
 
 
 | Сложение содержимого регистра с А с переносом 
 | (A)←(A)+(r)+(CY) 
 
 
 
 | 10001SSS 
 
 
 
 | 4 
 
 
 
 | —»— 
 
 
 
 | 
 | ||||
| ADO M 
 
 | Сложение содержимого памяти с А переносом | (А)←(А)+[(H)(L)]+(CY) 
 | 10001110 
 
 
 | 7 
 
 
 | —»— 
 
 | 
 | ||||
| INR г 
 | Инкремент регистра | (r)←(r)+l | 000DDD100 | 5 
 | Z, S, P, CY1 | 
 | ||||
| INRМ 
 | Инкремент ячейки памяти | [(H)(L)]←[(H)(L)]+1 
 | 00110100 
 | 10 
 | Z, S, P, CY1 | 
 | ||||
| DCRг 
 | Декремент регистра | (r)←(r)-l 
 | 00DDD101 | 5 
 | Z, S, P, CY1 | 
 | ||||
| DCRМ 
 | Декремент ячейки памяти | [(H)(L)]←[(H)(L)]-1 
 | 00110101 
 | 10 
 | Z, S, P, CY1 | 
 | ||||
| INXгр 
 | Инкремент пары регистров | (rh)(rl)←(rh)(rl)+l 
 | 00RP0011 
 | 5 
 | He фор- миру- тся | 
 | ||||
| DCXгр 
 | Декремент пары регистров 
 | (rh)(rl)←(rh)(rl)-l 
 | 00RP1011 
 | 5 
 | —»— | 
 | ||||
| DAD rp 
 
 | Двойное сложение пары регистров | (H)(L)←(H)(L)+ +(rh)(rl) | 00RP1001 
 | 10 
 | CY 
 
 | 
 | ||||
| DAA 
 
 | Десятичная коррекция содержимого аккумулятора 
 | 8-разрядное число в аккумуляторе преобразуется в двоично-десятичную форму по следующему правилу: | 00100111 
 
 
 | 4 
 
 
 | Формиру ются все флаги | 
 | ||||
| 
 
 
 
 
 
 
 
 
 
 | 
 
 
 
 
 
 
 
 
 
 | 1) если содержимое четырех младших разрядов аккумулятора больше 9 или если (CY1)=l, то к аккумулятору добавляется число 6; 2) если содержимое четырех старших разрядов стало после этого больше 9 или если (CY)=1, то число 6 добавляется и к содержимому четырех старших разрядов аккумулятора | 
 
 
 
 
 
 
 
 
 
 
 | 
 
 
 
 
 
 
 
 
 
 | 
 
 
 
 
 
 
 
 
 
 | |||||
| ACI 
 | Сложение константы с А с переносом 
 | (A)←(A)+<B2>+ +(CY) 
 | 11001110 <В2> 
 | 7 
 
 | —»— 
 
 | |||||
| SUB r 
 | Вычитание содержимого регистра из А | (А)←(А)-(г) 
 | 10010SSS 
 
 | 4 
 
 | —»- 
 
 | |||||
| SUBМ 
 | Вычитание содержимого памяти из А | (A)←(A)-[(H)(L)] 
 | 10010110 
 | 7 
 | —»— 
 
 | |||||
| SUI 
 
 | Вычитание константы из А | (А)←(А)-<В2> 
 | 11010110 <B2> 
 | 7 
 | —»— 
 | |||||
| SBBг 
 | Вычитание регистра с заё- мом | (A)←(A)-(r)-(CY) 
 | 10011SSS 
 
 | 4 
 | —»— 
 
 | |||||
| SBBМ 
 | Вычитание па мяти с заемом | (a)←(a)-[(h)(l)]- -(CY) | 10011110 
 | 7 
 | —»— | |||||
| SBI 
 | Вычитание константы с заемом | (A)←(A)-<B2>-(CY) 
 | 11011110 <В2> 
 | 7 
 | —»— 
 | |||||
Таблица П3.7. Логические команды
| Мнемо-ническое обозна-чение 
 | Название 
 | Выполняемые операции 
 | Формат команды 
 | Число тактов 
 | Формирование флагов 
 | 
| ANA r 
 
 | Логическое умножение регистра с А 
 | (А)←(А)^(г), (CY)←0; (CY1)←0 
 
 | 10100SSS 
 
 | 4 
 
 
 | Формиру ются все фла- ги | 
| ANAМ 
 
 | Логическое умножение ячейки памяти с А | (A)←(A)^[(H)(L)], (CY)←0; (CY1)←0 
 | 10100110 
 
 | 7 
 | То же 
 | 
| ANI 
 | Логическое умножение константы с А | (A)←(A)^<B2>, (CY)←0; (CY1)←0 
 | 11100110 <В2> | 7 
 
 | —»— | 
| XRAг 
 | Отрицание равнозначности с регистром | 
			(А)←(А) (CY)←0; (CY1)←0 
 | 10101SSS 
 | 4 
 | —»— | 
| XRAМ 
 | Отрицание равнозначности с памятью | 
			(A)←(A) (CY)←0; (CY1)←0 
 | 10101110 
 | 7 | —»— | 
| XRI 
 
 
 | Отрицание равнозначности с константой | 
			(A)←(A) (CY)←0; (CY1)←0 
 
 | 11101110 <В2> 
 
 | 7 
 
 
 | —»— 
 
 
 | 
| ORAг 
 | Логическое сложение регистра с А | (A)←(A) v (r), 
 | 10110SSS 
 | 4 
 | —»— | 
| ORAМ 
 | Логическое сложение ячейки памяти с А | (A)←(A)v[(H)(L)], (CY)←0; (CY1)←0 | 10110110 
 | 7 
 | То же 
 | 
| ORI 
 | Логическое сло-жение константы с А | (A)←(A) v <B2>; (CY)←0; (CY1)←0 
 | 11110110 <В2> | 7 
 | —»— | 
| СМР г 
 
 | Сравнение А с регистром 
 | (А)—(г), (А) не изменяется; (Z)=l, если (А)=(г); (СY)=1,если(А)<(г) | 10111SSS 
 | 4 
 
 | —»— 
 | 
| СМР М 
 
 
 | Сравнение А с ячейкой памяти 
 
 | (A)-[(H)(L)], (А) не изменяется; (Z)=l, если (A)=[(H)(L)]; (CY)=1, если (A)<[(H)(L)] | 10111110 
 
 
 | 7 
 
 | —»— 
 
 | 
| CPI 
 
 | Сравнение А с константой 
 | (A)-<B2>, (А) не изменяется; (Z)=l, если (А)=<В2>; (CY)=1, если (А)<<В2> | 11111110 <B2> 
 
 | 7 
 
 | —»— 
 
 | 
Таблица П3.8. Оперативные команды
| Мнемоническое обозначение 
 | Название 
 | Выполняемые операции 
 | Формат команды 
 | Число тактов 
 | Формирование флагов 
 | 
| RLC 
 | Сдвиг А влево циклический 
 | (An+1)←(An), (Ао)←(А7) (CY)←(A7) 
 | 00000111 
 | 4 
 | CY 
 | 
| RRC 
 | Сдвиг А вправо циклический 
 | (Аn)←(An+1), (А7)←(Ао), (CY)←(Ao) 
 | 00001111 
 | 4 
 | CY 
 | 
| RAL 
 | Сдвиг А влево с переносом 
 | (Аn+1 )←(Аn), (CY)←(A7), (Ao)←(CY) 
 | 00010111 
 | 4 
 | CY 
 | 
| RAR 
 | Сдвиг А вправо с переносом 
 | (Аn )←(An+1), (CY)←(Ao), (A7)←(CY) 
 | 00011111 
 | 4 
 | CY 
 | 
| СМА 
 
 
 | Инвертирование аккумуля тора | (A)←(Ā) 
 
 
 | 00101111 
 
 
 | 4 
 
 
 | He фор миру ются | 
| CMC 
 | Инвертирова ние регистра переноса | (CY)←(CY) 
 | 00111П1 
 | 4 
 
 | CY 
 | 
| STC 
 | Установка регистра переноса | (CY)←1 
 | 00110111 
 | 4 
 | CY 
 | 
Таблица П3.9. Команды управления и связи с подпрограммами
| Мнемоническое обозначение 
 | Название 
 | Выполняемые операции 
 | Формат команды 
 | Число тактов 
 | Формирование флагов 
 | |||||
| JMP 
 
 
 | Безусловный переход 
 | (СК)←<В3><В2> 
 
 | 11000011 <В2> <В3> | 10 
 
 
 | Не фор миру ются | |||||
| J(условие) 
 
 | Условный переход | Если условие (ССС)1 выполняется, то (СК)←<В3><В2> | 11ССС010 <В2> <В3> | 10 
 | То же 
 
 | |||||
| CALL 
 
 
 | Вызов подпро граммы безус ловный | [(УС)-1] ←(СК)н, [(УC-2]←(СК)L, (УС)←(УС)-2, (СК)←<В3><В2> | 11001101 <В2> <В3> | 17 
 
 
 | Не фор миру ются | |||||
| С (условие) 
 
 
 | Вызов подпрограммы условный 
 
 | Если условие (ССС)1 выполняется, то [(УС)-1] ←(СК)н, [(УС)-2]←(СК)L, (УС)←(УС)-2, (СК)←<В3><В2> | 11 ССС 100 <В2> <В3> 
 
 | 11/17 
 
 
 
 | То же 
 
 
 
 | |||||
| RET 
 | Возврат из подпрограммы безусловный | (СК)L→[(УС)], (СК)н←[(УС)+1], (УС)←(УС)+2 | 11001001 
 
 | 10 | Не формируются | |||||
| R(условие) 
 | Возврат из подпрограммы условный 
 | Если условие (ССС)1, выполняется, то (СК)L←[(УС)], (СК)н←[(УС)+1], (УС)←(УС)+2 | 11ССС000 
 | 5/11 
 | То же 
 | |||||
| RSTN 
 
 
 | Вызов подпрограммы прерываний 
 
 | [(УС)-1]-(СК)н, [(УС)-2] ←(СК)L, (УС)←(УС)-2, (СК)←8(ААА) 
 
 | 11ААА111 Состояние СК после выполнения RSTN 0000000000ААА000 номер N прерывающей программы | 11 
 
 
 
 | То же 
 
 
 | |||||
| PCHL 
 | Загрузка счетчика команд 
 | (СК)н←(Н),(ck)l←(l) 
 | 11101001 
 | 5 
 | То же 
 | |||||
Таблица П3.10. Команди управлення, ввода-вивода и операции со стеком.
| Мнемониче-ское обозначение 
 | Название 
 | Выполняемые операции 
 | Формат команды 
 | Число тактов 
 | Формирование флагов 
 | 
| PUSH rp 
 
 | Проталкивание з стек содержимого регистровой пары (кроме rр=УС) | [(УС)-1]←(rh), [(УС)-2]←(rl), (УС)←(УС)-2 
 
 | 11RP0101 
 
 | 11 
 | Не формируются 
 | 
| PUSH PSW 
 
 
 
 
 
 
 
 | Проталкивание в стек слова состояния ЦПЭ 
 
 
 
 
 | [(УС)-1]←(A), [(У С)-2]←(CY), [(У С)-2]1←1, [(У С)-2]2←(Р), [(У С)-2]3←0 [(У С)-2]4←(CY1) [(У С)-2]5←0 [(У С)-2]6←(Z), [(У С)-2]7←(S), (УС)←(УС)-2 | 11110101 Слово состояния ЦПЭ: Do=CY1;D1=l; D2=P; Dз=0; D4=CY1; D5=0; D6=Z; D7=S | 11 
 
 
 
 
 
 | То же 
 
 
 
 
 
 | 
| POP rp 
 
 
 | Выталкива-ние из стека cтровой пары (кроме гр=УС) содержимого регистровой пары (кромеrp=УС) 
 
 | (rl)←[(УС)], (гh)←[(УС)+1], (УС)←(УС)+2 
 
 | 11RP0001 
 | 10 
 | Не формируются 
 
 | 
| POP PSW 
 | Выталкивание из стека слова состояния ЦПЭ 
 | (СY)←[(УС)]о, (Р)←[(УС)2, (СY1)←[(УС)]4, (Z)←[(УС)]6, (S)←[(УС)7, (А)←[(УС)+1] (УС)←(УС)+2 
 | 11110001 
 | 10 
 | S, Z, CY, CY1, P 
 | 
| XTHL 
 
 | Обмен между вершиной стека и парой HL | (L)↔[(УС)], (Н)↔[(УС) +1] 
 | 11100011 
 
 | 18 
 | He форми-руются | 
| SPHL 
 | Загрузка указателя стека | (УС)←(Н)(L) 
 | 11111001 | 5 
 | To же | 
| INВУi 
 | Ввод 
 | (А)←(ВУi) 
 | 11011011 Адрес ВУi 
 | 10 
 | То же 
 | 
| OUTВУi 
 | Вывод 
 | (ВУi)←(А) 
 | 11010011 Адрес ВУi | 10 
 | То же 
 | 
| EI 
 
 
 
 | Разрешение прерываний 
 
 
 | Разрешается прерывание после выполнения следующей команды | 11111011 
 
 
 
 | 4 
 
 
 
 | То же 
 
 
 | 
| DI 
 
 | Запрет прерываний 
 | Прерывание запрещается после выполнения команды DI | 11110011 
 
 | 4 
 
 | То же 
 | 
| HLT 
 | Останов 
 | Процессор останавливается | 01110110 
 | 7 | То же | 
| NOP 
 
 | Пустая операция 
 | Никакие операции не выполняются | 00000000 
 
 | 4 
 
 | То же 
 
 | 
НАВЧАЛЬНО-МЕТОДИЧНЕ ВИДАННЯ
Методичні вказівки до виконання графічно-розрахункових і контрольних робіт для студентів технічних спеціальностей
Комп'ютерний набір та верстка: Т.Цизь
Редактор: Л.Тиха
Підп. до друку 2002. Формат 60х84/16. Папір офс.
Гарн. Таймс. Ум. друк. арк. 2,6. Обл. – вид. арк. 2,8.
Тираж 100 прим. Зам. 117.
Редакційно-видавничий відділ
Луцький державний технічний університет

 (г),
(г), [(H)(L)],
[(H)(L)], <B2>,
<B2>,