Характеристика функциональных групп команд
Все команды МК51 можно разделить на группы по функциональным признакам: передача данных, арифметические, логические, битовых операций, передача управления. Команды арифметических операций, логические, битовые операции и команды сравнения модифицируют четыре флага, которые находятся в регистре PSW: Р - жестко связанный с содержимым аккумулятора. Если количество единиц в нем нечетное, то (Р)=1, иначе (Р)=0; АСС - устанавливается в "1", если при суммировании (вычитании) возник межтетрадный перенос (заем) в аккумуляторе; С - устанавливается в "1", если возник перенос из старшего (АСС.7) бита в аккумуляторе или заем в старший бит; OV - устанавливается в "1", если в результате суммирования/вычитания знаковых чисел возникло переполнение, то есть этот флаг свидетельствует о факте переполнения без указания типа - положительное или отрицательное; При делении (OV)=1, если выполнялось деление на нуль. При умножении (OV)=1, если результат больше 255.
Потоки передачи данных
Соответственно структуре памяти МК51 можно выделить три информационных потока: пересылка из ВПП в РПД, пересылка между ВПД и РПД, обмен данными внутри РПД (включая РСФ).
Возможные направления передачи байтов, битов и слов с указанием способа адресации показаны в виде графа на рис.3.2. Основным информационным каналом является аккумулятор (А), поэтому считают, что МК51 имеет аккумуляторно-ориентированную структуру. Внутри РПД возможная передача данных без использования аккумулятора, но при операциях с ВПП или ВПД он используется всегда. ВП доступна только через косвенную адресацию.
КОМАНДЫ ПЕРЕДАЧИ ДАННЫХ являются наиболее многочисленной группой. Они охватывают все потоки передачи, рассмотренные ранее. В таблице "Система команд МК51" команды сгруппированы по общему приемнику информации.
КОМАНДЫ АРИФМЕТИЧЕСКИХ и ЛОГИЧЕСКИХ ОПЕРАЦИЙ характеризуются тем, что для них одним из операндов всегда является содержимое аккумулятора, однако результат может помещаться или в аккумулятор, или на место второго операнда, если это прямо адресованный байт РПД или блока РСФ.
КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ. К данной группе относятся команды, которые реализуют безусловные и условные переходы, вызовы подпрограммы и возврат из подпрограммы.
По способу адресации перехода можно выделить такие типы:
1. ДЛИННЫЙ переход - осуществляется по АП в объеме 64К. В команде помещается полный 16-битовый абсолютный адрес перехода, который загружается в (РС). Мнемоника команд начинается с буквы L.
2. АБСОЛЮТНЫЙ переход - осуществляется в границах страницы ВПП (РПП) размером 2048 байтов (2К). В команде помещаются только 11 бит адреса (a0...a10). При выполнении команды в вычисленном адресе следующей команды (РС)=(РС)+2 младшие 11 бит заменяются на a0...a10, взятые с команды. Формат - номер 6. Мнемоника начинается с символа А.
3. КОРОТКИЙ ОТНОСИТЕЛЬНЫЙ переход - разрешает передать управления в границах - 128...+127 байтов относительно адреса команды, следующей за командой перехода, то есть относительно (РС)=(РС)+2 или (РС)=(РС)+3. Относительный адрес перехода rel помещается во втором или третьем байте команды. Мнемоника начинается с символа S для безусловных переходов. Команды условных переходов также реализованы по этому формату.
4. КОСВЕННЫЙ переход - разрешает передать управление по косвенному адресу, который формируется по содержимому регистра DPTR и смещению из аккумулятора. Позволяет организовать переход по адресу, вычисленному в процессе работы программы.
Ассемблер предполагает использование обобщенной мнемоники команд JМР и CALL, которые в процессе трансляции заменяются на оптимальные и допустимые по формату команды перехода (AJMP, SJMP, LJMP) или вызова (ACALL, LCALL).
|