КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Код операции
Код операции команды определяет набор действий, которые должен выполнить ЦП для преобразования операнда (операндов). Он представляется в виде 8-разрядного двоичного кода. Например: 00100101В – код операции сложения двух операндов. В таком виде в составе команды он записывается в ПЗУ микроконтроллера. Полная система команд содержит 255 кодов операций. Запомнить 255 двоичных кодов и применять их при разработке программы достаточно сложно. Можно сократить число цифр кода, представив его в шестнадцатеричном виде. Тот же код будет выглядеть как 25Н. В любом случае использование кодов операции в виде цифр является сложным и неблагодарным занятием. Разработка программы значительно упрощается, если использовать язык программирования АССЕМБЛЕР. В этом языке для упрощения процедуры записи, проверки и чтения программ используется мнемоническое или символическое кодирование для обозначения кода операции. При этом каждая машинная команда, реально используемая как машинный двоичный код, обозначается трех- или четырехбуквенным мнемоническим символом. В основе этих символов лежит описание выполняемой операции на английском языке в виде абревиатуры (либо сокращенное слово, либо начальные буквы словосочетания) от полной записи наименования команды на английском языке. Основное достоинство мнемокодов заключается в том, что такие символы легко запоминаются и легко воспринимаются, так как символическое имя команды напоминает смысловое содержание соответствующей операции, например: MOV – сокращение от Move (перемещение); INC – сокращение от Increment (увеличение на единицу); ADD – сокращение от Addition (добавление); SUBB – сокращение от Substraction with Borrow (вычитание c займом); MUL – сокращение от Multiply (умножение) и другие операции. В процессе компиляции исходный текст программы на языке АССЕМВЛЕРА, обычно выполняемой автоматически с помощью ПК, преобразуется в двоичный машинный код, который «понимает» ЦП. Адрес Адресом называется указание месторасположения элемента данных (операнда) в памяти микроконтроллера. Память микроконтроллера включает в себя помимо ОЗУ и ПЗУ ряд специализированных отдельных ячеек памяти – регистров. Они предназначены для обслуживания АЛУ. На рис. 3 показана упрощенная структура памяти МК. А– аккумулятор, восьмиразрядный регистр, предназначенный для приема хранения результата, полученного при выполнении арифметико-логических операций или операций пересылки. В – восьмиразрядный регистр как дополнение аккумулятора при выполнении операций умножения и деления. Для других операций он может рассматриваться как дополнительный сверхоперативный регистр. PSW – восьмиразрядный регистр состояния АЛУ при выполнении программы. Для хранения данных программы он не предназначен. Состоит из отдельных бит, значения которых определяют состояние АЛУ, например переполнение аккумулятора. DPTR – 16-разрядный регистр (указатель адреса) для косвенной адресации при
Рис. 3. Упрощенная структура памяти МК
обращении к памяти программ. Может быть использован как два независимых 8-разрядных регистра DPH и DPL для хранения данных программы. R0-R7 – 8 восьмиразрядных регистров общего назначения. Предназначены для хранения оперативных данных программы. Команды, использующие для операндов эти регистры, имеют минимальное время выполнения, а сами команды занимают в памяти минимальное место. ОЗУ содержит 128 8-разрядных ячеек памяти, каждая из которых имеет собственный номер – адрес, от 00Н до 7FH (в шестнадцатеричном коде). ПЗУ имеет 2048 (2К) ячеек, с адресами от 0000Н до 07FFH. Адрес ячейки, в которой находится требуемый операнд, записывается в поле операнда команды при программировании в шестнадцатеричном коде. Формат адреса для ОЗУ – 1 байт, для ПЗУ – 2 байта. Рассмотренные выше регистры также имеют свои собственные 8-разрядные адреса, однако, особенность программирования на АССЕМБЛЕРЕ, позволяет использовать для регистров символические имена (адреса). В поле адреса команды, если используется регистр, записывается его обозначение А, PSW, R0-R7 и т.д. Для работы с булевскими (битовыми) операндами используется часть памяти ОЗУ с адресами 20Н – 2FH, которая представляет собой так называемую битовую область ОЗУ. В ней имеется возможность при помощи специальных битовых команд адресоваться к каждому отдельному разряду ячеек памяти. Битовое пространство имеет объем 128 бит с адресами 00Н до 7FH и занимает 16 ячеек памяти. Адрес прямоадресуемых битов может быть записан либо в виде (Адрес Байта).(Разряд), например выражение 21.3Н означает третий разряд ячейки памяти с адресом 21H, либо в виде абсолютного битового адреса - 0ВН. Соответствие этих двух способов адресации можно определить по табл. 1.
|