- •А. В. Поздняков, б. Я. Цилькер микропроцессоры и микропроцессорные системы
- •Часть 1
- •(Учебное пособие)
- •Содержание
- •1. Микропроцессорные системы
- •1.1. Историческая справка
- •1.2. Архитектура мпс с магистрально-модульной организацией
- •1.3. Режимы работы мпс
- •2.1. Центральный процессор
- •2.1.1. Классификация микропроцессоров
- •2. Микропроцессорный модуль
- •2.1.2. Структура центрального процессора
- •2.1.2.1. Краткая характеристика микропроцессора Intel 8086
- •2.1.2.2. Архитектура микропроцессора Intel 8086
- •2.1.2.3. Программная модель микропроцессора Intel 8086
- •2.1.2.4. Представление информации в мп Intel 8086
- •2.1.2.5. Способы адресации операндов в мп Intel 8086
- •2.1.2.6. Система команд мп Intel 8086
- •2.1.2.7. Содержание цикла команды, типовые машинные циклы мп Intel 8086
- •2.1.2.8. Входные и выходные сигналы мп Intel 8086
- •2.2. Сопроцессор
- •2.3. Генератор тактовых импульсов
- •2.4. Системный контроллер
- •2.5. Согласующие элементы микропроцессорных систем
- •2.5.1. Шинные формирователи
- •2.5.2. Буферные регистры
- •2.6. Контроллер прерываний
- •2.7. Контроллер прямого доступа к памяти
- •2.8. Программируемый таймер
- •3. Модуль памяти
- •3.1. Организация модуля памяти
- •3.2. Распределение адресного пространства зу
- •3.3. Декодирование старших разрядов адреса.
- •3.3.1. Декодирование адресов методом линейной выборки
- •3.3.2. Декодирование адресов с помощью логических компараторов
- •3.3.3. Декодирование адресов с применением комбинационных логических схем
- •3.4. Выбор типа зу
- •3.5. Функциональная схема модуля памяти
- •3.6. Обеспечение необходимой емкости зу
- •3.6.1. Увеличение разрядности зу
- •3.6.2. Увеличение адресного пространства зу
- •4. Модуль ввода-вывода
- •4.1. Интерфейс ввода-вывода
- •4.2. Параллельные порты
- •4.2.1. Параллельный порт вывода
- •4.2.2. Параллельный порт ввода
- •4.2.3. Параллельные порты ввода-вывода
- •4.3. Последовательные порты
- •4.3.1. Последовательный асинхронный порт вывода
- •4.3.2. Последовательный асинхронный порт ввода
- •4.3.3. Программируемый последовательный интерфейс
- •4.4. Организация обращения к портам ввода/вывода
- •4.4.1. Обращение к портам ввода/вывода с помощью специальных команд
- •4.4.2. Обращение к портам ввода/вывода с помощью команд пересылок
- •4.5. Способы организации ввода/ вывода информации в мпс
- •4.5.1. Организация ввода/вывода информации под управлением основной программы
- •4.5.2. Организация ввода/вывода в режиме прерывания программы
- •4.5.3. Организация ввода/вывода в режиме прямого доступа к памяти
- •Система команд микропроцессора Intel 8086 Команды пересылки данных
- •Арифметические команды
- •Логические команды
- •Команды передачи управления
- •Команды управления процессором
- •Команды обработки строк
- •Литература
Система команд микропроцессора Intel 8086 Команды пересылки данных
Команды пересылки данных обеспечивают пересылку информации между внутренними регистрами МП, Между внутренними регистрами и ячейками памяти. Операндами в командах могут быть байты, слова и двойные слова. При выполнении команд пересылки данных содержимое регистра флагов не изменяется. Команды пересылки МП Intel 8086 представлены в табл. П.1. В таблице использованы следующие условные обозначения:
op, op1, op2 – операнды;
i8, i16, i32 – 8-,16-и 32-разрядные константы находящиеся непосредственно в командах;
r8, r16 – имя регистра РОН, содержащего 8-разрядный или 16-разрядный операнд;
sr – имя сегментного регистра, содержащего 16-разрядный операнд;
m8, m16, m32 – адрес ячейки памяти, содержащей 8-,16- или 32-разрядный операнд;
А исп. – исполнительный адрес операнда;
[ x] – содержимое ячейки памяти;
n – 8-разрядный номер порта, принимающий значения в диапазоне от 0 до 255.
Таблица П.1. Команды пересылки данных
Мнемоника |
Операция |
Допустимые комбинации операндов |
Описание команды |
|
op1 |
op2 |
|||
MOV op1,op2 |
op1:=op2 |
r8 m8 r16 sr (кроме CS) m16 |
i8, r8, m8 i8, r8 i16,r16,sr, m16 m16, r16
i16,r16,sr |
Пересылка (move) |
XCHG op1,op2 |
op1= op2 |
r8 m8 r16 m16 |
r8, m8 r8 r16,m16 r16 |
Перестановка (exchange) |
PUSH op |
SP:=(SP-2) mod 216 op[SS:SP] |
r16,sr,m16 |
Запись слова в стек |
|
PUSHF |
SP:=(SP-2) mod 216 Flags[SS:SP] |
|
Запись регистра флагов в стек |
|
POP op |
[SS:SP] op SP:=(SP+2) mod 216 |
r16, sr (кроме CS), m16 |
Чтение слова из стека
|
|
POPF |
[SS:SP] Flags SP:=(SP+2) mod 216 |
|
Чтение регистра флагов из стека |
|
LAHF |
AH:= Flags(7-0) |
|
Загрузка младшего байта регистра Flags в регистр AH (load AH from Flags) |
|
SAHF |
Flags(7-0):= AH |
|
Загрузка регистра AH в младший байт регистра Flags (save AH into Flags) |
|
XLAT |
AL:= [BX+AL] |
|
Перекодировка (translate) |
|
LEA op1, op2 |
r16:=Aисп. |
r16 |
Aисп. |
Загрузка исполнительного адреса (load effective address) |
LDS op1,op2 |
r16:=[m32] DS:=[m32+2] |
r16 |
m32 |
Загрузка указателя в DS (load pointer using DS) |
LES op1,op2 |
r16:=[m32] ES:=[m32+2] |
r16 |
m32 |
Загрузка указателя в ES (load pointer using ES) |
IN op1,op2 |
op1:=op2 |
AL AX |
n, DX n, DX |
Чтение из порта |
OUT op1,op2 |
op1:=op2 |
n, DX n, DX |
AL AX |
Запись в порт |
Для задания адресов op1 и op2 могут быть использованы следующие виды адресации:
прямая;
регистровая;
косвенная регистровая;
базовая;
индексная;
базово-индексная.
В командах MOV один из операндов должен быть регистром. В командах LEA, LDS и LES для операнда op2 не может быть использована регистровая адресация.
