Бродин В. Б., Шагурин И. И. Микроконтроллеры (1999) (1095894), страница 34
Текст из файла (страница 34)
Отличие заключаются в том, что активным становится сигнал разрешения записи уу К№. Особенностью архитектуры МСБ-51 является то, что циклы всех команд формируются из циклов магистрали и имеют строго определенную длительиость. Примеры циклов ряда характериых команд приведены на рис. 2.8. Самыми короткими по времени выполнения являются однобайтные и двух- байтные команды, выполняемые за один машинный цикл (рис.
2.8а,б). Это команды с быстрыми операциями, не использующие обращений к внешией памяти данных. В однобайтных командах (рис. 2.8а) информация хранится в ячейках внутренней памяти данных или регистрах. По второму импульсу сигнала А|Е читается код операции следующей команды, который игнорируется. В начале следующей команды он читается вновь.
В двухбайтиых командах (рис. 2.86) во втором байте хранятся данные, либо адрес внутренней ячейки памяти. В этом случае второй импульс АЕЕ стробирует ввод второго байта текущей команды. Б! ) 52 ) БЗ ) Б4 ) 55 ) Бб ) Б! ) 52 Р! ) Р2 ) Р! ) Р2 ) Р! ) Р2 ) Р! ) Р2 ) Р! ) Р2 ) Р! ) Р2 ) Р! ) Р2 ) Р! ) Р2 ХТА1 ациа Вывод РСН Вывод РСН Вывод РСН Р2 а) Выборка из внешней памяти программ ! 54 ) 55 ) Бб ) Б! ) 52 ) БЗ ) Б4 ) Б5 Р! ) Р2 ) Р! ) Р2 ) Р! ) Р2 ) Р! ) Р2 ) Р! ) Р2 ) Р! ) Р2 ) Р! ) Р2 ) Р! ) Р2 ! ХТА1. РО Вывод РРЬ или РБ Р2 Вывод РСН илн еги аР2 ВыводрРН или а Р2 Вывод РСН Р2 б) Чтение из внешней памяти данных ! Р! ) Р2 ! Р! ) Р2 ! Р! ) Р2 ! Р! ) Р2 ! Р! ) Р2 ! Р! ) Р2 ! Р! ) Р2 ! Р! ) Р2 ! А1Е Если иампь и м внешнааб Вывод РРЬ илн ВЗ Выв.
Вывод РСЬ РСЬ Вывод РСН еги а Р2 Вывод РСН ги ар2 Вывод РРН или еги ар2 )г- Виб ццаа вц о нацих -4 )г- анб |ива ии УО Вывод ! Вывод РСЬ РСЬ Выбранные даннмс -4) Высоаоимиедансное ! Вывод данных в] Запись во внешнюю память данных Рис. 2.7. Типы магистральных циклов Ви . ии аци» Вывод РС!. ) состоанне Вывод РС!. МИКРОКОНТРОЛЛЕРЫ АРХИТЕКТУРА ЛРОГРАММИРОВАНИ ИНТЕРФЕЙС 166 Ю 32 БЗ 34 35 36 31 32 БЗ 34 35 36 81 Р! Р2 Р1 Р2 Р! Р2 Р! Р2 Р1 Р2 Р! Р2 Р! Р2 Р1 РЗ Р1 РЗ Р! Р2 Р! Р2 Р( Р2 Р1 Р2 А(Е Чинно сшауюшсго КОП Б! Чтение следующего КОП(илюр ру т ) Чс г КОП 31 32 БЗ 34 85 86 а) Команлы! байт,! цикл, например ЕЧС А Чтение второго байта Чтение следующего КОП Чт ше КОП 31 Я2 БЗ 34 35 36 3! 6) Команды 2 байта, 1 цикл, например А00 А,ййвга Чтение след.
КОП повторно Чтение следующего КОП (ипюрирустся) Чтение следующего Чтение следующего Чтение КОП КОП (игнорируется) КОП (игнорируется) 81 32 БЗ 34 35 36 Б! Я2 БЗ Б4 35 36 31 в) Команды 1 байт, 2 цякла, например ПЧС ОР'П! Нет выборки Чшние следующего нег АЬЕ КОП повторно Чтение следующего Нет выборки КОП (игнорируется) нет АЬЕ Чтение КОП Я! 32 БЗ 34 35 36 3! 32 83 34 35 36 Б! Адрес данные Обращение к внешней памяти данных г) Команда МОЧХ (! байт, 2 цикла) Рио. 2.8.
Примеры циклов команд Короткими, но медленными, являются команды типа МОТУХ с обращением к внешней памяти данных. Они однобайтные, но выполняются за два машинных цикла (рис. 2.8г). После выборки кода операции команды по первому импульсу АЕЕ следующий импульс выбирает следуюший байт кода, который игнорируется. Далее импульс АЕЕ стробирует адрес внешней памяти данных, по которому производится операция чтения или записи. По последнему импульсу АЕЕ вводится следующий байт кода. Еше одну группу характерных команд составляют однобайтные команды длительностью два машинных цикла (рис. 2.8в). Это команды с медленными операциями, не использующие обращений к внешней памяти данных.
Такими операциями являются, например, нара!цивание указателя данных РРТК, операции умножения и деления, возврат из подпрограммы. В командах такого типа после чтения кода операции по первому сигналу АЕЕ три раза подряд выбирается один и тот же следующий байт кода, который игнорируется. 167 ГЛАВА М Л НТРОЛЛЕРЫ СЕМ ТВА "5! !5! 2.5. Методы адресации и система команд Система команд семейства МС5-51 ориентирована на организацию гибкого ввода-вывода данных через универсальные порты РО..РЗ и первичную обработку информации.
Особое внимание уделено операциям с битами и передаче управления по их значению. Команды, выполняющие такие операции, составляют многочисленную группу и образуют вместе с соответствющими аппаратными механизмами так называемый «булез процессор» (Воо1еап ргосессог по терминологии фирмы 1псе!) в составе архитектуры МС5-51. В целом систему команд МСЯ-51 можно охарактеризовать как весьма мощнуто и симметричную в том смысле, что программист имеет возможность испольэовать большинство операций с полным набором методов адресации и программно доступных ресурсов аппаратуры. 2.5.1.
Методы адресации Разработчик изделия работает с системой команд при создании программы на языке ассемблера. При этом он имеет дело с какой-либо кросс-системой, иметощей свою версию языка. Подробнее о системах программирования будет сказано в главе 4. Ниже изложены основные правила, которые поддерживаются во всех системах программирования.
Каждая команда сообщает процессору выполняемую операцию и методы доступа к операндам. Командная строка языка ассемблер содержит метку (символический адрес), мнемонику (символическое имя) команды, операнды, комментарий. Имя команды однозначно связано с выполняемой ею операцией (действием). Число операндов в разных командах микроконтроллеров МС5-51 находится в диапазоне от нуля до трех, операнды разделяются запятыми. При двух операндах первым указывается приемник, вторым источник. Многие команды по умолчанию используют аккумулятор как один из источников операнда и/или как приемник результата. Методы адресации представляют собой набор механизмов доступа к операндам.
Одни из них просты и поэтому приводят к компактному формату команды и быстрому доступу к операнду, но объем доступных с их помощью ресурсов ограничен. Другие методы адресации позволяют оперировать со всеми имеющимися в системе ресурсами, но команда получается длинной, на ее ввод и выполнение тратится много времени. Набор методов адресации в каждой системе команд является компромиссным сочетанием известных механизмов адресации, выбранным проектировщиками архитектуры исходя иэ набора решаемых задач.
При этом для процессоров с архитектурой С15С (со!ттр1еСе Тпзсгпсс1оп зег сопТрпсег) большую роль имеет и удобство работы программиста. МИКРОКОНТРОЛЛЕРЫ'. АРХИТЕКТУРА ЛРОГРАММИРОЕАНИ ИНТ ЕЙС 168 С точки зрения формата команды микроконтроллеров семейства МСЗ-51 делятся на одно-, двух- и трехбайтные. Используется четыре основных метода адресации. Рееиствровая адресация.
Операнд находится в одном из регистров общего назначения КО..К7 банка, номер которого определяется разрядами КЯО, КЯ1 регистра РБЮ. Номер регистра определяется тремя младшими битами байта кода операции (КОП вЂ” первый байт команды). Регистровая адресация позволяет в одном байте указать код операции и адрес операнда. Поскольку операнд находится во внутренней ячейке, не требуется циклов обращения к внешней памяти данных. Формат команды сложения АРР А,Кп следующий: Код операции и и и АРР А,К и Прямая адресат1ия. Операнд находится во внутренней памяти данных, адрес ячейки определяет отдельный байт команды. Таким образом, команды с использованием прямой адресации имеют минимум два байта, доступны только 256 ячеек, обращения за операндом к внешней памяти не требуется.
Формат команды сложения АРР А,Е11гесс следующий: О 7 Код операции Йгесс АРР А, Косвенно-регистровая адресация. Этот метод адресации использует регистрь1 КО и К1 в качестве указателей. Регистры берутся из банка, определяемого разрядами КЯО, КЯ1 регистра РЯ'уу'. Содержимое этих регистров используется как адрес для обращения к ячейке внутренней памяти данных, хранящей операнд.
Команда получается однобайтной, номер регистра указывает младший бит. Длина команды при этом соответствует длине команды с использованием регистровой адресации, но косвенная адресация дает доступ ко всему пространству внутренней памяти данных. Формат команды сложения АРР А, и К1 следующий: Код операции АРР А,6>К 1 гл 2 нт л э«мсз"61 м3 169 Непосредственная адресация. Операнд находится в отдельном байте команды, это константа. Таким образом, команды с использованием непосредственной адресации имеют минимум два байта, обращения за операндом к внешней памяти не требуется. Формат команды сложения АОО А, №дага следующий: 7 0 7 Код операции №с1аса АОП А, 2.6.2. Системе команд семействе МСЗ-61 Всего в системе команд семейства МС5-51 можно выделить 5 групп.
Арифметические команды. Обеспечивают выполнение операций сложения и вычитания (в том числе с учетом переноса) над целочисленными 8-разрядными операндами, инкремент и декремент регистров и ячеек внутренней памяти данных, двончно-десятичнусо коррекцию содержимого аккумулятора. Особенностью системы команд МСЯ-51 является наличие в составе этой группы команд умножения и деления 8-разрядных целочисленных операндов. Получаюшийся 16-разрядный результат хранится в регистрах А и В. Результатом выполнения арифметических команд является, кроме нового содержимого аккумулятора, измененное значение регистра РБМК Логические команды.