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

Микропроцессоры Токхайм / 6.5. СОСТАВ КОМАНД ОПЕРАЦИЙ ПЕРЕДАЧИ ДАННЫХ

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

6.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 ООП.