Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Микропроцессоры Токхайм / 8.5. КОМАНДЫ ПЕРЕДАЧИ ДАННЫХ МП INTEL 8080-8085

.doc
Скачиваний:
177
Добавлен:
13.05.2015
Размер:
1.97 Mб
Скачать

8.5. КОМАНДЫ ПЕРЕДАЧИ ДАННЫХ МП INTEL 8080/8085

Такие команды обеспечивают выполнение операций размещения обмена, загрузки и перемещения данных. Здесь в собственном формате фирмы Intel приводятся толь­ко мнемоники и шестнадцатеричные КОП 84 команд. Сре­ди всех команд микропроцессора эти используются наи­более часто.

Индикаторы условия не устанавливаются командами этой группы. Приведем обозначения сокращений (например, r1, DDD, SSS и т.д.), используемых в следующих описаниях команд пользователя, составленных фирмой Intel.

Рассмотрим команду MOV А, В (КОП—78Н) МП Intel 8080/8085, которая передаст данные регистра В в аккуму­лятор (регистр А). Этот тип команды был уже изучен в § 6.5. Заметим, что первый регистр (Л в этом примере) I является назначением, а другой (В) источником данных. Общий состав КОП этого типа команд будет 01DDDSSS, его можно составить исходя из информации, приведенной выше. Назначением является аккумулятор, чему соответствует состав бит 111, источником — регистр В с составом

Символ Значение

А Аккумулятор (регистр А)

addr Значение адреса—16 бит

data 8-разрядное число (данные)

data 16 16-разрядное число (данные)

byte 2 Второй байт команды

byte 3 Третий байт команды

port 8-разрядный адрес УВВ

r, r1, r2 Один из регистров А, В, С, D, Е, Н, L

DDD, SSS Набор битов, представляющий один из регистров А, В, С, D, Е, Н, L (DDD — назначение, SSS — источник) DDD или Регистр SSS

111 А

В

С

D

Е

Н

L

Гр.Одна из пар регистров:

В представляет пару ВС, где В — старший регистр, С — младший регистр; D представ­ляет пару DE, где D — старший регистр, Е — младший регистр; H — представляет пару HL, где Н — старший регистр, L — младший регистр; SP— 16-разрядный указатель стека

RP Набор бит, представляющий одну из пар регистров В, D, Н, SP

RP Пара регистров

00 ВС

01 DE

10 HL

11 SP

rh Первый (старший) регистр данной пары

rl Второй (младший) регистр данной пары

PC 16-разрядный счетчик команд (РСН и PC

представляют соответственно 8 старших и

8 младших бит)

SR 16-разрядный указатель стека (SPH и SPL

представляют соответственно старших 8 и младших 8 бит)

r m m-й бит регистра (биты нумеруются от 0 до

7 справа налево) ETIQETTE (LABEL) 16-разрядный адрес подпрограммы

Индикаторы

Z Нуля

S Знака

Р Четности

бит ООО. Тогда КОП будет 0111 10002 или 78Н. По данным фирмы Intel, команда MOV A, В использует только один машинный цикл (четыре периода тактовых импульсов Т) для передачи данных и выполняется с помощью регистро­вой адресации. Она не устанавливает никаких индикаторов в ходе своего выполнения. Каждая из команд передачи соответствует той или другой более общей категории и мо­жет быть анализирована подобным образом. Отметим, что в результате команд передачи данных никакие индикаторы не изменяются.

MOVr1, r2 (Move register). Передача между регистра­ми . Содержимое регистра 2 передается в ре­гистр 1.

Циклов —1; периодов Т — 4 (8085), 5 (8080); адресация — регистровая.

MOV r, М (Move from memory). Передача из памяти . Содержимое памяти, адрес которой находится в паре HL, передается в регистр r.

Циклов — 2; периодов T —7; адресация — косвенная регистровая.

MOV М, r (Move to memory). Передача в память.

. Содержимое регистра r передается в па­мять, адрес которой находится в паре HL.

Циклов —2; периодов Т — 7; адресация — косвенная реги­стровая.

MOV r, data (Move immediate). Передача непосредственная . Содержимое байта 2 команды пере­дается в регистр r.

Циклов —2; периодов T —7; адресация — непосредственная.

MVI М, data (Move to memory immediate). Передача в память непосредственная. . Содержи-

мое байта 2 команды передается в память, адрес которой указан парой HL.

Циклов —3; периодов Т — 10; адресация — непосредствен­ная/косвенная регистровая.

LXI rp, data 16 (Load register pair immediate). Загру­зить непосредственно пару регистров. ;

. Байт 3 команды передается в старший ре­гистр (rh), пары rр, а байт 2 — в младший регистр (rl) той же пары.

Циклов —3; периодов Т — 10; адресация — непосредст­венная.

LDA addr (Load accumulator direct). Прямая загрузка

аккумулятора (А)<-((байт 3) (байт 2)). Содержимое памяти, адрес которой определен байтами 2 и 3 команды, пе­редается в аккумулятор (регистр А).

