Здавалка
Главная | Обратная связь

Команда пересылки данных



Данная группа состоит из 24 команд Все команды (кроме MOV PSW, А) не оказывают воздействия на флаги. Команды пересылки данных внутри МК выполняются за один машинный цикл, обмен с внешней памятью и портами требует двух машинных циклов.

Структура информационных связей. На рис.8.2 представлен граф возможных пересылок, который иллюстрирует структуру информационных связей МК48. Можно выделить девять типов операндов, между которыми выполняется информационный обмен. Операнды, участвующие в операциях пересылки, различаются по месту расположения и способу адресации. К операндам относятся: аккумулятор, регистры общего назначения, ССП, таймер, порты, непосредственный операнд, внешняя и резидентная память данных и память программ (ПП). Аккумулятор является как бы "почтовым ящиком", через который остальные устройства (операнды) могут обмениваться данными. К памяти программ существует только одностороний доступ для чтения.

 

Рис. 8.2. Граф пересылок данных

Форматы данных. Большинство команд выполняет пересылку 8-битных (1-байтных) операндов. Существуют также несколько команд, оперирующих с 4-битными операндами (тетрадами). Команды пересылки тетрад используются при обращении к 4-битным портам внешней схемы расширителя ввода/вывода (Р4-Р7).

Режимы передачи данных. В МК48 возможна передача данных в двух режимах: пересылки (загрузки) и обмена. Пересылка предполагает передачу данных в направлении от источника к приемнику. При этом источник не изменяет своего содержимого. Обмен предполагает одновременную передачу данных в двух направлениях: в результате операции обмена изменяются значения обоих операндов, участвующих в операции.

 

Таблица 8.2.. Группа команд пересылки данных .
(Т-тип команды, Б-формат в байтах, Ц-число машинных циклов)

Название команды Мнемокод КОП ТБЦ Операция
Пересылка регистра в аккумулятор MOV А,Rn 11111rrr 1 1 1 (A) = (Rn)
Пересылка байта из РПД в аккумулятор MOV A,@Ri 111000i 1 1 1 (A) = ((Ri))
Пересылка непосредственного операнда в аккумулятор MOV A,#d 2 2 2 (А) = #d
Пересылка аккумулятора в регистр MOV Rn,A 10101rrr 1 1 1 (Rn) = (A)
Пересылка непосредственного операнда врегистр MOV Rn,#d 10111rrr 2 2 2 (Rn) = #d
Пересылка аккумулятора в РПД MOV @Ri,A 1010000i 1 1 1 ((Ri)) = (A)
Пересылка непосредственногооперанда в РПД MOV @Ri,#d 1011000i 2 2 2 ((Ri)) = #d
Пересылка ССП ваккумулятор MOV A,PSW 1 1 1 (A) = (PSW)
Пересылка аккумулятора в ССП MOV PSW,A 1 1 1 (PSW) = (А)
Пересылка содержимого таймера/счетчика в аккумулятор MOV А,Т 1 1 1 (A) = (T)
Пересылка аккумулятора в таймер/счетчик MOV Т,А 1 1 1 (Т) = (А)
Пересылка байта из ВПД в аккумулятор MOVX A,@Ri 1000000i 1 1 2 (A) = ((Ri))
Пересылка аккумулятора в ВПД MOVX @Ri,A 1001000i 1 1 2 ((Ri)) = (A)
Пересылка байта из текущей страницы программной памяти в аккумулятор MOVP A,@A 1 1 2 (РС0-7) = (A) (А) = ((PC))
Пересылка байта из третьей страницы программной памяти в аккумулятор MOVP3 A,@A 1 1 2 (РС0-7) = (А) (PC8-11) = 0011 (А) = ((PC))
Обмен регистра с аккумулятором ХСН A,Rn 00101rrr 1 1 1 (A)<->(Rn)
Обмен аккумулятора с РПД ХСН A,@Ri 0010000i 1 1 1 (A)<->((Ri))
Обмен младших тетрад аккумулятора и байта РПД XCHD A,@Ri 0011000i 1 1 1 (А0-3)<->((Ri)0-3)
Пересылка данных из порта Рр (р =1,2) в аккумулятор IN А,Рр 000010pp 1 1 2 (А) = (Рр)
Стробируемый ввод данных из порта ВЦК INS A,BUS 1 1 2 (А) = (BUS)
Пересылка аккумулятора в порт Рр (р=1,2) OUTL Рр,А 001110pp 1 1 2 (Рр) = (А)
Стробируемый вывод данных из аккумулятора в порт BUS OUTL BUS, А 1 1 2 (BUS) = (A)
Ввод тетрады из порта Рр (р=4-7) схемы расширителя MOVD A,Pp 000011pp 1 1 2 (А0-3) = (Pp)
Вывод тетрады в порт Рр (р = 4 -7) схемы расширителя MOVD Pp,A 001111pp 1 1 2 (Рр) = (А0-3)

 

 

