- •Выполнл:
- •1. Функциональная и структурная организации процессора
- •1.3. Согласование форматов команд и данных
- •1.4. Способы адресации
- •4. Обработка адресной части команды
- •5. Выполнение команд арифметических операций
- •6. Выполнение команд логических операций
- •7. Выполнение команды пересылки
- •8. Выполнение команд передачи управления
- •8.1. Безусловный переход
- •8.2. Условный переход
- •8.3. Безусловный переход к подпрограмме
- •9. Выполнение команд ввода - вывода
- •10. Прерывание программы
- •11. Список управляющих сигналов и флагов
- •12. Примеры команд и их кодов
11. Список управляющих сигналов и флагов
Y1 - СчАК := СчАК + 1
Y2 - РА := СчАК
Y3 - Чтение из ОП
Y4 - РК[Сч] := РД
Y5 - СмИ := РК[0 - 15]
Y6 - Сложение
Y7 - РК := СмИ
Y8 - СмИ := РИ (РК [FL2 - FL4])
Y9 - Сч := 3
Y10 - Сч := Сч - 1
Y12 + Y11 - РА := А1
Y13 - Р1 := РД
Y14 + Y11 - РА := А2
Y15 - Р2 := РД
Y16 - Пуск АЛУ
Y17 + Y11 - РА := А3
Y18 - Запись в ОП
Y19 - СчАК := А
Y20 - Микропрограмма команды БП
Y21 - РА := А2
Y22 - СчАК := А1
Y23 - РА := РК[A]
Y24 - Чтение ВВ
Y25 - Запись ВВ
Y26 - Отсутствие переполнения
Y27 - Отсутствие деления на 0
Y28 - Прием запросов
Y29 - Сброс запроса
X1 - ОП закончила работу?
X2 - FL1 = 1? (Поле ПА)
X3 - Сч = 0?
X4 - АЛУ закончило работу?
X5 - Признак = 1?
X6 - ВВ закончил работу?
X7 - Наличие запроса?
12. Примеры команд и их кодов
№ Код Имя Содержание Функция
1 0000000 MOVA Чтение в регистр значения другого регистра (8 бит) R1 <-R2
2 0000001 MOVB Чтение в регистр значения другого регистра (16 бит) R1<-R2
3 0000010 MOVC Чтение байта из команды R1 <- disp
4 0000011 MOVD Чтение слова из команды R1 <- disp
5 0000100 MOVE Чтение байта из памяти R1 <- <disp>
6 0000101 MOVF Чтение слова из памяти R1 <- <disp>
7 0000110 MOVG Запись байта в память R1 -><disp>
8 0000111 MOVH Запись слова в память R1 -><disp>
9 0001000 MOVI Чтение байта из памяти R1 <- <R2+ disp>
10 0001001 MOVJ Чтение слова из памяти R1 <- <R2+ disp>
11 0001010 MOVK Запись байта в память R1 -> <R2+ disp>
12 0001011 MOVL Запись слова в память R1 -> <R2+ disp>
13 0001100 ADDA Сложение 2-х байт R1 <- R2+ R3
14 0001101 SUBA Вычитание 2-х байт R1<- R2-R3
15 0001110 SUBB Вычитание 2-х байт R1 <- R3 - R2
16 0001111 MULA Умножение 2-х байт R1 <- R2 • R3
17 0010000 DIVA Деление 2-х байт R1<- R2/R3
18 0010001 DIVB Деление 2-х байт R1 <- R3/R2
19 0010010 ADDB Сложение 2-х слов R1<- R2+ R3
20 0010011 SUBC Вычитание 2-х слов R1<- R2-R3
21 0010100 SUBD Вычитание 2-х слов R1<- R3-R2
22 0010110 MULB Умножение 2-х слов R1 <-R2* R3
23 0010111 DIVC Деление 2-х слов R1 <- R2/R3
24 0011000 DIVD Деление 2-х слов R1 <- R3 / R2
25 0011001 ADDB Сложение 2-х байт R1 <- R2+ <R3>
26 0011010 SUBE Вычитание 2-х байт R1 <- R2-<R3>
27 0011011 SUBF Вычитание 2-х байт R1 <- <R3>-R2
28 0011100 MULC Умножение 2-х байт R1 <- R2* <R3>
29 0011101 DIVE Деление 2-х байт R1 <- R2/<R3>
30 0011110 DIVF Деление 2-х байт R1 <- <R3>/R2
31 0011111 ADDC Сложение 2-х слов R1<- R2+ <R3>
32 0100000 SUBG Вычитание 2-х слов R1 <- R2-<R3>
33 0100001 SUBH Вычитание 2-х слов R1 <- <R3>-R2
34 0100010 MULD Умножение 2-х слов R1 <- R2* <R3>
35 0100011 DIVG Деление 2-х слов R1 <- R2 / <R3>
36 0100100 DIVH Деление 2-х слов R1 <- <R3>/R2
37 0100101 ADDD Сложение 2-х байт R1 <- R2+ disp
38 0100110 SUBI Вычитание 2-х байт R1 <- R2 - disp
39 0100110 SUBJ Вычитание 2-х байт R1 <- disp - R2
40 0100111 MULE Умножение 2-х байт R1 <- R2* disp
41 0101000 DIVI Деление 2-х байт R1 <- R2 / disp
42 0101001 DIVJ Деление 2-х байт R1<-disp/R2
43 0101010 ADDE Сложение 2-х слов R1 <- R2+ disp
44 0101011 SUBK Вычитание 2-х слов R1 <- R2 - disp
45 0101100 SUBL Вычитание 2-х слов R1 <- disp - R2
46 0101101 MULF Умножение 2-х слов R1 <- R2* disp
47 0101110 DIVK Деление 2-х слов R1 <- R2 / disp
48 0101111 DIVL Деление 2-х слов R1 <- disp/R2
Приведенный список команд служит для операций над данными с фиксированной точкой. Инвертирование последнего разряда позволяет производить все те же операции над данными с плавающей точкой. Список не является полным и может быть дополнен.