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




Регистр состояния

Этот регистр содержит флаги нуля Z и переноса С, которые устанавливаются соответственно, если результат операции равен нулю и если в результате сложения возник перенос.


Рабочий регистр

В рабочем регистре АЛУ (W) обычно находится один из операндов команды — либо источник, либо адресат. Например, команда addwf h’20’,w складывает содержимое рабочего регистра с содержимым регистра h’20’ и помещает сумму обратно в рабочий регистр W. В некоторых компьютерах этот регистр называется также аккумулятором.

* * *

Помимо ЦПУ, в нашем компьютере имеется две области памяти, предназначенные для хранения кода программы и данных.


Память программ

Каждая позиция (или ячейка) памяти программ может содержать одну команду, которая кодируется 14-битным словом. Из Рис. 3.4 видно, что каждая из этих ячеек имеет свой адрес, выставляемый счетчиком команд на шину адреса памяти программ. На этом рисунке содержимое PC равно h’001’ (или Ь’0000000000000’), что приводит к выдаче содержимого ячейки h’001’ на шину данных памяти программ и, следовательно, загрузке его в начало конвейера. В рассматриваемом примере считанное значение равно h’3E04’ (или b’11111000000100’), что является машинным кодом команды addlw 04. В конечном счете дешифратор команд интерпретирует этот код как операцию сложения константы «4» с рабочим регистром.


Память данных

Каждая ячейка (или регистр) памяти данных содержит один байт (восемь битов) данных. Адрес регистра формируется исполнительным блоком в регистре адреса FAR и выставляется на шину адреса памяти данных. Содержимое адресованного регистра либо считывается в регистр данных FDR, либо перезаписывается находящимся в нем значением.

Шины адреса и данных памяти данных совершенно независимы от одноименных шин памяти программ, что позволяет одновременно обращаться к обеим областям памяти. Таким образом, адреса памяти программ и памяти данных имеют различный смысл, т. е. адрес h’25’ в памяти программ совсем не то же самое, что адрес h’25’ в памяти данных, который соответствует регистру h’25’.

* * *

Теперь, когда у нашего ЦПУ появилась память программ и память данных, рассмотрим более подробно саму программу. Наша иллюстративная программа состоит всего из трех команд и, как уже упоминалось, предназначена для копирования увеличенного на 4 значения однобайтной переменной, расположенной по адресу NUM_1, в ячейку с адресом NUM_2. Из Рис. 3.4 видно, что переменная NUM_1 представляет собой псевдоним для обозначения содержимого регистра данных h’25’. Аналогично, имя