
Микропроцессоры Токхайм / 6.5. СОСТАВ КОМАНД ОПЕРАЦИЙ ПЕРЕДАЧИ ДАННЫХ
.doc6.5. СОСТАВ КОМАНД ОПЕРАЦИЙ ПЕРЕДАЧИ ДАННЫХ
Команды передачи данных составляют третью категорию команд нашего типового микропроцессора. Они выполняют передачу данных из регистра в регистр, размещение данных в памяти, размещение извлеченных из памяти данных в УВВ и установление индикатора переноса (табл. 6.5). Почти все команды передачи не влияют на индикаторы МП. Эта группа содержит множество команд, данные могут быть переданы из любой ячейки памяти в любой регистр или наоборот. Каждая команда передачи содержит адреса источника и назначения данных. Способы адресации ориентированы на то, где и как осуществляется поиск данных.
Рассмотрим первую
команду передачи, записанную в табл.
6.5: необходимо их передать из регистра
L в регистр Л (аккумулятор). Команда
ассемблера (MOV A, L) означает перемещение1.
Следующая за мнемоникой буква (Л — в
нашем примере) указывает назначение,
тогда как последняя (L) идентифицирует
источник данных. Это покажется
немного несовременно, но эта условность
принята фирмой Intel для команд
микропроцессоров Intel 8080/
/8085.
Обратимся к примеру на рис. 6.20. Источником данных является регистр Л (аккумулятор), приемником — регистр L. Выполненная один раз команда не меняет содержимое аккумулятора.
На рис. 6.21 приведен другой пример. Здесь источником данных является пара регистров HL, приемником—16-разрядный указатель стека. Если рассмотреть внимательно
мнемонику команды передачи содержимого пары регистров HL в указатель стека SP, подтвердится, что назначение указывается первым (SP), а источник — последним (HL), что дает нам мнемонику SPHL.
Существует пять команд непосредственной загрузки данных. Эти команды используются очень часто для помещения начального значения в регистр МП в заданный момент, предшествующий программе. На рис. 6.22 приведен пример такой команды. Пара регистров HL емкостью 16 бит должна быть загружена данными, следующими не-
1 MOV от move (англ.) —перемещать. — Прим. пер.
посредственно за КОП в памяти. Заметим, что согласно табл. 6.5 команда ЗАГРУЗИТЬ HL данными является трехбайтовой командой. Первый байт — это КОП (21Н в нашем примере), тогда как два последующих байта являются байтами данных. Второй байт содержит МБ данных
(здесь 0000 ООП), он помещается в регистр L (см. рис. 6.22), третий — СБ данных (здесь ООП 1100), который помещается в регистр Я пары HL.
Следующий пример — использование команды ЗАГРУЗИТЬ прямо HL (LHLD) — приведен на рис. 6.23. Команда LHLD использует прямой способ адресации (согласно табл. 6.5), второй и третий байт являются 16-разрядными адресами памяти данных для загрузки. Следуем за событиями на рис. 6.22 исходя из трехбайтовой команды (внизу слева памяти), КОП второй — 2АН. Микропроцессор преобразует два следующих байта в 16-разрядный адрес
(в штриховой рамке), который служит указателем адреса памяти (LOC) и загружается в регистр L. Содержимое следующего байта памяти [адрес (LOC+1) в нашем примере] загружается в регистр Я.
Типовой МП снабжен пятью командами размещения, которые пояснены в табл. 6.5. Рассмотрим пример использования команды прямого размещения содержимого Л, приведенный на рис. 6.24. Содержимое аккумулятора (регистр А) помещается в память (LOC), на которую указывает 16-разрядный адрес, составленный вторым и третьим байтом команды. После выполнения ячейка памяти (LOC) и аккумулятор содержат те же данные, т.е. 1100 0000.
Команда ввода (третья строка снизу в табл. 6.5) идентична команде загрузки. Источник данных передачи является портом ввода, идентифицированным двоичным 8-разрядным числом (0—255ю), назначение этих данных — аккумулятор МП. Пример выполнения команды представлен на рис. 6.25. Данные порта ввода 0000 1111, на который указывает второй байт команды, передаются в аккумулятор, исходя из порта ввода, идентифицированного LOC.
Упражнения
Все последующие упражнения рекомендуем выполнять, обращаясь к табл. 6.5.
Что является источником и что назначением данных в команде MOV Н,А?
Что является источником и что назначением данных в команде PCHL?
Индикаторы ____ (устанавливаются, не устанавливаются) большинством операций передачи данных,
На языке ассемблер мнемоникой команды загрузки на рис. 6.26 является ________.
Каково содержимое аккумулятора после операции загрузки на рис. 6.26?
Какой способ адресации используется командой MVI Л на рис. 6.26?
6.45. Команда MOV
А,
М имеет КОП 7ЕН. Это команда ______ (прямой,
косвенной регистровой) адресации, и
источником данных является область
памяти _______ (данных, программы), на
которую указывает пара регистров HL.
6.46. Код операции команды SHLD — 22Н, это команда ______ (прямой, непосредственной) адресации.
6.47. Формат команды поместить HL прямо в LOC с
КОП 22Н ________ байта. Два последних байта содержат
информацию о _________ (данных, адресе).
6.48. В команде OUT (ВЫВЕСТИ) на рис. 6.27 источником данных является регистр _______ (А, Н, L).
6.49. В примере на рис. 6.27 первый байт памяти соответствующей команды содержит КОП _________ (шестнадцатеричный).
6.50. После операции вывода, приведенной на рис. 6.27, порт вывода номер _________ (шестнадцатеричный) содержит данные __________ (назвать 8 бит).
Решения
6.39. Источник — регистр А, назначение — регистр Н. 6.40. Источник—пара регистров HL, назначение — 16-разрядный счетчик команд. 6.41. Не устанавливаются. 6.42. MVI А. 6.43. 1110 ООП. 6.44. Непосредственная адресация. 6.45. Косвенной регистровой; данных. 6.46. Прямой. 6.47.3; адресе. 6.48. А или аккумулятор. 6.49. D ЗН. 6.50. 01Н; 1111 ООП.