PIC-микроконтроллеры. Все, что вам необходимо знать | страница 38



является символическим выражением для указания содержимого регистра данных h’26’.

А теперь рассмотрим используемые в программе команды.


∙ movf

Эта команда (MOVe File) копирует содержимое заданного регистра данных в рабочий регистр (как правило) или же обратно в тот же регистр данных (см. стр. 141). Таким образом, команда movf num_1,w загружает байт, расположенный по адресу h’25’ памяти данных, в рабочий регистр. Если содержимое указанного регистра равно нулю, то при выполнении команды устанавливается флаг Z, в противном случае этот флаг будет сброшен.


∙ addlw

Эта команда (ADD Literal to Working register) прибавляет однобайтную константу к содержимому рабочего регистра. Таким образом, команда addlw 04 прибавляет число 4 к содержимому рабочего регистра и записывает результат обратно в этот же регистр. Если возникает переполнение, то устанавливается флаг С, а если результат равен нулю — флаг Z.


∙ movwf

Эта команда (MOVe Working register to File) копирует содержимое рабочего регистра в заданный регистр данных. Таким образом, команда movwf NUM_2 сохраняет содержимое рабочего регистра по адресу h’26’ памяти данных. На состояние флагов данная команда не влияет.

Описывая команды, мы использовали мнемонические обозначения, такие как addlw. Разумеется, реальные логические схемы, декодирующие эти команды, работают исключительно с двоичными кодами. Мнемонические обозначения просто играют роль своеобразных «памяток» для программиста. Хотя крайне маловероятно, что кто-либо станет писать программы в машинных кодах, двоичный формат всех команд имеет логическую основу, и его знание будет полезно для понимания недостатков и ограничений набора команд и реальных аппаратных средств, которые мы будем обсуждать в следующих двух главах.

Пока мы рассмотрим две категории команд.


Прямая адресация регистра данных

Данный способ адресации используют команды, в которых указывается адрес регистра данных, являющийся их операндом. Например, в команде movf h’25’,w операндом является регистр h’25’.

Из Рис. 3.5 видно, что 14-битный код команды состоит из трех частей:

• Шесть старших битов (13…8) называются кодом операции или, сокращенно, КОП. Каждая команда имеет уникальный КОП, и именно по его значению схема дешифратора определяет тип обрабатываемой команды.

• Седьмой бит кода команды, обозначенный символом «d», определяет адресата результата операции. Например, команда addwf h’30’,w означает «сложить содержимое рабочего регистра с регистром h’30’ и поместить результат обратно в рабочий регистр», тогда как команда