Циклов —4; периодов T—13; адресация — прямая.

STA addr (Store accumulator direct). Прямое размеще­ние содержимого аккумулятора. ((байт 3) (байт 2))<-(А). Содержимое аккумулятора передается в память, адрес ко­торой указан байтами 2 и 3 команды.

Циклов — 4; периодов Т—13; адресация — прямая.

LHLD addr (Load Н and L direct). Загрузить H и L прямо. (L)<-((байт 3) (байт 2)); (Н)<-((байт 3) (байт 2) + 1). Содержимое ячейки памяти, адрес которой определяется байтами 2 и 3 команды, передается в регистр L. Содержимое следующего байта памяти передается в ре­гистр Н.

Циклов —5; периодов Т—16; адресация — прямая.

SHLD addr (Store И and L direct). Поместить H и L прямо. ((байтЗ) (байт 2))<-(L); ((байтЗ) (байт 2) + 1)<-<-(Н). Содержимое регистра L передается в ячейку памя­ти, адрес которой определяется байтами 2 и 3 команды.

Содержимое регистра Н передается в следующий байт па­мяти.

Циклов — 5; периодов Т — 16; адресация — прямая.

LDAX rp (Load accumulator indirect). Загрузить акку­мулятор косвенно. (А)<-((rр)). Содержимое ячейки памя­ти, адрес которой определяется парой регистров rр, пере­дается в регистр А. Могут использоваться только пары rр =В (регистры В и С) или rp = D (регистры D и Е).

Циклов — 2; периодов Т — 7; адресация — косвенная реги­стровая.

STAX rp (Store accumulator indirect). Загрузить акку­мулятор косвенно. ((rр))<-(А). Содержимое аккумулятора А передается в ячейку памяти, адрес которой содержится в паре регистров rр. Могут использоваться только пары rр = В (регистры В и С) или rp = D (регистры D и Е).

Циклов — 2, периодов Т — 7; адресация — косвенная реги­стровая.

XCHG (Exchange Н and with D and E). Обмен H и L с D и Е. (H)<->(D); (L)<->(E). Содержимое регистров Н и L обменивается с содержимым регистров D и Е.

Циклов—1; периодов Т — 4; адресация — регистровая. Упражнения

8.36. Код операции команды MOV А, М _____ (шестнадцатеричный). Она передает данные, содержащиеся в _____ (ячейке памяти, регистре А), в _____ (ячейку

памяти, регистр А). Память определена ____ (парой

HL, вторым и третьим байтами команды). Команда MOV

А, М использует ______ машинных цикла и ______ периодов Т. Команда MOV А, М имеет адресацию _______

(прямую, косвенную, регистровую).

8.37. Двоичный КОП MOV М, С ______. Эта команда

передает данные ____ (из ячейки памяти, из регистра

С) в ______ (ячейку памяти, регистр С). Ячейка памяти

определена ________ (парой HL, вторым и третьим байта-

ми команды). MOV М, С использует ________ машинных

циклов и _______ периодов Т. Команда MOV М, С имеет ________

(прямую, косвенную) адресацию.

8.38. См. рис. 8.14. Код операции MVI Н ____ (двоичный).

8.39. См. рис. 8.14. Содержимое регистра Н после команды MVI Н (дать 8 бит).

8.40. См. рис. 8.14. Какое число машинных циклов и периодов Т использует команда MVI Н для выполнения передачи?

См. рис. 8.15. Дать список содержимого семи реги­стров МП Intel 8085 после операции обмена.

См. рис. 8.15. Команда XCHG имеет (пря­мую, регистровую) адресацию.

См. рис. 8.15. Какие числа машинных циклов и периодов Т необходимы для выполнения команды XCHG?

См. рис. 8.16. Команда SHLD имеет (пря­мую, непосредственную) адресацию.

8.45. См. рис. 8.16. После выполнения размещения данных, ячейка памяти (шестнадцатеричное) содержит 1010 10102, а ячейка памяти 3102Н— (дать

8 бит).

Решения

8.36. 7ЕН; в ячейке памяти; в регистр Л; парой HL; 2; 7; косвен­ную регистровую. 8.37. 0111 0001; из регистра С; память М; парой HL; два; семь; адресация косвенная регистровая. 8.38. 0010 01102- 8.39. 0000 00012. 8.40. Два машинных цикла; семь периодов Т. 8.41. Регистр A —0000 0000 (без изменений); регистр В — 0000 0001 (без измене­ний); регистр С — 0000 0010 (без изменений); регистр D — 0000 0101 (обмен с Н); регистр E-0000 0110 (обмен с L); регистр Н—0000 0011 (обмен с D); регистр L — 0000 0100 (обмен с Е). 8.42. Регистровую (передача между регистрами МП). 8.43. Один машинный цикл; четыре периода Т. 8.44. Прямую. 8.45. 3103Н содержит 1111 00002; 3102Н со­держит 1010 10102.