Герасимов В.Г. (ред). - Электрические измерения и основы электроники (1998) (529641), страница 61
Текст из файла (страница 61)
Операндом-источником называют используемое в операции данное, значение которого в процессе выполнения операции не изменяется. Если некоторый операнд необходим для данной операции и его значение изменяется в процессе ее выполнения, его называют операндом-приемником. В зависимости от числа привлекаемых операндов все команды МП могут быть отнесены к трем основным типам — безадресные, одноадресные и двухадресные команды.
Безадресные команды выполняют свои действия без ссылок на операнды. Сопоставляя эту классификацию с предыдущей, приходим к выводу, что к безадресным командам относится часть команд управления работой МП (например, такие команды, как Н1 Т-останов или прекращение МП всех операций; ЖА1Т вЂ” когда МП ожидает завершения другим устройством более медленной операции и т.п.).
Одноадресным командам для выполнения своих действий требуется всего один операнд-приемник. К ним относятся, например, команды очистки содержимого программно доступных регистров (с мнемоникой С1 С), увеличения (инкремента) или уменьшения (декремента) на единицу содержимого РОН (используются при организации циклов выполнения однотипных действий) и др. Наконец, двухадресные команды для выполнения своих действий требуют двух операндов, один из которых после операции будет содержать ее результат (операнд-приемник), а другой (операнд-источник) и после операции будет хранить свое содержимое неизменным. Напомним, что в некоторых МП в качестве приемника может быть использован только один рабочий регистр ( аккумулятор), а в качестве источника — любой другой рабочий регистр.
Другим ограничением, вводимым из соображений уменьшения длины команды, является обязательное использование в двухадресных командах как минимум ссылки хотя бы на один регистр (запрещены операции с содержимым двух ячеек памяти). В самом общем случае, все команды пересылки, арифметических и, частично, логических операций должны быть отнесены к двухадресным командам. Любая одноадресная и двухадресная команда должна указывать МП.
где помещены необходимые для ее исполнения операнды. Используемые для этого приемы часто называют способами адресаиии Названия отдельных способов адресации для МП различных семейств могут несколько отличаться, но их смысл в общих чертах всегда сводится к следующе- мУ. Сам операнд или его адрес может непосредственно следовать за ко- 325 дом команды, операнд или его адрес может быть содержимым одного из рабочих регистров. Наконец, в очередной ячейке после ячейки с кодом команды может содержаться некоторое число (смещенне), которое еле. дует прибавить к содержимому одного из указываемых рабочих регист ров, чтобы получить адрес операнда.
Указанное сложение внутри Мп реализовано аппаратно и выполняется автоматически. Аппаратные средства современных МП также поддерживают несколь ко эффективных способов адресации, ориентированных на работу с це. почками данных, размещенных в соседних ячейках памяти. Например при автоннкрементном способе адресации операнд выбирается по адре су в одном из регистров, после чего его содержимое автоматически уве личивается (иикрементируется) так, что к след)ющему обращению в нем содержится адрес следующей ячейки данных. При автодекрементном спо сабе до операции содержимое адресуемого регистра автоматически уменьшается (декрементируется) и операнд извлекается по этому адресу *.
Любой микропроцессор может быть представлен своей про;рамлгнай (регистрстой) .иоделью, показывающей ресурсы МП, которыми программист может распоряжаться при разработке программ. Для сравнения на рис. 7,3 показаны программные модели четырех различных семейств МП. двух семейств 8-разрядных МП 1п(е1 8080/8085 (МП КР580ВМ80А) и #80, а также двух семейств 16-разрядных МП 1п1е1 8086/8088 (МП КМ181ОВМ86) и отечественного семейства К1801 (МП типов К1801ВМ1; К1801ВМ1Г; К1801ВМ2 ).
Как )же указывалась ранее. первые три из показанных на рис. 7 3 моделей МП совместимы снизу вверх, в та время как МП семейства К1801 имеют совсем другчо систему команд. МП этого семейства были разработаны для решения инженерна-технических н экономических задач, для применения в системах управления технологическими процессами, в системах связи н контрольно-измерительной аппаратуре. В частности, на их основе разработан ряд получивших весьма широкое распространение отечественных микроконтроллеров и управляющих систем семейств' «Электроника». " Применяются и другие, более сложные (косвенные) способы адреса ции.
при которых все операции с содержимым указываемого регистра выполняются так, как это было описано, но содержимое регистра пред ставляет собой не сам адрес, а адрес адреса операнда. 326 Аккумулятор Указатель стека Программный счетчик Регистр состояния б) Регистры АХ данн ьк ВХ СХ РХ БР РС Рис. 7З.
Программные модели некоторых микроироцессорон а — МП 1п1е! 8080/8085 (КР580ВМ80А). 6 — МП 280, а — МП 1и1е1 8086!8088 (КМ181ОВМ86),: — МП семейства К1801 Как следует из рассмотрения рис. 7.3, а, 8-разрядные МП семейст ва 1п1е1 3080 / 3035 (КР580ВМ80А), помимо аккумулятора А, содержат шесть 8-битных рабочих регистров, обозначаемых буквами В, С, 11 > Е, Н и 1„3-битный регистр флажков Е а также два 16-разрядных указа тельных регистра РС и БР Назначение и принцип работы всех этих регистров полностью соответствует приведенному ранее классическому описанию с тем лишь небольшим дополнением, что в некоторых коман.
дах возможно объединение 8-битных регистров в регистровые пары В, ПЕ и Ш„используемые для работы с 16-разрядными словами или для хранения 16-битных адресов данных. По сравнению с МП семейства 1п1е1 8080М035, МП 780 имеет вдвое болыпее число рабочих регистров, два регистра состояний (Е и Р' ) и два дополнительных 16-битных индексных регистра ( 1Х и 1У ) для адресации данных. Внутренние рабочие регистры А, В, С й Е, Н, Л и регистр флажков Е в программной модели МП 280 (см. рис,7 3,6) аналогичны соответствующим регистрам МП 1ше1 8080/8085. Использование второго точно такого же наборарегистров (А ', В ', С ', 27 ', Е ', Н ', Л ' и Е ' ) позволяет программисту значительно реже обращаться к памяти, из-за чего, в конечном счете, и достигается более высокое быстродействие МП 780. Все 14 внутренних регистров МП 1п1е1 8086/8088 ( КМ1810ВМ86 ) выполнены 16-разряднымн ( см.
рнс. 7.3, в ), из них 4 рабочих регистра (АЛ; ВХ СХ и ЙХ ) допускают независимое обращение к своим младшим (А1., ВУ„Л; и И; ) и старшим (АН, ВН, СН и ВН) байтам. Совместимость снизу — вверх с более ранними 8-разрядными МП достигается на уровне машинных кодов при условии, что роль аккумулятора 8-разрядного МП выполняет младшая часть АЛ регистра АХ, а вместо регистровых пар ВС, ОЕ и Ш. используются соответственно регистры ВХ, СХ и 1ЭХ, В остальных же командах 16-разрядного МП все его рабочие регистры работают как регистры общего назначения (РОН) Набор указательных регистров в 16-разрядных МП семейства 1п1е1 расширен до 9 регистров Помимо описанных ранее счетчика команд РС и указателя стека ЬР, используемого для хранения адреса вершины стека, программная модель (см рис 7.3, и) включает в себя четыре дополнительных регистра ГК ЮК Е5' и Я', обеспечивающие работу с объемом памяти до 1 Мбайт, два индексных регистра 57 и М для работы с цепочками данных и еще один дополнительный указательный регистр ВР, с помощью которого легко организуется простой доступ к любым данным в пределах стека.
МП аппаратно поддерживает большинство из описанных выше способов адресации, поскольку индексные и указательные регистры, подобно обычным РОН, могут участвовать в арифметических и логических операциях 328 Программная модель МП семейства К1801 (см. рис. 7.3, е), помимо регистра состояния ( называемого словом состояния процессора ССП,) содержит 8 РОН (их обозначения АΠ— Я7), каждый из которых может использоваться как для выполнения арифметических и логических «оманд, так и для операций с адресами, Некоторые из указанных РОН также выполняют специальные функции, например, регистр А7 выполняет роль указателя команд, араб используется в командах, связанных с операциями со стеком. В отличие от описанных ранее семейств, МП семейства К1801 отличаются более развитой и весьма гибкой системой команд.
Они поддерживают все (в том числе и самые сложные — косвенные) способы адресации, а также допускают в одной команде непосред;твенные операции между двумя ячейками памяти. МП К1801ВМ1 позволяет адресоваться к 64 кбайт памяти, а вдвое более производительный МП К1801ВМ2 допускает расширение адресного пространства до 128 кбайт. Последняя разработка МП этого семейства (К1801ВМ3) отличается еще более высокой производительностью, обеспечивает возможность подключения арифметического сопроцессора и позволяет работать с объемом памяти до 4 Мбайт.
Таким образом, при сохранении своих индивидуальных особенностей в процессе дальнейшего совершенствования МП различных семейств происходит взаимный обмен удачными идеями и архитектурными решениями. Полное описание всех выполняемых команд обычно приводится в специальных руководствах по применению конкретного МП и включает в себя двоичный код (формат) команд, его компактную запись восьмеричным или шестнадцатеричным кодом, мнемонику команд и описание их действия с необходимыми пояснениями и примерами.
Особую часть описания команды составляет указание о се влиянии на признаки состояния процессора, сведения о которых необходимы программисту Лля управления ходом выполнения вычислительного процесса при помолпг, так называемых, команд ветвления. В составе этого типа команд имеются команды безусловных и условных ветвлений, обращения к подпРограммам и команды прерываний. Безусловное ветвление применяется в том случае, когда очередная исполняемая команда программы по каким-либо причинам размещена в другой области памяти. Команды условных ветвлений позволяют изменить порядок вычнслеЯий в зависимости от ранее полученного результата.
Как правило, при выполнении таких команд МП автоматически анализирует состояния од"Ого из битов регистра флажков, которое тот приобрел в результате предыдущих операций. При выполнении проверяемого условия содержимое Регистра РС изменяется, указывая на адрес ячейки памяти. где содер- 329 жится выполняемое по этому условию продолженис программы В про тивном случае выполняется следующая команда основной части про.