Выч.Маш.Ответы / Вопрос№30
.docxВЫПОЛНЕНИЕ ПРОГРАММЫ
Управление модулями реализуется в микропроцессорных системах (МПС) посредством ее шин. Процессор расшифровывает команду и задает на шинах такие последовательности потенциалов, которые заставляют управляемые им блоки выполнять требуемые действия [1].
Для иллюстрации рассмотрим выполнение короткого фрагмента программы передачи байта из одной ячейки памяти в другую. Пусть численное значение байта будет 10H, а его передача производится из ячейки 0100H в ячейку 0101H. Пусть также фрагмент программы размещается в памяти, начиная с ячейки 2000H.
Для выполнения фрагмента сначала нужно переслать байт в аккумулятор, а затем из аккумулятора в память. Так как обращение к памяти подразумевает косвенную адресацию, вначале требуется загрузка пары регистров Н адресом ячейки, к которой идет обращение. С учетом сказанного фрагмент программы в мнемокодах (на ассемблере МП) примет вид, показанный в левом столбце
Мнемокод Ячейка Код
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.Диаграммы передачи байта из ячейки в ячейку