Выч.Маш.Ответы / Вопрос№22
.docxработа микропроцессора 8085 на примере выполнения команды MOV M,B
Для выполнения фрагмента сначала нужно переслать байт в аккумулятор, а затем из аккумулятора в память. Так как обращение к памяти подразумевает косвенную адресацию, вначале требуется загрузка пары регистров Н адресом ячейки, к которой идет обращение. С учетом сказанного фрагмент программы в мнемокодах (на ассемблере МП) примет вид, показанный в левом столбце
Мнемокод Ячейка Код
LXН, 0100 2000 21 00 01
MOV А, М 2003 7Е
INX Н 2004 23
MOV М, А 2005 77
Команда загрузки непосредственных данных в пару регистров LXI rpb3b2 имеет код 00ПР0001, где ПР – адрес пары регистров. Пара регистров Н имеет адрес ПР = 10. Подставив это значение в код команды, получаем код 21. В правом столбце записана команда в кодах. Она имеет вид: 21 00 01, т. к. после кода операции из памяти извлекаются сначала младший (00), а затем старший (01) байты. Команда трехбайтная и занимает 2000—2002 ячейки памяти.
Однобайтная команда MOV А, М пересылки из памяти в аккумулятор является вариантом команды MOV г, М с кодом 01ППП110, где ППП — адрес аккумулятора. Подставив в этот код адрес регистра А = 111, получаем код команды 7Е.
Команда INX Н прибавляет единицу к содержимому регистровой пары и является вариантом, код которого получается из кода 00ПР0011 при подстановке адреса пары регистров 10, что дает код 23.
Последняя команда фрагмента программы (пересылка из аккумулятора в память) MOV М, А, имеющая код 77, передает в ячейку памяти, адрес который находится в регистровой паре Н, содержимое аккумулятора. Эта команда завершает выполнение фрагмента программы. Последовательность четырех рассмотренных команд сгенерирует временные диаграммы, посредством которых программа будет выполнена (рис. 4).
Рис. 4.Диаграммы передачи байта из ячейки в ячейку