
Микропроцессоры Токхайм / 8.5. КОМАНДЫ ПЕРЕДАЧИ ДАННЫХ МП INTEL 8080-8085
.doc8.5. КОМАНДЫ ПЕРЕДАЧИ ДАННЫХ МП INTEL 8080/8085
Такие команды обеспечивают выполнение операций размещения обмена, загрузки и перемещения данных. Здесь в собственном формате фирмы Intel приводятся только мнемоники и шестнадцатеричные КОП 84 команд. Среди всех команд микропроцессора эти используются наиболее часто.
Рассмотрим команду 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). Прямая загрузка
Циклов —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.