Способы адресации. Для обращения к данным используются четыре способа адресации:

1)прямая, когда адрес операнда содержится в теле самой команды, например

MOV A, RN ; (A)<(RN)

Номер регистра, пересылаемого в аккумулятор, указывается в трех младших битах кода операции (КОП);

2) непосредственная, когда сам 8-битный операнд (константа) располагается непосредственно в теле команды (второй байт команды), например

MOV A, #05 ;(A)<05

Содержимое второго байта команды (05) пересылается в аккумулятор;

3) косвенная, при которой адрес операнда располагается в регистре (RО или R1) , например:

MOV A, @R0 ;(A)<((R0))

Содержимое ячейки РПД по адресу, хранимому в регистре R0, пересылается в аккумулятор;

4) неявная, при которой в коде операции содержится неявное (по умолчанию) указание на один из операндов. Чаще всего таким операндом является аккумулятор, как, например, в команде

MOV A, RN ;(A)<(RN)

 

Особенность передач через порты. Поры Р1 и Р2 представляют собой управляемые буферные регистры. При выдаче информации выводимый байт данных фиксируется в буферном регистре порта, а при вводе он не фиксируется и должен быть прочитан контроллером в течение перио-да присутствия байта на входах порта. Ориентация МК на применение в устройствах управления объектами привела к появлению в его системе команд таких команд, которые позволяют выполнять операции ввода/ вывода информации с использован маскирования, что предоставляет разработчику удобные средства обмена не только байтами, но отдельны-ми битами и их произвольными комбинациями. Схемотехника портов Р1 и Р2 такова, что ввод данных в некоторую линию возможен только в том случае, если предварительно в каждый бит порта программой МК была записана 1.

Порт BUS может выполнять все функции, перечисленные для портов Р1 и Р2, но в отличие от них он не может специфицировать отдельные линии на ввод или вывод. Все восемь линий порта BUS должны одновременно быть либо входными, либо выходными. По комарам МОVХ порт BUS используется в качестве двунаправленного синхронного канала для доступа к ВПД.

Регистр флагов.

Регистр ВХ, Базовый регистр (base register), часто используется при адресации данных в памяти; регистр СХ, счетчик (count register), используется как счетчик числа повторений цикла и в качестве номера позиции элемента данных при операциях над строка- ми. Регистр CL используется как счетчик при операциях сдвига и циклического сдвига на несколько битов; регистр DX, регистр данных (data register), используется при умножении и деле- нии слов. Кроме того, в операциях ввода-вывода он используется как номер порта. Программисты, имеющие опыт работы с микропроцессорами 8080 и 8085, должны заметить, что АН - единственный регистр микропроцессора 8088, не имеющий ана- лога в этих микропроцессорах. Остальные регистры использовались в них под другими именами; так, в микропроцессоре 8080 регистру AL соответствует регистр А, а регистрам ВХ, СХ и DX соответствуют регистры HL, ВС и DE. Только регистры данных могут использоваться и как 16-битовые, и как 8-бито- вые. Все регистры остальных групп - 16-битовые.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.