- •Российская открытая академия транспорта микропроцессорные информационно-управлчющие системы
- •Микроконтроллеры серии 1830ве51
- •1.1. Структурная схема микроконтроллера 1830ве51
- •1.1.1. Блок управления
- •1.1.2. Арифметико-логический блок
- •1.1.3. Организация памяти программ
- •1.1.4. Резидентная память данных
- •1.1.5. Счетчик команд и регистр указателя данных
- •1.1.6. Регистр указателя стека
- •1.1.7. Таймеры/счетчики
- •Режимы работы таймера/счетчика
- •1.1.8. Блок последовательного интерфейса и прерываний
- •1.1.9. Порты мк51
- •1.1.10. Начальная установка и режимы работы мк51
- •1.2. Система команд микроконтроллера 1830ве51
- •1.2.1. Команды пересылки данных
- •1.2.2. Команды арифметических операций
- •1.2.3. Команды логических операций
- •1.2.4. Команды операций над битами
- •1.2.5. Команды передачи управления
- •1.3. Структурная организация систем на основе микроконтроллеров
- •1.3.1. Подключение внешней памяти
- •1.3.2. Расширение каналов ввода/вывода информации
- •2. Программная реализация типовых вычислительных процедур
- •2.1 Типовые структуры схем алгоритмов обработки данных
- •2.2 Приемы программирования
- •2.3 Примеры программ обработки данных в мк51
- •2.3.1 Примеры использования команд передачи данных
- •2.3.2 Примеры использования команд арифметических операций
- •2.3.3 Примеры использования команд логических операций
- •3. Применение микропроцессорных информационно-управляющих систем на железнодорожном транспорте
- •3.1. Классификация микропроцессорных информационно-управляющих систем на железнодорожном транспорте
- •3.2 Автоматизированные системы управления и контроля движения поездов
- •3.3 Автоматизированные системы диспетчерского контроля
- •3.4 Информационные системы обслуживания пассажиров
- •Литература
1.2.2. Команды арифметических операций
В данную группу входят 24 команды, краткое описание которых приведено в табл. 1.17. Кроме этого в таблице приведены данные о длине команды в байтах и время ее выполнения в машинных циклах.
Таблица.1.17. Арифметические операции
Мнемоника команды |
Код операции |
Количество байтов в команде |
Время выполнения команды, циклы |
Выполняемые действия |
ADD A, Rn |
00l01rrr |
1 |
1 |
(A) (A) + (Rn) |
ADD A, ad |
00100101 |
2 |
1 |
(A) (A) + (ad) |
ADD A, @Ri |
0010011i |
1 |
1 |
(A) (A) + ((Ri)) |
ADD A, #d |
00100100 |
2 |
1 |
(A) (A) + #d |
ADDC A, Rn |
00111rrr |
1 |
1 |
(A) (A) + (Rn) + (C) |
ADDC A, ad |
00110101 |
2 |
1 |
(A) (A) + (ad) + (C) |
ADDC A, @Ri |
0011011i |
1 |
1 |
(A) (A) + ((Ri)) + (C) |
ADDC A, #d |
00110100 |
2 |
1 |
(A) (A) + # d + (C) |
DA A |
11010100 |
1 |
1 |
Если (А0…3)>9 или ((AC)=1), то (А0…3) (А0…) + 6, затем если (А4…7) >9 или ((С)=1), то (А4…7) (А4…7) + 6 |
SUBB A, Rn |
10011rrr |
1 |
1 |
(A) (A) - (C) - (Rn) |
SUBB A, ad |
10010101 |
2 |
1 |
(A) (A) - (C) - ((ad)) |
SUBB А, @Ri |
1001011i |
1 |
1 |
(A) (A) - (C) - ((Ri)) |
SUBB А, d |
10010100 |
2 |
1 |
(A) (A) - (C) - #d |
INC А |
00000100 |
1 |
1 |
(A) (A) + 1 |
INC Rn |
00001rrr |
1 |
1 |
(Rn) (Rn) + 1 |
INC ad |
00000101 |
2 |
1 |
(ad) (ad) + 1 |
INC @Ri |
0000011i |
1 |
1 |
((Ri)) ((Ri)) + 1 |
INC DPTR |
10100011 |
1 |
2 |
(DPTR ) (DPTR) + 1 |
DEC A |
00010100 |
1 |
1 |
(A) (A) – 1 |
DEC Rn |
00011rrr |
1 |
1 |
(Rn) (Rn) – 1 |
DEC ad |
00010101 |
2 |
1 |
(ad) (ad) – 1 |
DEC @Ri |
0001011i |
1 |
1 |
((Ri)) ((Ri)) - 1 |
MUL AB |
10100100 |
1 |
4 |
(B)(A) (A)*(В) |
DIV AB |
10000100 |
1 |
4 |
(B).(A) (A)/(В) |
По результату выполнения команд ADD, ADDC, SUBB, MUL и DIV устанавливаются флаги PSW.
Флаг С устанавливается при переносе из разряда D7, т. е. в случае, если результат не помещается в восемь разрядов; флаг АС устанавливается при переносе из разряда D3 в командах сложения и вычитания и служит для реализации десятичной арифметики. Этот признак используется командой DAA.
Флаг OV устанавливается при переносе из разряда D6, т. е. в случае, если результат не помещается в семь разрядов и восьмой не может быть интерпретирован как знаковый. Этот признак служит для организации обработки чисел со знаком.
Наконец, флаг Р устанавливается и сбрасывается аппаратно. Если число единичных бит в аккумуляторе нечетно, то Р = 1, в противном случае Р = 0.